java不熟悉要点

来源:互联网 发布:网络运营商nat 编辑:程序博客网 时间:2024/05/05 11:47

RuntimeException就是运行时异常,它是java编译器事先不可预见的异常,而其他的异常大致的说是检查时异常,就是说帮你检查出来了可能出现的异常。此时你程序未执行,但是有可能抛出这个异常,所以提醒你记得捕获。。说个更通俗的,你代码里出现过catch(IOException).也出现过SQLExec

抽象方法是非静态的 

我是这样理解的:抽象类是不能实例化的,即不能被分配内存,而static修饰的方法在类实例化之前就已经别分配了内存,这样一来矛盾就出现了:抽象类不能被分配内存,而static方法必须被分配内存。所以抽象类中不能有静态的抽象方法。

java.lang.Object.clone()分析

1.自己的类要用clone则必须覆盖Object.clone(),或深拷贝,或浅拷贝
且实现Cloneable接口,以作为标记
2.protected的作用域为本包和子类


String 字符串常量,经常改变内容的字符串最好不要用 String
StringBuffer 字符串变量(线程安全),用于多任务并发访问
StringBuilder 字符串变量(非线程安全),单任务访问时比StringBuffer更有效,字符串生成器


java内部类参数为final

局部变量的生命周期与内部类不同,直观上看,若方法访问结束,变量消失,内部类就无法拿到其传来的参数了;实际内部类的实现是在其内部构造了一个同类型的成员变量,并在构造方法中将局部变量的值传给它;之所以设成final的,是为了合乎逻辑,如上所述,局部变量的改变不会影响内部类中的值。

参考Java的局部内部类以及final类型的参数和变量


线程安全:StringBuffer\Enumeration:(HashTable\Vector)

对应于非线程安全的:StringBuilder\Iterator:(HashMap\Collection)



0 0
原创粉丝点击