A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

由于文字的限制1000,我只能发两个贴了:'(


文章主要是为了抛砖引玉,希望有更多牛人的指点
谢谢的  xuanyuan 的建议:  
===================================================
7.慎用synchronized,尽量减小synchronize的方法
re:同意,不过文中有个地方说错了,使用synchronized关键字并不一定都是锁定当前对象的,要看具体的锁是什么。如果是在方法上加的synchronized,则是以对象本身为锁的,如果是静态方法则锁的粒度是类。
---------------
9.尽量不要使用finalize方法
re:同意,其实不推荐用finalize方法的根本原因在于,JVM的规范并不保证何时执行该方法,所以用这个方法来释放资源很不合适,有可能造成长时间资源得不到释放。
---------------
16.尽量使用移位来代替'a/b'的操作;17.尽量使用移位来代替'a*b'的操作
re:个人不太同意这两条。这样做确实有更好的性能,但是却牺牲了可读性。这两个操作符对很多程序员来说并不直观。我认为在如今硬件价格不那么昂贵的情况下,略微牺牲一些性能,换来更好的可读性和可维护性是好的选择。
===================================================
===================================================
19.尽量早释放无用对象的引用   
大部分时,方法局部引用变量所引用的对象 会随着方法结束而变成垃圾,因此,大部分时候程序无需将局部,引用变量显式设为null。   
例如:   
Public void test(){   
Object obj = new Object();   
……   
Obj=null;   
}   
上面这个就没必要了,随着方法test()的执行完成,程序中obj引用变量的作用域就结束了。但是如果是改成下面:   
Public void test(){   
Object obj = new Object();   
……   
Obj=null;   
//执行耗时,耗内存操作;或调用耗时,耗内存的方法   
……   
}  
如果Object obj = new Object(); 如果这对象并不是大对象,这有必要吗?Obj=null;只是告诉jvm这个对象已经成为垃圾,至于什么时候回收,还不能确定! 这可读性也不好!

评分

参与人数 1黑马币 +10 收起 理由
贠(yun)靖 + 10

查看全部评分

1 个回复

倒序浏览
{:soso_e163:}{:soso_e163:}{:soso_e163:}{:soso_e163:}自己不能给自己加$_$
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马