Effictive Java学习笔记1:创建和销毁对象
建议1:考虑用静态工厂方法代替构造器
理由:1)静态方法有名字啊,更容易懂和理解。构造方法重载容易让人混淆,并不是好主意
2)静态工厂方法可以不必每次调用时都创建一个新对象,而公共构造函数每次调用都会创建一个对象实例。就可以预先创建好对象嘛,从而能避免创建不可重复的对象。
静态工厂方法能为重复的调用返回相同对象。
缺点:如果类没有构造函数,就不能被子类化了,子类的super()就没法用了
建议2:遇到多个构造器参数时,考虑采用构建器
理由:重叠构造函数形式,构造函数重载。
当遇到很多构造器参数的时候,可以采用javabean模式。这种模式下,调用一个无参构造函数,然后调用setter来设置每个必要的参数及相关可选参数。
但是java bean模式有个致命问题,因为要很多步骤创建bean,就造成了这个bean 线程不安全,状态不一致。就需要程序员付出额外的努力保证他线程安全。
第三种
转载于:https://www.cnblogs.com/panxuejun/p/7285023.html
Effictive Java学习笔记1:创建和销毁对象相关推荐
- 《Effect Java》学习笔记1———创建和销毁对象
第二章 创建和销毁对象 1.考虑用静态工厂方法代替构造器 四大优势: i. 有名称 ii. 不必在每次调用它们的时候都创建一个新的对象: iii. 可以返回原返回类型的任何子类型的对象: JDBC ...
- Java学习笔记:创建线程的两种方法
Java学习笔记:创建线程的两种方法 一.预备工作 1.创建Maven项目ThreadDemo 2.在pom.xml里添加依赖 二.继承Thread类创建子线程
- Effective Java(1)-创建和销毁对象
Effective Java(1)-创建和销毁对象 转载于:https://www.cnblogs.com/Johar/p/10556218.html
- 【Java学习笔记六】常用数据对象之String
字符串 在Java中系统定义了两种类型的字符串类:String和StringBuffer String类对象的值和长度都不能改变,称为常量字符串类,其中每个值称为常量字符串. StringBuffer ...
- 【Java学习笔记一】类和对象
面向对象程序设计的一个一个重要特点是:封装性. 这里的封装性有两方面含义:一是将有关的数据和操作代码封装在一个对象中形成一个基本单位,各个对象之间相互独立互不干扰,二是将对象中某些部分对外隐蔽,即隐蔽 ...
- Java学习笔记-12.传递和返回对象
1.Clone()方法产生一个object,使用方法后必须产生的object赋值. Vector v2 = (Vector)v.clone(); 2.Clone()方法在object中是保护类型方法, ...
- 【Java学习笔记七】常用数据对象之数组
同一般的对象创建和定义一样,数组的定义和创建可以分开进行也可以合并一起进行. 一维数组定义格式: <元素类型>[] <数组名>;//[]也可以放在数组名的后面 一维数组创建格式 ...
- java学习笔记(十一)基本数据类型的对象包装类
基本数据类型的对象包装类 --------------------------- 基本数据类型 包装类 boolean Boolean byte ...
- Effective Java(一)—— 创建和销毁对象
在客户端(调用端)获取自身实例的方法: 公有的构造器: 类的静态工厂方法: 1. 使用静态工厂方法代替构造器 Boolean 是对基本类型 boolean 的包装类: public final cla ...
最新文章
- Spring Security 实战干货:OAuth2第三方授权初体验
- DataList编辑、更新、取消、删除、分页(分页控件 AspNetPager.dll)
- 08_传智播客iOS视频教程_Foundation框架
- 项目中使用Quartz集群分享--转载
- 逻辑漏洞之任意用户登陆漏洞
- oracle查被锁存储过程,oracle 结束被锁的包或存储过程
- 韵乐x5效果器ktv最佳参数_家庭ktv(卡拉ok)家庭影院ktv选购推荐攻略
- 这样就算会了PHP么?-11
- MinIO客户端快速入门指南
- Linux shell统计文件数脚本,使用shell脚本巧妙统计文件
- 数据的分析的方法及评价指标总结
- vs2015调试iisexpress无法启动的问题解决方案整理
- FontAwesome 字体图标库 使用
- 【微服务架构】让我们谈谈“拥有”他们的数据的微服务
- ffmpeg 截取切割视频报错
- ERP - 国际贸易术语(Incoterm)总结
- css 实现图片间用间隔线(竖线)
- 怎样设置阿里云Web应用攻击防护?
- 2022年中级会计中级经济学法考试复习题及答案
- 限速之令牌桶和漏桶算法
热门文章
- react脚手架_react脚手架create-react-app安装与使用
- 所有浏览器主页惨遭篡改:http://wangzhi6.dhtz444.top/或https://www.2345.com/
- Specified key was too long; max key length is 767 bytes解决方案
- springMVC前后端各种类型数据绑定
- 软件过程改进杂谈 00.序
- 北大AI第八讲 李航 自然语言处理的现实与挑战
- 到底他怎么赚钱了啊?看来看去也看不出他赚钱了,看来经济头脑有限啊
- 使用Python抓取网页信息
- JS数组的相关操作(循环、查找、过滤、排序等)
- vim写python_用 Vim 写 Python 的最佳实践