一、LINUX配置JAVA环境
1、下载 JDK,注意是 JDK,不是 JAVA(JRE)
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
2、比如我下载的是:jdk-7u45-linux-x64.gz,解压后成为 jdk1.7.0_45 文件夹,然后
cp jdk1.7.0_45 /usr/local/java
3、在 /etc/profile 添加下面的语句,然后 source /etc/profile 重新载入环境变量。
export JAVA_HOME=/usr/local/java export JRE_HOME=/usr/local/java/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH export PATH=$PATH:$JAVA_HOME/bin
二、测试代码
public class Hello { public static void main(String[] args) { System.out.println("Hello,World!"); } }
编译运行:
javac Hello.java
java Hello
三、线程学习
1、直接继承 Thread 类:
class MyThread extends Thread { public void run() { for(int i = 0; i < 100; i++) { System.out.println("MyThread --> " + i); } } } public class Main { public static void main(String[] args) { MyThread ft = new MyThread(); //ft.run(); //not do this! ft.start(); for(int i = 0; i < 100; i++) { System.out.println("Main --> " + i); } } }
2、实现 Runnable 接口
class RunnableImpl implements Runnable { public void run() { for(int i = 0; i < 100; i++) { System.out.println("MyThread --> " + i); } } } public class ThreadTest2 { public static void main(String[] args) { /* RunnableImpl ri = new RunnableImpl(); Thread t = new Thread(ri); t.start(); */ new Thread(new RunnableImpl()).start(); for(int i = 0; i < 100; i++) { System.out.println("Main --> " + i); } } }
上面的代码还可以使用匿名内部类来优化:
public class ThreadTest2 { public static void main(String[] args) { new Thread(new Runnable(){ public void run() { for(int i = 0; i < 100; i++) { System.out.println("MyThread --> " + i);
} } }).start(); for(int i = 0; i < 100; i++) { System.out.println("Main --> " + i); } } }
3、其它线程常用方法
Thread.sleep(int n); //休眠 n 毫秒 Thread.yield(); //让出执行权,进入就绪状态(但可能立即又抢到CPU) Thread.currentThread(); //获取当前线程对象 setName(String name); //设置线程名字,成员方法 getName(); //获取线程的名字,成员方法 setPriority(int n); //设置当前线程优先级,从 1~10,也可以使用静态常量如 Thread.MIN_PRIORITY,Thread.MAX_PRIORITY,成员方法 getPriority(); //获取当前线程优先级,从 1~10,成员方法
4、同步代码块关键字(synchronized),即锁