3、可能会抛出InterruptedException的方法:java.lang.Object类的wait方法,
java.lang.Thread类的sleep方法,
java.lang.Thread的join方法。
Thread.suspend容易造成死锁,已过时,被打断不会抛出InterruptedException()。
4、线程结束的三个原因:
1)run方法执行完成,线程正常结束。
2)线程抛出一个未捕获的Exception或Error
3)调用该线程的stop方法结束线程(容易死锁)
4)thread-clean-pop抛出一个例外,线程终止,也可以通过其他线程调用thread-cancel()来终止另一个线程。
34、良好的代码习惯
1、面向接口编程:List myList = new ArrayList(); ===接口名xxx = new接口实现类
Map map = new HashMap();
(1)程序规范化设计 (2)团队协同开发 (3)转换为组件(4)代码复用
2、Java中路径用“/”才是正确的,如果使用了“\”表示路径,需要转义。”\”也是转义符。
35、Java的三大注解(由虚拟器控制给出注解,提示开发人员注意编码规则)
(1)@SuppressWarnings(“deprecation”); ==>屏蔽相应的警告,(一般在方法上标注)
(2)@Override;指定被注解的方法需要覆写超类的方法(1.5实现接口方法不能写,6.0可写)
(3)@Deprecated;表明程序调用一个废弃元素(方法),编译器应该显示警告(不能被使用)
元注解(Meta-Annotations,Java注解类型):Target、Retention、Documented、inherited。
@Target:注解表明注解类型适用于哪种目标元素,@Target(ElementType TYPE)适用任何类的元素包括:元素字段、方法、参数、构造函数、局部变量、类型本身。
36、内联函数
37、存根类(Stub)
Stub是一个类,它实现了一个接口。继承该类就可以使用(间接)接口的方法,(不用全实现)。RMI采用Stub和Skeletons来进行远程对象的通讯,Stub充当客户端代理(运行在本地虚拟机),远程对象的调用实际上是通过调用该对象的客户端代理Stub来完成的。
每一个远程对象都包含一个代理对象Stub,当运行在本地虚拟机上的程序想调用远程Java虚拟机上的方法时,1)在本地创建该对象的代理对象Stub,然后调用代理对象上的方法,在远程有一个skeleton对象与Stub呼应,接受来自Stub对象的调用。(运行时动态链接??)
38、扩展方法
扩展方法只能访问所扩展类的public成员。
39、数组(数组复制)
(1)System.arrayCopy用本地方法(C语言)实现==>使用java间接操作硬件
(2)clone()定义:protected native Object clone() throws CloneNotSupportedException{}
(3)arrays.CopyOf调用了system.arraycopy方法实现
(4)用for循环实现,效率最低
40、设计模式:
单例:多线程下的单例


饿汉式单例在单例类被加载时候,就实例化一个对象交给自己的引用;而懒汉式在调用取得实例方法的时候才会实例化对象。
chinese.getInstance();每次获取的都是同一个对象。
41、JavaWeb项目:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66099-15.html
屈臣氏的广告
最爱的女神和最爱的男神配戏啦
#杨洋2015金投赏##杨洋icon#杨洋
失败的说的是真理都是屁