Effective java-对象的创建和销毁】的更多相关文章

Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 通过私有构造器强化不可实例化的能力 第5条 避免创建不必要的对象 第6条 消除过期的对象引用 第7条 避免使用终结方法 第1条 考虑用静态工厂方法代替构造器 对于类而言, 最常用的获取实例的方法就是提供一个公有的构造器, 还有一种方法, 就是提供一个公有的静态工厂方法(static factory…
类实例化可生成对象,实例方法就是对象方法,实例变量就是对象属性.一个对象的生命周期包括三个阶段:创建.使用和销毁. 创建对象 创建对象包括两个步骤:声明和实例化. 声明 声明对象与声明普通变量没有区别,语法格式如下: type objectName; 其中type是引用类型,即类.接口和数组.示例代码如下: String name; 该语句声明了字符串类型对象name.可以声明并不为对象分配内存空间,而只是分配一个引用. 实例化 实例化过程分为两个阶段:为对象分配内存空间和初始化对象,首先使用n…
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4254987.html 第一章      前言 略... 第二章      创建和销毁对象 1.            考虑用静态工厂方法代替构造器 条)调用私有构造器,如果要抵御这种攻击,可以修…
创建和销毁对象 一.静态工厂方法代替构造器 静态工厂方法的优缺点 优点: 1.可以自定义名称(可以将功能表述的更加清晰) 2.不必每次调用都创建新的对象(同一对象重复使用) 3.返回的类型可以是原返回类型的任何子类型对象 4.简化创建对象时的代码 缺点: 1.如果不含有公开的构造器,就不能被子类化 2.和普通的静态方法没有区别 二.遇到多个构造器参数时考虑用构建器 如果我们现在需要编写一个描述客户信息的类,在客户的信息中名字是一定有的,其他的信息都是可能用,我们使用三种方法去完成: 1.重叠构造…
1.优先考虑用静态工厂方法代替构造器2.遇到多个构造器参数时要考虑使用构建器Builder解决参数过多,不可变类型.私有构造方法,静态类的构造方法提供必要参数,剩下可选.new xxx.build()3.用私有构造器或者枚举类型强化Singleton属性.单例:无状态.实现单例如果实现序列化接口,可能会在序列化和反序列化导致有多个实例产生.枚举的实现方法可以解决,但是枚举不太好去继承.枚举是目前最佳实现单例的方法.4.通过私有构造器强化不可实例化的能力5.优先考虑依赖注入来引用资源.资源都是单例…
说到java对象的创建,首先应该提下java的内存机制,最主要的两块应该就是堆内存和栈内存. 简单点来说栈内存主要是保存基本数据类型的值和保存引用变量,堆内存主要用来存放new产生的对象,数组. 堆是被所有线程共享的一块内存区域,在虚拟机启动的时候被创建.我的理解就是堆是用来存放实实在在东西的,而栈只是用来存放一个编号的. 好比你是个真实存在的人(编号9527,这个就是那些栈中引用指向的地方),你就是放在堆中,你的名字叫张三,而这个张三是放在栈中一个引用变量,你也可以有一个小名叫李二狗,这个李二…
前面几篇博文分别介绍了JAVA的Class文件格式.JVM的类加载机制和JVM的内存模型,这里就索性把java对象的创建过程一并说完,这样java对象的整个创建过程就基本上说明白了(当然你要有基础才能真正看明白).经常有人问我为什么这么喜欢钻研底层的东西,首先,因为我以前的做硬件的和嵌入式的,兴趣使然:其次,我个人感觉,如果不把上下打通,心里老是有一堵墙过不去,说白了,这是个人因素,与好坏无关(当然,经常有人说,懂底层原理是成为高手的必经之路). 现在来说一下我当初学习JVM的原因,在学习JAV…
摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化.在类初始化过程中或初始化完毕后,根据具体情况才会去对类进行实例化.本文试图对JVM执行类初始化和实例化的过程做一个详细深入地介绍,以便从Java虚拟机的角度清晰解剖一个Java对象的创建过程. 版权声明: 本文原创作者:书呆子Rico 作者博客地址:http://blog.cs…
参考来源:http://blog.csdn.net/justloveyou_/article/details/72466416 摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化.在类初始化过程中或初始化完毕后,根据具体情况才会去对类进行实例化.本文试图对JVM执行类初始化和实例化的过程做一个详细深入地介绍,以便从Java虚拟机…
Java对象的创建及使用 对象是类的具体实例(instance),是真实存在的个体:…