effect java 学习摘要(1)
来源:互联网 发布:模拟羊水声音软件 编辑:程序博客网 时间:2024/06/04 17:50
静态工厂方法替代构造器
内容
优点 :
1. 返回的对象, 客户端生成对象的代码更容易被阅读. 常用构造器的参数本身没有确切地描述正被返回的对象.
2. 不必在每次调用的时候都创建一个新的对象. 如果程序经常请求创建相同的对象 , 那这种方式极易提升性能.
3. 返回原返回类型的任何子类型的对象.
4. 创建参数类型实例的时候,使代码变得更加简洁.缺点 :
- 类如果不含共有的或者受保护的构造器, 就不能被子类化.
- 与其他静态方法实际没有任何区别
静态工厂方法 :
- java中常见的静态工厂方法命名 :
valueOf()
of()
newInstance()
getType()
newType()
getInstance() - 常见的静态工厂方法实现由Sington单例模式;
- java中常见的静态工厂方法命名 :
多个构造器参数时要考虑用构建器
- 场景 : 初始化对象实例具有多个构建参数.
- AnTipattern(反模式) : 避免JavaBean模式构建, 除非保证线程安全, 否则多线程访问会有大问题.
- 解决方案 : 使用Builder模式来构建多参的对象
私有构造器或者枚举类型强化Singleton属性
- 最佳单例模式的实现 : 枚举Enum单例模式
单例模式更多了解,请直接看这篇博客;
通过私有构造器强化不可实例化的能力
- 类的静态方法调用, 无需实例化构造器
避免创建不必要的对象
可重用的变量, 可以设置为静态变量, 并且通过静态代码块来初始化, 达到避免重复创建对象的目的.
private static final Persion PERSION;static{ //initialize PERSION PERSION = new Persion();}
消除过期对象引用
作用 : 消除内存泄漏
方法 :
- 清空过期引用, 常用方式 object = null;
- 内存泄漏来源于缓存 , 建议 WeakReference包裹之;
- callback以及监听持有的匿名类, 建议也用WeakRefence包裹, 但还是需根据实际场景处理.
finalize()函数的使用
- 使用try{}finally{}代码块 , 释放资源, 例如cursor,bitmap等等
- finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
- Java中所有类都从Object类中继承finalize()方法
阅读全文
0 0
- effect java 学习摘要(1)
- effect java 学习摘要(2)
- effect java 学习摘要(3)
- effect java 学习摘要(4)
- effect java 学习摘要(5)
- effect java 学习摘要(6)
- effect java 学习摘要(7)
- effect java 学习摘要(8)
- effect java 学习摘要(9)
- Java虚拟机学习摘要
- java IO流学习摘要
- Hibernate学习摘要(1)
- thinkPhp学习摘要1
- 计算机网络 学习摘要(1)
- Eclipse学习摘要-1
- C++学习摘要记录(1)
- 《Effect C++》学习------基本知识
- 学习笔记摘要 JAVA基础不行
- pdo的概念
- [第2节] Java NIO流-缓冲区
- 《天才在左,疯子在右》读记
- Python3 URLopen 含中文URL的处理方法
- HashCode的作用原理和实例解析
- effect java 学习摘要(1)
- CSS(4)__CSS基本用法<三种定位>
- Linux入门命令
- 自定义控件——第一行代码3.4.2
- Android事件分发(1)
- LIBSVM在Matlab下的安装与简单使用
- springmvc学习笔记2
- 回文子串
- spring-boot单元测试