java代码运行效率.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担, 缩短加载的时间, 提高加载的效率, 但并不是所有地方都适 用于单例,简单来说,单例主要适用于以下三个方面 第一,控制资源的使用,通过线程同步来控制资源的并发访问 第二,控制实例的产生,以达到节约资源的目的 第三, 控制数据共享, 在不建立直接关联的条件下, 让多个不相关的进程或线程之间实现通 信 - 2.尽量避免随意使用静态变量 要知道,当某个对象被定义为 stataic 变量所引用,那么 gc 通常是不会回收这个对象所占有 的内存,如 public class A{ static B b = new B(); } 此时静态变量 b 的生命周期与 A 类同步,如果 A 类不会卸载,那么 b 对象会常驻内存,直 到程序终止。 - 3.尽量避免过多过常的创建 java 对象 尽量避免在经常调用的方法,循环中 new 对象,由于系统不仅要花费时间来创建对象,而 且还要花时间对这些对象进行垃圾回收和处理,在我们可以控制的范围内,最 大限度的重用对象,最好能用基本的数据类型或数组来替代对象。 - 4.尽量使用 final 修饰符 带有 final 修饰符的类是不可派生的。在 Java 核心 API 中,有许多应用 final 的例子,例如 java.lang.String 。为 String 类指定 final 防止了使用者覆盖 length()方法。 另外, 如果一个类是 final 的,则该类所有方法都是 final 的。java 编译器会寻找机会内联 (inline) 所有的 final 方法 (这和具体的编译器实现有关 ) 。此举能够使性能平均提高 50% 。 - 5.尽量使用局部变量 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈 (Stack) 中,速度较快。 其他 变量,如静态变量,实例变量等,都在堆 (Heap) 中创建,速度较慢。 6.尽量处理好包装类型和基本类型两者的使用场所 虽然包装类型和基本类型在使用过程中是可以相互转换, 但它们两者所产生的内存区域是完 全不同的,基本类型数据产生和处理都在栈中处理,包装类型是对象,是在堆中产生实例。 在集合类对象,有对象方面需要的处理适用包装类型,其他的处理提倡使用基本类型。 - 7.慎用 synchronized ,尽量减小 synchronize 的方法 都知道, 实现同步是要很大的系统开销作为代价的, 甚至可能造成死锁, 所以尽量避免无谓 的同步控制。 synchronize 方法被调用时,直接会把当前对象锁了,在方法执行完之前其他 线程无法调用当前对象的其他方法。所以 synchronize 的方法尽量小,并且应尽量使用方法 同步代替代码块同步。 - 8.尽量使用 StringBuilder 和 StringBuffer 进行字符串连接 这个就不多讲了 - 9.尽量不要使用 finalize 方法 实际上,将资源清理放在 finalize 方法中完成是非常不好的选择,由于 GC 的工作量很大, 尤其是回收 Young 代内存时,大都会引起应用程序暂停,所以再选择使用 finalize 方法进行 资源清理,会导致 GC 负担更大,程序运行效率更差。 - 10.尽量使用基本数据类型代替对象 String str = hello; 上面这种方式会创建一个 “hello字符串,而且” JVM 的字符缓存池还会缓存这个字符串; String str = new String(hello); 此时程序除创建字符串外, str 所引用的 String 对象底

文档评论(0)

虾虾教育 + 关注
官方认证
内容提供者

有问题请私信!谢谢啦 资料均为网络收集与整理,收费仅为整理费用,如有侵权,请私信,立马删除

版权声明书
用户编号:8012026075000021
认证主体重庆皮皮猪科技有限公司
IP属地重庆
统一社会信用代码/组织机构代码
91500113MA61PRPQ02

1亿VIP精品文档

相关文档