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.当一个类的构造函数需要很多构造函 ...
随机推荐
- SQL Server 2005 中实现通用的异步触发器架构
在SQL Server 2005中,通过新增的Service Broker可以实现异步触发器的处理功能.本文提供一种使用Service Broker实现的通用异步触发器方法. 在本方法中,通过Serv ...
- Scala中的match(模式匹配)
文章来自:http://www.cnblogs.com/hark0623/p/4196261.html 转载请注明 代码如下: /** * 模式匹配 */ case class Class1(pa ...
- hdu 1455 Sticks
Sticks Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- http://blog.csdn.net/shangboerds/article/details/44175667
http://blog.csdn.net/shangboerds/article/details/44175667
- mysql数据库之基础SQL语句/语法
SQL是现在进入互联网工作人们的必须技能之一,下面分享自己觉得很nice的SQL基本语句,从网上找了,觉得很不错,就分享给大家!简要介绍基础语句: 1.说明:创建数据库 Create DATABAS ...
- 【wikioi】1904 最小路径覆盖问题(最大流+坑人的题+最小路径覆盖)
http://wikioi.com/problem/1904/ 这题没看数据的话是一个大坑(我已报告官方修复了),答案只要求数量,不用打印路径...orz 最小路径覆盖=n-最大匹配,这个我在说二分图 ...
- Idea_从Eclipse转Intellij IDEA
场景:使用Intellij IDEA感觉还是不是很顺手,想放弃又舍不得它,如:强大的代码提示功能. 本人使用IntelliJ IDEA其实并不太久,用了这段时间以后,觉得的确很是好用.刚刚从Eclip ...
- 二、saltstack基础配置
super65 master 192.168.1.65 super66 minion 192.168.1.66 主配置文件: [root@super65 ~]# ll /etc/sa ...
- dos界面下执行java文件将错误输出到一个文本小技巧
如果dos下执行java出现错误,把错误记录到一个文档 正确时如图,输出结果为hello,我把String的s改为小写,出现错误,用2>命令输出到error.txt在当前目录就出现了error. ...
- SQL Server 收缩数据库
//删除大量数据 /*** * * BEGIN TRANSACTION; * SELECT * INTO #keep FROM Original WHERE CreateDate > '2011 ...