![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
文章平均质量分 86
小猴子豆芽菜
一名90后程序猿,现就任于ThoughtWorks,从事软件开发、大数据开发,同时也是一位健身、羽毛球爱好者。
展开
-
单元素的枚举类型实现单例模式
单例的枚举实现在《Effective Java》中有提到,因为其功能完整、使用简洁、无偿地提供了序列化机制、在面对复杂的序列化或者反射攻击时仍然可以绝对防止多次实例化等优点,单元素的枚举类型被作者认为是实现Singleton的最佳方法。 其实现非常简单,如下: public enum Singleton { INSTANCE; private Singleton() {}...转载 2018-07-31 14:20:58 · 942 阅读 · 0 评论 -
Effective Java 第2章: 创建和销毁对象
一、用静态工厂方法代替构造器 静态工厂方法与构造器相比有以下几个优点: 静态工厂方法有名称; 不必每次调用的时候都创建新的对象; 可以返回原返回类型的任何子类型的对象; 在创建参数化类型实例的时候没,静态工厂方法使得代码变得更加简洁; 缺点: 类如果不含有公有的或者受保护的构造器,就不能被子类化; 静态工厂方法与其他的静态方法实际上并没有任何区别; 静态工厂方法常用的名称: valueO...原创 2019-01-20 19:01:49 · 213 阅读 · 0 评论 -
Effective Java第三章: 对所有对象都通用的方法
一、覆盖equals方法时遵守通用约定 期望结果 类的每个实例本质上都是惟一的; 不关心类是否提供了“逻辑相等”的测试功能; 超类已经覆盖了equals方法,从超类继承过来的行为对于子类也是合适的; 类是私有的或者是包级私有的,可以确定它的equals方法永远不会被调用; 覆盖equals方法时的通用约定 自反性:对于任何非null的引用值x,x.equals(x)必须返回true; 对称性...原创 2019-01-27 16:52:11 · 181 阅读 · 0 评论 -
java class字节码概述
class 字节码概述 每一个java类被编译后都会生成一个对应的.class字节码文件,要想研究JVM加载java类的原理,实现必须掌握java类被编译成的.class文件结构。下面从几个方面来描述字节码的组成格式。 1. class文件构成基础 在class字节码文家中,数据都是以二进制流的形式存储。这些字节流之间都严格按照规定的顺序排列,字节之间不存在任何空隙,对于超过8位的数据,将按照Bi...原创 2019-05-26 01:40:10 · 330 阅读 · 0 评论 -
java 常量池及字节码文件的9大属性
常量池的基本结构 java类所对应的常量池主要由常量池数量和常量池数组两部分组成,如下图所示,常量池数量紧跟在minor version后面,占2个字节。常量池数组则紧跟在常量池数量之后。 常量池数组是一个类似数组的结构。这个数组是固化在字节码文件中的,由多个元素组成。与一般的数组概念不同,常量池数组中不同元素的类型、结构都不相同,长度也不相同。但是每一种元素的第一个数据都是一个u1类型,该字节...原创 2019-05-26 03:01:50 · 552 阅读 · 0 评论