Java编程中“为了性能”尽量要做到的一些地方 [转]
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。
2. 尽量避免随意使用静态变量
- public class A{
- static B b = new B();
- }
- Public void test(){
- Object obj = new Object();
- ……
- Obj=null;
- }
- Public void test(){
- Object obj = new Object();
- ……
- Obj=null;
- //执行耗时,耗内存操作;或调用耗时,耗内存的方法
- ……
- }
re:同意,不过文中有个地方说错了,使用synchronized关键字并不一定都是锁定当前对象的,要看具体的锁是什么。如果是在方法上加的synchronized,则是以对象本身为锁的,如果是静态方法则锁的粒度是类。
---------------
9.尽量不要使用finalize方法
re:同意,其实不推荐用finalize方法的根本原因在于,JVM的规范并不保证何时执行该方法,所以用这个方法来释放资源很不合适,有可能造成长时间资源得不到释放。
---------------
16.尽量使用移位来代替'a/b'的操作;17.尽量使用移位来代替'a*b'的操作
re:个人不太同意这两条。这样做确实有更好的性能,但是却牺牲了可读性。这两个操作符对很多程序员来说并不直观。我认为在如今硬件价格不那么昂贵的情况下,略微牺牲一些性能,换来更好的可读性和可维护性是好的选择。
大部分时,方法局部引用变量所引用的对象 会随着方法结束而变成垃圾,因此,大部分时候程序无需将局部,引用变量显式设为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这个对象已经成为垃圾,至于什么时候回收,还不能确定! 这可读性也不好!
转载于:https://www.cnblogs.com/smilesmile/p/3821926.html
Java编程中“为了性能”尽量要做到的一些地方 [转]相关推荐
- Java之基础(1) - 编程中“为了性能”尽量要做到的一些地方
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Ja ...
- Java编程中“为了性能”尽量要做的26点
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Ja ...
- Java编程中“为了性能”需做的26件事
下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方. 1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说, ...
- Java编程中“为了性能”需做的26件事(转)
转自:http://www.csdn.net/article/2012-06-01/2806249 1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所 ...
- java编程中的异常分析及面向对象的思考总结[图]
java编程中的异常分析及面向对象的思考总结[图] 1.异常: 程序中出现的不正常现象. 2.异常的由来: 程序在运行的过程中出现了不正常的情况,程序把它看成对象提取了属性行为(名字,原因,位置等信息 ...
- java编程里的values怎么使用,详解Java编程中super关键字的用法
这篇文章主要介绍了Java编程中this与super关键字的用法,包括从内存结构方面分析super的作用域,需要的朋友可以参考下 通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程 ...
- JAVA 代码交互率低的原因分析,深入剖析Java编程中的中文问题及建议最优解决方法...
说明:本文为作者原创,作者联系地址为: josserchai@yahoo.com .由于 Java 编程中的中文 问题是一个老生常谈的问题,在阅读了许多关于 Java 中文问题解决方法之后,结合作者的 ...
- Java编程中忽略这些细节,Bug肯定找上你
摘要:在Java语言的日常编程中,也存在着容易被忽略的细节,这些细节可能会导致程序出现各种Bug. 本文分享自华为云社区<Java编程中容易忽略的细节总结丨[奔跑吧!JAVA]>,作者:j ...
- java程序设计专业介绍_简介Java编程中的Object类
这篇文章主要介绍了简介Java编程中的Object类,是Java入门学习中的基础知识,需要的朋友可以参考下 Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每 ...
最新文章
- 2020多校第1场A题【后缀数组+思维】
- EFM32外设模块—USART V1.00
- GET 和 POST 的区别(重要,面试常问)
- 用ado.net生成对应的sql语句
- #leetcode刷题之路35-搜索插入位置
- word修改一处另一处自动修改_这么做让word自动记录修改明细,再也不用一个字一个字的核对了...
- ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解
- MATLAB2016下载地址,包含安装教程
- java quartz 教程_Quartz视频教程
- ssm项目中使用拦截器加上不生效解决方案
- Linux scp 使用详解
- XCode中的Debug View Hierarchy功能
- python科学计算之anaconda
- ps色彩范围调暗图片局部
- aspeed显卡安装ubuntu驱动
- word一键生成ppt 分页_WORD自动生成PPT
- hpuoj 1689: MZY寻宝 【bfs】
- 第三代USRP 产品对比
- 头歌-自己动手画CPU(第一关)-8位可控加减法器-Logisim
- flash动画有几种文件格式
热门文章
- Unity协程(Coroutine)原理深入剖析
- 学会判断Web安全网关的性能
- asp.net绑定checkboxlist--------jquery绑定click事件,获取checkbox的value和显示值
- 语言程序设计 郭有强_「概念篇8」程序语言如何被计算机理解?靠猜?那就搞笑了...
- Unity3dRPG 相机跟随player旋转_跟随式灌装机
- jupyter notebook运行的快捷键_AI Studio-Notebook基础使用教程(一)
- mysql warning 1618_MySQL - 错误1045 - 拒绝访问
- 查询某个字段的记录是否包含中文或者是否是数字
- python 人数取整_在python中如何取整到10的最高倍数?
- css如何做玻璃效果_3种常见的断桥铝门窗玻璃,它们的隔音降噪效果如何?