Java Core 读书笔记



                                    Java  Core 读书笔记



1.      
Jdk5.0 新增静态导入:import static java.lang.Math.*;



 eg.
System.out.println(“The square root of 
is ”+sqrt(PI));
而不用Math.PI







2.      
数据类型自动升级





byte àshortàintàlongàfloatàdouble



charà intàlongàfloatàdouble





3.      
一个类中的方法如果是privatestaticfinal的,则采用静态绑定。否则为动态绑定。





4.      
一个对象与另一个对象equals相等,并不是表示hashcode相等。Hashcode如果相等,并不是equals就要相等。Hashcode的值跟对象的内存地址相关。





5.      
让一个对象具有克隆功能,必须implements
Cloneable
,如果一个类implements
Cloneable
,那么不一定要覆写clone方法。





6.      
内部类的三点好处:



6.1  
可以访问该类定义所在的作用域中的数据,如私有数据。



6.2  
内部类可以对同一个包的其他类隐藏起来。



6.3  
当想要定义一个回调函数且不想编写大量代码,使用匿名内部类方便。





7.      
接口如果要实现另外一个接口,那么要用extends关键字,不能用implements



8.      
进行数据运算的时候,只有除0的操作才会产生异常。书中说是对-1开平方会抛出异常这个在jdk6上面测试是不对的。结果应该是NaN



9.      
对于异常,早抛出,晚捕获是很好的选择。



10.  
 第一版的576



11.  
Interrupt(),interrupted,isInterrupted()的区别:



Void interrupt():发送一个中断请求给一个线程,让这个线程的中断状态将被设为true,如果你这个线程当前阻塞,那么throw interruptedException



Static Boolean interrupted():检查当前线程(即正在执行该指定的线程)是否已经被中断,它会将当前线程的中断状态设为false



Boolean 
isInterrupted():
检查一个线程是否被终止,它不会改变线程状态。



第二版 13



12.  
线程优先级:默认情况下,子线程继承父线程的优先级,同时线程优先级高度依赖于系统,因此即使有些线程的java优先级高,但是不一定先调用。



13.  
守护线程:可以通过t.setDaemon(true)方法让一个线程变为守护线程。守护线程唯一的作用就是为其他的线程提供服务,当只剩下守护线程时,JVM会关闭掉这些线程。



14.  
锁:在下面三个条件下,对域的访问是安全的。



14.1   
域是volatile



14.2   
域是final的,并且在构造器调用完成后被调用。



14.3   
对域的访问有锁保护。



15.  



你可能感兴趣的:(Java Core 读书笔记)