学java已经有一段时间了。学的东西不多,但我没想到仅仅面向过程的一些知识(Loops)就可以做出像五子棋这样的游戏,我不得不感叹java语言的魅力。特别是了解到java的应用之光泛,涉及手机,嵌入式开发,pc,企业及服务器等之后,我更坚定了学习java的决心。但是我也担心自己学不啊好。很多东西都是在老师的老领导下完成的,自己独立做却没有头绪。另外,想从事java这一行业要学哪些东西我还不知道,谁能帮帮我? ......
这是我在安装完Ubuntu9.10后从网上搜的一些关于配置Java开发环境的资料,在这里要特别感谢原文作者的辛勤劳动
希望能帮方便更多的人,我会在Ubuntu的使用过程中继续收集和创作一些相关知识,希望能对大家有所帮助!!!
转载请标明出处:
xxm19820127
http://blog.csdn.net/xxm19820127/archive/2010/02/19/5311106.aspx
csluoly
http://hi.baidu.com/csluoyl/blog/item/0815b3ef5e9f7c222df534aa.html
一 、安装 jdk (含 jre 、 plugin ) 。打开终端输入如下命令, // (包含 // )是对命令的说明,不需要输入。
sudo apt-get install sun-java6-jdk // 管理员身份从互联网下载安装安装 jdk1.6 。安装过程中需要你回答是否同意使用协议(红蓝色的提示界面) , 此时按 tab 键至 OK 或 YES ,再按回车即可正常安装
sudo apt-get install sun-java6-plugin // 安装 firefox 等插件
& ......
/*
*日期:2010-04-18 11:37
*开发者:heroyan
*联系方式:zndxysf@126.com
*功能:无向图最小生成树Prim算法实现案例
*/
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
public class SpanningTree{
private static int MAX = 100;
private double cost[][] = new double[MAX][MAX];
private ArrayList<Edge> edge = new ArrayList<Edge>();
private int[] near = new int[MAX];
private static double INFINITY = 99999999.99;//定义无穷大
private double mincost = 0.0;//最小成本
private int n;//结点个数
public SpanningTree(){}
public static void main(String args[]){
SpanningTree sp = new SpanningTree();
sp.init();
sp.prim();
sp.print();
}
//初始化
public void init(){
Scanner scan = new Scanner(System.in);
int p,q,w;
System.out.println("spanning tree begin!Input the node number:");
n = scan.nextInt();
//二维数组的填充要注意
for(int i = 0; i < MAX; ++i){
Arrays.fill(cost[i],INFINITY);
}
S ......
/*
*日期:2010-04-18 20:02
*开发者:heroyan
*联系方式:zndxysf@126.com
*功能:无向图最小生成树Kruskal算法实现案例
*/
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
public class Kruskal{
private static int MAX = 100;
private ArrayList<Edge> edge = new ArrayList<Edge>();//整个图的边
private ArrayList<Edge> target = new ArrayList<Edge>();//目标边,最小生成树
private int[] parent = new int[MAX];//标志所在的集合
private static double INFINITY = 99999999.99;//定义无穷大
private double mincost = 0.0;//最小成本
private int n;//结点个数
public Kruskal(){}
public static void main(String args[]){
Kruskal sp = new Kruskal();
sp.init();
sp.kruskal();
sp.print();
}
//初始化
public void init(){
Scanner scan = new Scanner(System.in);
int p,q;
double w;
System.out.println("spanning tree begin!Input the node number:");
n = scan.nextInt();
System.out.println("Input the graph(-1,-1, ......
JNI工作原理
在JNI中,本地函数是通过一个独立的.c或.cpp文件来实现的(C++为JNI提供的界面会更简洁一些)。当JVM调用该函数时,它传递了一个JNIEnv指针、一个jobject指针和通过Java方法定义的Java参数,JNI函数的形式如下:
JNIEXPORT void JNICALL Java_ClassName_MethodName
(JNIEnv *env, jobjectobj)
{
//Method native implemenation
}
env指针是一个包含了JVM接口的结构,它包含了与JVM进行交互以及与Java对象协同工作所必需的函数,示例中的JNI函数可以在本地数组和Java数组类型之间、本地字符串和Java字符串类型之间进行转换,其功能还包括对象的实例化、抛出异常等。基本上您可以使用JNIEnv来实现所有Java能做到的事情,虽然要简单很多。
更加正式的解释是这样的,本地代码通过调用JNI的函数来访问JVM,这是通过一个界面指针实现的(界面指针实际上是指向指针的指针),该指针指向一个指针数组,数组中的每个指针都指向了一个界面函数,而每个界面函数都是在数组中预先定义过的。
本地方法将JNI界面指针当作一个参数,如果在同一个Java线程中,出现对该本地方法的多重调用,JVM则保证传递相同的界面指针到本地方法。不过 ......
Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container
classes),又称群集类(collection classes)。集合在java中非常重要,在讨论之前,先来看几个面试中的经典问题。
1 Collection 和
Collections的区别。
2 List, Set, Map是否继承自Collection接口。
3 ArrayList和Vector的区别。
4 HashMap和Hashtable的区别。
篇尾有答案,我们开始正题。
集合Collection接口
--Collection 是任何对象组,元素各自独立,通常拥有相同的套用规则。Set List由它派生。
基本操作 增加元素add(Object
obj); addAll(Collection c);
删除元素
remove(Object obj); removeAll(Collection c);
求交集 retainAll(Collection
c);
删除元素
remove(Object obj); removeAll(Collection c);
求交集
retainAll(Collection c);
访问/遍历集合元素的好办法是使用Iterator接口(迭代器用于取代Enumeration)
Public interface Iterator{
......