Tips
《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。
在这里第一时间翻译成中文版。供大家学习分享之用。40. 始终使用Override注解Java类库包含几个注解类型。对于典型的
转载
2023-08-09 15:49:34
52阅读
导语《Effective Java》是和《Thinking in java》齐名的java进阶书籍。作者参与了JDK标准库的编写工作,对于此书的学习,让我收获很多。好记性不如烂笔头,我决定好好总结一下。本书主要内容有11章,分别从各个方面阐述了作者对于java代码编写的体会。我看的是第二版,目前最新版已经是第三版了,但是还没有在国内翻译出版。这就是英语不好的局限之处~创建和销毁对象作者认为,使用构
转载
2023-07-20 14:14:55
49阅读
《EffectiveJava》——读后总结白玉IT哈哈 1、静态工厂方法代替构造器 ●静态工厂方法有名称,能确切地描述正被返回的对象。 ●不必每次调用都创建一个新的对象。 ●可以返回原返回类型的任何子类对象。 ●创建参数化类型实例时更加简洁,比如调用构造HashMap时,使用Map<String,List<String>m=HashMap.newInstance(),与
原创
2021-01-17 10:42:31
228阅读
这本书在Java开发的行业里,颇有名气。今天总算是粗略的看完了...后面线程部分和序列化部分由于心浮气躁看的不仔细。这个月还剩下一周,慢慢总结消化。
转载
2016-09-24 17:11:00
136阅读
2评论
Tips《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。在这里第一时间翻译成中文版。供大家学习分享之用。书中的源代码地址:https://github.com/jbloch/effec
这本书在Java开发的行业里,颇有名气。今天总算是粗略的看完了…后
转载
2022-06-03 00:31:53
107阅读
# 如何实现“effective java总结实例”
## 流程
为了实现“effective java总结实例”,我们可以按照以下步骤进行:
1. 创建一个Java项目
2. 添加一个类,用于实现“effective java总结实例”
3. 编写代码实现功能
4. 测试代码是否正确
## 每一步的具体操作
### 1. 创建一个Java项目
首先打开你的IDE,比如Eclipse或
原创
2024-04-29 04:21:37
76阅读
同步访问共享的可变数据
将可变数据限制在单个线程中
当多个线程共享可变数据,每个读或者写的线程都必须执行同步
如下例,去除同步锁则会造成死循环
private static boolean stopRequested;
private static synchronized void requestStop() {
stopRequested = true;
}
private
原创
2018-10-27 18:47:16
690阅读
点赞
JAVA推荐使用枚举代替int
1 枚举提供了类型安全检测
2 枚举隔离了使用的类和枚举类型,使增加和重排无需重新编译
3 本质上是单元素枚举,final类型,不支持扩展(继承),但是可以自由使用接口和方法。
4 便于理解,维护
5 绝对安全的单例类型(相对于双重锁,无法被反序列化创造多个实例)
Android 不建议使用枚举的原因
1 手机内存资源有限,ENUM将会增大最终的DEX
原创
2018-10-30 19:28:22
1133阅读
点赞
explicit关键字C++中的explicit关键字只能用于修饰只有一个参数或者是其他参数有默认值的类构造函数, 它的作用是表明该构造函数是显式的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).explicit关键字的作用就是防止类构造函数的隐式自动转换,防止隐式调用这个构造函数.上面也已经说过了, explic
转载
2022-12-12 12:00:04
199阅读
一.让自己习惯C++条款01:视C++为一个语言联邦 为了更好的理解C++,我们将C++分解为四个主要次语言:C。说到底C++仍是以C为基础。区块,语句,预处理器,内置数据类型,数组,指针统统来自C。Object-Oreinted C++。这一部分是面向对象设计之古典守则在C++上的最直接实施。类,...
原创
2021-08-04 10:09:08
607阅读
四.设计与声明 条款18:让接口容易被正确使用,不易被误用 理想上,如果客户企图使用某个接口而却没有获得他所预期的行为,这个代码不该通过编译;如果代码通过了编译,它的行为就应该是客户所想要的。欲开发一个“容易被正确使用,不容易被误用”的接口,首先必须考虑客户可能做出什么样的错误。 class Dat...
原创
2021-08-04 10:01:10
154阅读
(中文第三版 侯捷 译)这本书在C++领域也是大名鼎鼎,在微博看到有人说,如果以前学过C语言,那只需花一天时间把Effective C++看一遍,然后再看leveldb代码(http://t.cn/aYyqjo)就可以了。不过我感觉还是先把C++基础看一看比较,最好是先看看C++ Primer 或 C++ Primer Plus 之类的入门书籍。因为 Effective C++ 倾向于教你怎么正解的使用C++这一个强大的工具,C++ 真的是太强大了,包含多种编程范型,要是没有一定的C++基础,看这本书应该不太合适。 看的过程中感觉作者真的是将一些比较重要的C++编程经验总结出来了给读者,没有教
转载
2013-07-30 18:20:00
132阅读
2评论
五.实现条款26:尽可能延后变量定义式的出现时间 如果你定义了一个变量且该类型带一个构造函数或析构函数,当程序到达该变量时,你要承受构造成本,而离开作用域时,你要承受析构成本。为了减少这个成本,最好尽可能延后变量定义式的出现时间。举例说明:string encryptPassword(const ...
原创
2021-08-04 10:01:08
242阅读
1. 使用静态工厂代替构造,clone函数原因 1. 静态工厂具有名字 i.  
转载
2023-07-06 15:07:00
66阅读
OC编译器的特性:在声明成员变量时,编译器会产生一个硬编码的偏移量,它表示变量距离存放该对象的内存区域的起始地址的长度。OC把这个偏移量作为类对象的一个特殊变量,在runtime时期查找,就总可以生成正确的偏移量.@property 属性:在没有进行任何手动操作的前提下,这个属性第一自动生成了getter和setter方法,同时生成了对应属性“_字段”的成员变量@property中内存管理的语义:
原创
2015-08-21 19:11:37
416阅读
Effective Java目录 文章目录Effective Java目录1、考虑使用静态方法代替工厂方法使用优点使用缺点2、参数过的多时使用建造者模式使用优点:缺点总结3、私有构造方法或枚举实现 Singleton 属性4、使用私有构造方法来定义纯静态的类使用优点:缺点:5、使用依赖注入来取代硬链接资源使用优点总结6、避免创建不必要的对象使用优点场景描述总结7、消除过期对象的引用好处 1、考虑使
转载
2023-08-20 21:59:37
32阅读
目录创建和销毁对象考虑用静态工厂方法代替构造器遇到多个构造器参数时要考虑用构造器用私有构造器或枚举类型强化Singleton属性通过私有构造器强化不可实例化的能力避免创建不必要的对象消除过期的对象引用避免使用终极方法对于所有对象都通用的方法覆盖equals时请遵守通用约定覆盖equals时总要覆盖hashCode始终要覆盖toString谨慎地覆盖clone考虑实现Comparable接口类和接
转载
2023-07-31 20:40:58
56阅读
Effective Java章节笔记1> 对象的创建和销毁1.1> 优先考虑使用静态工厂方法代替构造器1.2> 遇到多个构造器参数时要考虑使用构建器(builder)1.3> 用私有构造器或枚举类型强化单例模式(singleton)1.4> 通过私有构造器强化不可实例化的能力1.5> 避免创建不必要的对象1.6> 消除过期的对象引用1.7> 避免使
转载
2024-01-15 22:23:44
13阅读
目录一、创建和销毁对象(1~9)二、对于所有对象都通用的方法(10~14)三、类和接口(15~25)四、泛型(26~33)五、枚举和注解(34~41)六、Lambda 和 Stream(42~48)七、方法(49~56)八、通用编程(57~68)九、异常(69~77)十、并发(78~84)十一、序列化(85~90) 简介: Java之父James Gosling鼎力推荐、Jolt获奖作品全新升级
转载
2023-07-20 14:12:27
107阅读