static、final、finally、finalize解析

一 在成员变量、方法前加static变量后,关注两点:
1 与class object脱离
2 只在内存保存一份
先说第1点,因为与class object脱离了,所以static成员就显然不能访问其“所在”类的非static成员了,也不能在static方法里使用this,super关键字,因为this,super关键字是非静态的,还有就是static成员在编译阶段就执行了。
第2点是说,无乱创建多少个相同的static成员对象,内存里只有一个。
 
二 final、finally、finalize
 
1 final
成员变量前加fianl表示该成员变量的值不可以被改变,在方法前加fianl表示该方法不能被覆盖,在类前加fianl表示该类不可以被继承。
2 finally
当catch到异常以后,finally里面的内容一定会执行,常将还原某个设置(如autoCommit),网络连接,文件传输等相关的内容写在里面。
3 finalize
garbage collected能清理掉不用的new出来的对象,但不是new出来的对象占用的内存就需要用finaliz来处理了(比如java里面用到c的malloc,而没有free的话)。

你可能感兴趣的:(变量,static,final,finally,finalize)