java effective 读书笔记
java effective 读书笔记 【】创建和销毁对象
静态工厂方法 就是“封装了底层 暴露出一个访问接口 ” 门面模式
多参数时 用构建器,就是用个内部类 再让内部类提供构造好的对象
枚举 singleton 不知道怎么操作,觉得意义不大 单例模式
私有化构造器不能实例化,也不可被子类继承
能用原生类的就尽量不用对象 【】对于所有对象都通用的方法 reflexivity 自反性
symmetry 对称性 【】类成员 降低可访问性
尽量把公有域 变成私有域,并提供 访问和修改的 get set 方法 ,这样便于 添加辅助功能
公有类永远都不要暴露可变的域 使可变性最小 decorator warpper 包装 property 继承自hashtable 用 decorator 模式 遇到 property中有的而hashtable中没有 的 时候 就有问题了 比如(load 或 sotre) 要么为了继承设计 要么就不要继承 接口优于抽象类 若有标签域,最好重构到一个层次结构中。 策略模式strategy 如比较器的底层实现 通过函数对象表示 表示策略 优先考虑静态成员类 尽量使用泛型 以达到类型检察的目的 能不重载尽量不重载
尽量不使用变参方法 返回值类型为数组或者集合的方法 即使内容为空也没必要返回null 尽量些 文档注释 把局部变量的作用域尽量缩小 便于阅读 和使用
对于装箱基本类型运用==操作符几乎总是错误的 使用 StringBuilder 代替 字符串连接符 提高效率。 多用接口代替类,使程序比较灵活
接口优先于反射
谨慎使用本地方法 因为本地方法是不安全的,可能破坏内存 如果数值范围没有超过9位十进制数字--->int
如果数值范围没有超过18位十进制数字--->long
如果数值范围超过18位十进制数字--->BigDecimal 有限制通配符
不要快 要好 命名 惯例
类名 接口名 单词首字母大写
方法名 域名称 首字母小写
常量域所有字母大写 字母间用下划线隔开 异常
异常捕捉 在必要时候用,能不用尽量不用
异常为异常情况而设计,不需要用在普通控制流程中。 异常类越少越好 节约内存 。
异常信息应该针对关键点 并发不仅仅有互斥 它还提供了其它线程可以看到这个线程的机会 在同步区域中调用外部方法 容易造成死锁。
尽量减少同步区工作量 BigDecimal <<Java Concurrency in Practice>> java.util
java.lang
java.io
Random.nextInt(); CountDownLatch Semaphore
CyclicBarrier Exchanger Laffy is open source on http://laffy.dev.java.net
•http://download.java.net/javadesktop/laffy/Laffy.jnlp Java™ for Programmers
By Paul Deitel, Harvey M. Deitel
java effective 读书笔记的更多相关文章
- 深入理解Java虚拟机 -- 读书笔记(1):JVM运行时数据区域
深入理解Java虚拟机 -- 读书笔记:JVM运行时数据区域 本文转载:http://blog.csdn.net/jubincn/article/details/8607790 本系列为<深入理 ...
- Java并发读书笔记:线程安全与互斥同步
目录 导致线程不安全的原因 什么是线程安全 不可变 绝对线程安全 相对线程安全 线程兼容 线程对立 互斥同步实现线程安全 synchronized内置锁 锁即对象 是否要释放锁 实现原理 啥是重进入? ...
- 单元测试之道Java版——读书笔记
单元测试知道Java版读书笔记 首先我们必须要知道我们所写的代码,它的功能是什么,如果我们不了解代码的行为,那么也就无从测试. 我们测试的目的,是为了我们整个程序架构的稳定,代码其实就是欧文要实现功能 ...
- 《Effective Java》读书笔记(一)之创建和销毁对象
最近在研读<Effective Java>一书,读书不做点笔记,感觉很容易就忘掉,于是用本篇博客来记录阅读此书的笔记. 郑重声明: 由于是<Effective Java>一书的 ...
- 《Effective java》-----读书笔记
2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础.Spring研究.java并 ...
- 《Effective Java》 读书笔记(六)避免创建不必要的对象
java 有很多修饰类的属性的关键字:常用的static,final 说说final和static吧,平时在编程的时候,这两个关键字很多时候都觉得可有可无,最多的时候就是他们俩同时出现----定义常量 ...
- 《Effective Java》 读书笔记(七)消除过期的对象引用
大概看了一遍这个小节,其实这种感觉体验最多的应该是C/C++程序,有多杀少个new就得有多个delete. 一直以为Java就不会存在这个问题,看来是我太年轻. 感觉<Effective Jav ...
- 《Effective Java》 读书笔记(三) 使用私有构造方法或枚举实现单例类
1.单例类到现在为止算是比较熟悉的一种设计模式了,最开始写单例模式是在C#里面,想要自己实现一个单例类,代码如下: public class Instance { private static rea ...
- 《Effective Java》 读书笔记(二) 在构造参数过多的时候优先考虑使用构造器
刚开始看见这个标题的时候,我想到了python可以选择初始化参数的语法,C++.C#能有默认参数. 为什么Java什么都没有~~ 好吧,我们是使用构造器来实现它. 1.当一个类的构造函数需要很多构造函 ...
随机推荐
- POJ2735/Gym 100650E Reliable Nets dfs
Problem E: Reliable NetsYou’re in charge of designing a campus network between buildings and are ver ...
- android webview与 java与javascript的交互
webView.getSettings().setJavaScriptEnabled(true);//打开就可以用js的功能 webView.getSettings().setJavaScript ...
- 【转】HBase 超详细介绍
---恢复内容开始--- http://blog.csdn.net/frankiewang008/article/details/41965543 1-HBase的安装 HBase是什么? HBase ...
- XmlBeanFactory的Bean加载
如何使用这些bean,bean加载的探索: MyTestBean bean=(MyTestBean) bf.getBean("myTestBean"); AbstractBeanF ...
- Java的锁优化
高效并发是从JDK 1.5到JDK 1.6的一个重要改进,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spinning).锁消除(Lo ...
- SU Demos 03T-F Analysis-03Suphasevel
不足之处,欢迎批评指正. 1.先看readme,共有3个脚本. 第1个脚本用到的模型文件. 2.第1个脚本 运行结果 3.第2个脚本 4.第3个脚本
- 打开别人Xamarin项目找不到android.jar文件
打开别人Xamarin项目找不到android.jar文件 错误信息:Could not find android.jar for API Level 23.打开非本机创建的Xamarin项目,编译的 ...
- HealthKit开发快速入门教程之HealthKit开发概述简介
HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为“He ...
- 完全背包 Codeforces Round #302 (Div. 2) C Writing Code
题目传送门 /* 题意:n个程序员,每个人每行写a[i]个bug,现在写m行,最多出现b个bug,问可能的方案有几个 完全背包:dp[i][j][k] 表示i个人,j行,k个bug dp[0][0][ ...
- Color a Tree[HDU1055]
Color a Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...