《Effective Java》读后感(四)
来源:互联网 发布:js里的on是什么意思 编辑:程序博客网 时间:2024/06/18 14:52
编程规范
- 当需要精确结果时,不要使用float或者double。如果对性能没有要求,那么可以直接使用BigDecimal,如果对性能有要求,那么自己进行小数和整数部分的记录。
- 基本类型优先于装箱类型。装箱类型不具有同一性,使用==比较几乎总是会发生错误。装箱类型没有默认初始值。自动装箱和拆箱对性能有很大的损失。
- 能避免使用字符串的时候尽量不使用。
- 尽量少使用字符串连接。连接n个字符串需要耗费n的平方级的时间,所以尽量使用StringBuild。
- 通过接口引用对象。通过具体的类来引用对象对程序以后的更改极为不利。
- 不要努力去编写快的程序,要努力编写好的程序。如果一个程序的架构够好,那么以后有很多优化的余地。
异常处理
- 应抛出与抽象相对应的异常。也就是说,在低级别处理的异常抛出到高级别时需要进行异常的转义。
- 不要忽略异常!(最简单,也最重要)
同步异步
- 避免过度同步。同步方法过多会降低程序的性能,将同步块尽量最小化。
- executor和task优先于线程。
- 并发工具优先于wait和notify
- double check locking: 双重检查锁。对volatile对象进行双重的检查,保证锁的时间延后而保持对象的正确,应用于很多地方,如:tomcat,spring延迟加载等等。例子:
- public class LazySingleton {
- private static volatile LazySingleton instance;
- public static LazySingleton getInstantce() {
- if (instance == null ) {
- synchronized (LazySingleton.class ) {
- if (instance == null ) {
- instance = new LazySingleton();
- }
- }
- }
- return instance;
- }
- }
- 不要依赖于线程调度器。因为线程调度器是操作系统级的实现,每个操作系统也许都会有不一样的算法,过度依赖于线程调度器大大的降低了程序的可移植性。线程优先级是java平台最不可移植的特征。
- 避免使用线程组。
0 0
- 《Effective Java》读后感(四)
- 《Effective Java》 读后感(一)
- 《Effective Java》读后感(二)
- 《Effective Java》读后感(三)
- 《Effective Java》读后感(一)
- Effective Java 读后感
- Effective Java系列读后感-总纲
- Effective Java读书笔记(四)
- effective java 读书笔记(四)
- effective C++ 读后感(四) 确定对象被使用之前已被初始化
- Effective Java学习笔记(四)
- Effective Java 学习笔记 (四)
- Effective Java 学习笔记(四、五)
- Effective Java 读书笔记(四):泛型
- Effective Java读书笔记四
- effective java读书笔记四
- Effective java 读书笔记( 四 )
- Effective Java(四)
- Linux下调试器工作原理
- AXI-Stream接口开发详细流程
- windows进程间通信(转载)
- jquery获得select option的值 和对select option的操作
- hadoop在生活中的应用
- 《Effective Java》读后感(四)
- Android超越iOS和WP成为移动APP开发最快的平台
- Oracle与MySQL的几点区别
- Uniform Generator
- 网络安全相关技术小结
- 盘点SharePoint 2013那些优秀的开发工具(下)
- 修改标签透明度
- delphi常用正则表达式
- 部分排序算法(php版)