第四条:避免创建重复的对象
4.1
String s = new String("haha"); // don't do this 该语句每次都会new 一个新的对象出来,在循环中将会new出一堆的新对象
String ss = "haha";这个方式新建的对象把放入JVM的池中,在循环中中再次调用时,不会new 一个新对象。
4.2
Boolean b = Boolean.valueOf("true"); 这个是利用静态工厂来获得对象,只会新建一个新的对象
Boolean b1 = new Boolean("true"); 通过构造方法来获得对象的方式则会新建一个对象
在新建一个类的时候,尽量使用对方提供的静态工厂来获得实例,因为在其中还可以做到延迟加载的效果。
4.3
对于一些不变的变量,特别是定义在循环中的变量,如果其值是不变,那么可以考虑设置为static final 。
在static 块中进行赋值。能够大大减少系统的开销。至少可以减少100倍的耗时。在1000000次循环的情况下。
4.4
对于现代的JVM来说,小对象的创建和回收是非常廉价的,建立多使用。不过在循环中例外。
第五条:消除过期的对象引用
例如说在一个栈中,我们pop一个元素后,在数组中指向该对象的引用起始已经是无效了,但是JVM不知道,还在这个数组中保持着对该对象的引用,不会去清理该片内存,如果一直操作这个栈的话就可能会引起内容泄露。
良好的做法就是设置数组pop的这个位置的引用指向null。
即,只要一个类自己管理一片内容的话,就需要考虑内存泄露的问题。
内存泄露还有可能就是缓存
第六条:避免使用终结函数
暂时没看明白
分享到:
相关推荐
effective java 读书笔记,第二版自己摘要并翻译,以备速查。
Structure /src/main/java ... ├ effective_java Effective Java 中文第二版 ├ jvm 深入理解Java虚拟机:JVM高级特性与最佳实践 ├ lambda JAVA 8实战 ├ netty Netty权威指南 ├ oop ├ recursion
Java学习笔记 Effective Java Topic2:插件销毁对象 2. 多参数情况 使用重叠构造器; 使用Build模式【构建器】: new A.Build().set.set.build(); Build模式也适用于类层次结构 递归类型参数 /* * 递归类型参数: ...
高级java笔试题 个人博客 c++ c++primer - c++primer顺序容器与关联容器的一些用法 effective c++ - effective c++笔记归纳 Data Structures and Algorithm Analysis 数据结构与一些算法,来自算法导论,数据结构与...
java8 源码 Spring IoC源码 effectiveJava学习笔记 Java8的实战学习笔记
找了5本学习java的好书和一些例子代码和大家分享,希望能够对您能有所帮助。
的学习笔记 学习笔记与练习项目源码整理 The Only Easy Day Was Yesterday 编程语言 C 参考书籍 : 《c primer plus》 6th edition 书内习题答案总结 , 优秀源码赏析 快速平方根算法 kilo (1000行的源文本编辑器) ...
loveincode's notes 学习工作中的一些记录,收藏。 操作系统 , 编译原理 , 计算机网络 , 互联网协议... 常用数据结构与算法 Java 实现 数据结构 与 排序算法 ...Effective Java , HTTP权威指南 , Java
2:设计模式与架构 part 3:编程语言 & 前端 & 机器学习 C++笔记 part 4: 数据结构与算法 part 5: 笔试/面试 part 6:专业基础 输入URL到页面加载完成的过程 part 7:读书笔记 thinking in java effective java ...
安卓艺术开发探索读书笔记,EffectiveJava读书笔记. 收集各大神博客以及安卓笔记,安卓面试笔记等方便手机端查看. 更新说明 v2.2.2 1.增加了一些最近在学习比较好的安卓大神的博客. 2.增加了来自GeniusVJR整理的安卓...
作者HotBitmapGG,源码StudyProject,一款 Material Design 风格的 AndroidRank 干货学习客户端,需要...安卓艺术开发探索读书笔记,EffectiveJava 读书笔记. 收集各大神博客以及安卓笔记,安卓面试笔记等方便手机端查看.
VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf...