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 读书笔记的更多相关文章

  1. 深入理解Java虚拟机 -- 读书笔记(1):JVM运行时数据区域

    深入理解Java虚拟机 -- 读书笔记:JVM运行时数据区域 本文转载:http://blog.csdn.net/jubincn/article/details/8607790 本系列为<深入理 ...

  2. Java并发读书笔记:线程安全与互斥同步

    目录 导致线程不安全的原因 什么是线程安全 不可变 绝对线程安全 相对线程安全 线程兼容 线程对立 互斥同步实现线程安全 synchronized内置锁 锁即对象 是否要释放锁 实现原理 啥是重进入? ...

  3. 单元测试之道Java版——读书笔记

    单元测试知道Java版读书笔记 首先我们必须要知道我们所写的代码,它的功能是什么,如果我们不了解代码的行为,那么也就无从测试. 我们测试的目的,是为了我们整个程序架构的稳定,代码其实就是欧文要实现功能 ...

  4. 《Effective Java》读书笔记(一)之创建和销毁对象

    最近在研读<Effective Java>一书,读书不做点笔记,感觉很容易就忘掉,于是用本篇博客来记录阅读此书的笔记. 郑重声明: 由于是<Effective Java>一书的 ...

  5. 《Effective java》-----读书笔记

    2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础.Spring研究.java并 ...

  6. 《Effective Java》 读书笔记(六)避免创建不必要的对象

    java 有很多修饰类的属性的关键字:常用的static,final 说说final和static吧,平时在编程的时候,这两个关键字很多时候都觉得可有可无,最多的时候就是他们俩同时出现----定义常量 ...

  7. 《Effective Java》 读书笔记(七)消除过期的对象引用

    大概看了一遍这个小节,其实这种感觉体验最多的应该是C/C++程序,有多杀少个new就得有多个delete. 一直以为Java就不会存在这个问题,看来是我太年轻. 感觉<Effective Jav ...

  8. 《Effective Java》 读书笔记(三) 使用私有构造方法或枚举实现单例类

    1.单例类到现在为止算是比较熟悉的一种设计模式了,最开始写单例模式是在C#里面,想要自己实现一个单例类,代码如下: public class Instance { private static rea ...

  9. 《Effective Java》 读书笔记(二) 在构造参数过多的时候优先考虑使用构造器

    刚开始看见这个标题的时候,我想到了python可以选择初始化参数的语法,C++.C#能有默认参数. 为什么Java什么都没有~~ 好吧,我们是使用构造器来实现它. 1.当一个类的构造函数需要很多构造函 ...

随机推荐

  1. P and V

    上次,我们已经说过死锁的形成原因以及防止方法了,都知道,之所以会发生死锁现象,原因之一是进程执行所申请的资源得不到满足,而陷入无限期的循环等待现象,而在这里我们说的进程其实是并发进程,也就是一组,至少 ...

  2. 【Log4j2 配置详解】log4j2的资源文件具体怎么配置

    可以先附上一个log4j2的资源文件详细内容,对照着看 ### set log levels ### log4j.rootLogger = INFO , C , D , E ### console # ...

  3. poj 1114 完全背包 dp

    如果可以每个物品拿多件,则从小到大遍历,否则从大到小遍历. G - Piggy-Bank Time Limit:1000MS     Memory Limit:32768KB     64bit IO ...

  4. yuv rgb 像素格式1

    ===========大小============= 一般,直接采集到的视频数据是RGB24的格式 RGB24一帧的大小size=width×heigth×3 Byte, RGB32的size=wid ...

  5. Spring的循环依赖问题

    spring容器循环依赖包括构造器循环依赖和setter循环依赖,那Spring容器如何解决循环依赖呢?首先让我们来定义循环引用类: 在Spring中将循环依赖的处理分成了3种情况: 构造器循环依赖 ...

  6. Kali Linux 2016.2初体验使用总结

    Kali Linux 2016.2初体验使用总结 Kali Linux官方于8月30日发布Kali Linux 2016的第二个版本Kali Linux 2016.2.该版本距离Kali Linux  ...

  7. HDU2841 Visible Trees(容斥原理)

    题目..大概就是有个m*n个点的矩形从(1,1)到(m,n),问从(0,0)出发直线看过去最多能看到几个点. 如果(0,0)->(x,y)和(0,0)->(x',y')两个向量平行,那后面 ...

  8. HDU4081 Qin Shi Huang's National Road System(次小生成树)

    枚举作为magic road的边,然后求出A/B. A/B得在大概O(1)的时间复杂度求出,关键是B,B是包含magic road的最小生成树. 这么求得: 先在原图求MST,边总和记为s,顺便求出M ...

  9. BZOJ4304 : 道路改建

    首先求出SCC,把图缩点成一个DAG. 通过拓扑排序+DP求出: dp0[x]:从x点出发能到的点的集合. dp1[x]:能到x的点的集合. 对于一条边x->y,将它改为双向边后,形成的新的SC ...

  10. BZOJ3776 : 警察局

    怎么3776又换题目了…换题目了…题目了…目了…了… SCC缩点后只有入度或者出度为0的点必须要放警察局 假设一共有t-1个入度或者出度为0的SCC q[1]-q[t-1]表示这些SCC中点的个数 q ...