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.当一个类的构造函数需要很多构造函 ...
随机推荐
- MATLAB学习笔记(七)——MATLAB解方程与函数极值
(一)线性方程组求解 包含n个未知数,由n个方程构成的线性方程组为: 其矩阵表示形式为: 其中 一.直接求解法 1.左除法 x=A\b; 如果A是奇异的,或者接近奇异的.MATLAB会发出警告信息的. ...
- [转]关于int整形变量占有字节问题
int的长度由处理器(16位,32位,64位)和比哪一期决定. 首先从处理器来讲 :16位处理器中的int 占有16位 即2个字节 32位处理器中int ...
- js:语言精髓笔记8--对象系统
封装: 一把对象系统,封装是由语法解析来实现的,即语法作用域:但js是动态语言,因此只能依赖变量作用域: js的变量作用域只有表达式,函数,全局三种:所以js只能实现public和private两种封 ...
- 拼图游戏 v1.1
我一直对拼图游戏比较有兴趣,市面上卖的所谓“1000块拼图”也玩过不少,不过玩那个太占地方,后来也不再买了,同时也就萌生了在电脑上玩拼图的想法. 现在虽然有很多拼图游戏,但能大多数只能支持几十或几百块 ...
- quick cocos 暂停场景
local MainScene = class("MainScene", function() return display.newScene("MainScene&qu ...
- HDU 2653 (记忆化BFS搜索+优先队列)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2653 题目大意:迷宫中有普通点和陷阱.其中普通点可以走可以飞,但是陷阱只能飞.走耗时1,飞耗时2.但 ...
- 【BZOJ】3850: ZCC Loves Codefires(300T就这样献给了水题TAT)
http://www.lydsy.com/JudgeOnline/problem.php?id=3850 题意:类似国王游戏....无意义.. #include <cstdio> #inc ...
- oracle 存储过程 基础
差不多一年没写过存储过程,最近要写,发现基本忘了,google一番之后,觉得很有必要把基础的东西写下来备忘. 语句块定义: decalre -- 变量声明 var1 ); -- 仅声明 var2 ) ...
- 【C语言】10-字符和字符串常用处理函数
一.字符处理函数 下面介绍的两个字符处理函数都是在stdio.h头文件中声明的. 1.字符输出函数putchar putchar(65); // A putchar('A'); // A int a ...
- sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"问题解决
安装一个软件时,遇到这个问题sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 上网 ...