静态static
-
静态的方法不能调用非静态的变量
-
静态的方法不能调用非静态的方法
-
静态的变量被同类的所有实例共享

-
静态变量会在该类的任何对象创建之前完成初始化
-
静态变量会在该类的任何静态方法执行之前完成初始化
-
静态的final变量是常量
public static final double PI = 3.1415926;- public: 供各方读取
- static: 你不需要Math实例
- final: 圆周率是不变的
autoboxing 自动装箱
有时你会想要把primitive原始数据类型当做对象来处理,例如在5.0之前的java版本上,你无法直接将primitive原始数据类型放入到ArrayList或hashMap中

autoboxing:不必把primitive主数据类型与对象分的那么清楚

到处都用得到的autoboxing


java异常
异常体系

处理异常的两种方法
- 向上抛
- 当前方法捕获

受检异常vs非受检异常


try/catch/finally

处理多重异常


异常也是多态的

多个catch块时要从小到大排

不要把大篮子放到小篮子上面

多线程
java有多个线程但只有一个Thread类
每个线程有自己独立的调用栈

有多个以上执行空间代表什么?
多线程看起来像同时执行,其实是cpu调度,并随机给线程分配时间片段(拿到时间片段的才能执行), 线程之间快速切换交替执行

线程看起来就像一个工人, 你需要指派给工人任务


创建线程的方法
- 继承Thread类, 重写run方法
- 实现Runnable接口, 实现run方法(推荐)
线程状态


