一、 final:
1、final成员变量
当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变,但引用变量所指向的对象中的内容还是可以改变的。
2、fianl函数不能被重写
3、final类不能被继承了(final类为最终类)
二、synchronized
当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。
三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。
四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。
五、以上规则对其它对象锁同样适用.
http://www.cnblogs.com/GnagWang/archive/2011/02/27/1966606.html ;
三、static关键字
http://zhangjunhd.blog.51cto.com/113473/20280/
http://www.cnblogs.com/wodepp2011/archive/2011/06/29/2151302.html
四、enum 枚举
Java 枚举7常见种用法:
常量 、 switch(JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。)、
向枚举中添加新方法、覆盖枚举的方法、实现接口、使用接口组织枚举、枚举集合的使用
http://www.iteye.com/topic/1116193
五、transient关键字
六、String s = new String("xyz");创建了几个String Object?
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。
七、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
八、 Java 对象初始化顺序
http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/06/122383.html