1. JDK新特性
1) jdk1.5之后,自动装箱(将基本数据类型转换为包装数据类型)。自动拆箱(将包装类型转化为基本数据类型)。在int类型的数字进行装箱时,若该数字的大小是[-128,127]之间的数字,仍然会当作基本类型进行处理(注意equals方法和“==”比较时返回的boolean类型的值)。
2) jdk1.8后,switch语句中的判断条件可以放字符串。
3) jdk1.5之后,可以放范型。
2. 交换两个数字的值
1) 定义第三方变量。
2) 相加法:缺点两个int类型的数相加有可能会出现超出int数字表示的范围,做法为:a=a+b;b=a-b;a=a-b;
3) 可以使用位运算符异或^:缺点就是逻辑不清晰,做法:a=a^b;b=a^b;a=a^b;
4) 取出一个二进制数的指定位:不要的都&0,要的部分&1。
3. final、finally和finalize之间的区别和用法
1) final是一个修饰符,final修饰的属性只能在初始化时赋值一次,final修饰的方法不能被子类重写,final修饰的类不能被继承。final可以把方法锁定,防止任何继承类修改它的现实意义,编译器在遇到final时自动转入内嵌机制,大大提高了效率(函数调用需要开辟新栈的,内嵌就是相当于把代码复制到执行的地方,省去开辟新栈的步骤)。
2) finally是在异常处理时使用的一个关键字,它为异常处理提供了一个统一的出口,使得在控制流程转到程序其他部分之前就能够对程序的状态做出统一的管理。无论try所指定的代码块是否抛出异常,finally所指定的代码都要被执行。通常在finally语句中可以进行资源的清理工作,例如:关闭打开的文件,删除临时文件,关闭数据库连接。
3) finalize关键字,一个类重写了Object的finalize方法,使用System.gc();对该对象进行回收,所有对象被GC时自动调用该方法,例如运行System.gc();时,程序退出时,还有就是显示调用的时候。
4. 显式地创建对象的方式
1) 用new语句创建对象,这是最常用的创建对象的方式。
2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Construct类的newInstance()实例方法。
3) 调用对象的clone();方法。