Effective Java 学习笔记 (7)
Finalizer 不可计划的,也是危险的,一般也是不必要的. 不能在finalizer中放任何与依赖时间相关的操作,因为你不知道它什么时候被执行. 比如在finalizer中关闭文件的做法就是错误的, 根据JVM的实现方式不同,有可能导致打开的文件数过多而无法再打开文件. 也不能在finalizer中改变状态,如给数据库解锁等. finalizer还能带来严重的性能问题, 显示的调用的终止函数可以采用try -finally的语句 当然,合法的使用finalizer有两种情况: 一种是做为最后的一道关卡,检测用户是否有没有被释放的资源,如果有则释放它,并打印出警告. 虽然不提倡在finalizer中释放资源,但晚释放总比不释放好(beter later than never) 还一种合法使用就是在使用 native方法的时候. 要注意,finallizer没有承继关系,在子类中必须显示调用父类中的函数.
相关文档:
Ubuntu Linux Install Sun Java Development Kit ( JDK ) and Java Runtime Environment ( JRE )
by Vivek Gite
Q.
How do I install Sun
Java Development Kit (JDK) and Java Runtime Environment (JRE) under
Ubuntu Linux? It appears that there are multiple JRE installed by
default under Ubuntu. ......
public class select {
public List XiuGai_select(String keyword){
List list=new ArrayList();
Connection conn = null;
Statement stmt = null;
String sql=null;
ResultSet res = null;
get ......
我今天学习了Oracle数据库如何修改表的知识,是冯威老师讲的课,我做了简单的记录:
1.在表中插入新的列:
alter table tablename
add city varchar(2) default 'rr' //赋默认值
2.修改表中的列:
alter table tablename
modify city varchar(20)
3.删除表中的列:
alter t ......
及时消除不使用的对象的引用, 理论上, 带有内存管理的语言是不存在内存泄漏的, 但是如果对对象的操作不当,也是可能会造成内存泄漏. 如有一个stack, 其pop函数如下. public Object pop() { if( Element.length() == 0) return nu ......
从JavaSE 到JavaEE
再从corejava1,corejava11,Java Language Specification, Second(Third) Edition, Think in java,Data Structure java depth Adventrue)
转到JavaEE(EJB,Spring,Hibernate,Webwork,struts1,strut2,jsp,servlet)
从开源组织再到自组织,再到corejava1,corejava11
到JavaWebServer,java Web Prog ......