Tips
《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化。
在这里第一时间翻译成中文版。供大家学习分享之用。40. 始终使用Override注解Java类库包含几个注解类型。对于典型的
转载
2023-08-09 15:49:34
42阅读
导语《Effective Java》是和《Thinking in java》齐名的java进阶书籍。作者参与了JDK标准库的编写工作,对于此书的学习,让我收获很多。好记性不如烂笔头,我决定好好总结一下。本书主要内容有11章,分别从各个方面阐述了作者对于java代码编写的体会。我看的是第二版,目前最新版已经是第三版了,但是还没有在国内翻译出版。这就是英语不好的局限之处~创建和销毁对象作者认为,使用构
转载
2023-07-20 14:14:55
35阅读
《EffectiveJava》——读后总结白玉IT哈哈 1、静态工厂方法代替构造器 ●静态工厂方法有名称,能确切地描述正被返回的对象。 ●不必每次调用都创建一个新的对象。 ●可以返回原返回类型的任何子类对象。 ●创建参数化类型实例时更加简洁,比如调用构造HashMap时,使用Map<String,List<String>m=HashMap.newInstance(),与
原创
2021-01-17 10:42:31
225阅读
这本书在Java开发的行业里,颇有名气。今天总算是粗略的看完了...后面线程部分和序列化部分由于心浮气躁看的不仔细。这个月还剩下一周,慢慢总结消化。
转载
2016-09-24 17:11:00
133阅读
2评论
这本书在Java开发的行业里,颇有名气。今天总算是粗略的看完了…后
转载
2022-06-03 00:31:53
104阅读
在现在这个科技飞速发展的时代,计算机已经悄然走进我们的生活,并且占据了不可动摇与替代的地位,无论是在工作还是生活,学习还是娱乐中,当我们意识到的时候,却突然发现我们已经离不开这个叫做“电脑”的机器了。既然我们要时刻与电脑打交道,那就像人际交往一样,交流是必不可少的,所以计算机语言应运而生,而java作为一种简单、安全、容易使用、面向兑现、可移植、高性能、多线程的计算机高级语言,受到人们的青睐也是理
# 如何实现“effective java总结实例”
## 流程
为了实现“effective java总结实例”,我们可以按照以下步骤进行:
1. 创建一个Java项目
2. 添加一个类,用于实现“effective java总结实例”
3. 编写代码实现功能
4. 测试代码是否正确
## 每一步的具体操作
### 1. 创建一个Java项目
首先打开你的IDE,比如Eclipse或
同步访问共享的可变数据
将可变数据限制在单个线程中
当多个线程共享可变数据,每个读或者写的线程都必须执行同步
如下例,去除同步锁则会造成死循环
private static boolean stopRequested;
private static synchronized void requestStop() {
stopRequested = true;
}
private
原创
2018-10-27 18:47:16
659阅读
点赞
JAVA推荐使用枚举代替int
1 枚举提供了类型安全检测
2 枚举隔离了使用的类和枚举类型,使增加和重排无需重新编译
3 本质上是单元素枚举,final类型,不支持扩展(继承),但是可以自由使用接口和方法。
4 便于理解,维护
5 绝对安全的单例类型(相对于双重锁,无法被反序列化创造多个实例)
Android 不建议使用枚举的原因
1 手机内存资源有限,ENUM将会增大最终的DEX
原创
2018-10-30 19:28:22
1094阅读
点赞
explicit关键字C++中的explicit关键字只能用于修饰只有一个参数或者是其他参数有默认值的类构造函数, 它的作用是表明该构造函数是显式的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).explicit关键字的作用就是防止类构造函数的隐式自动转换,防止隐式调用这个构造函数.上面也已经说过了, explic
转载
2022-12-12 12:00:04
133阅读
一.让自己习惯C++条款01:视C++为一个语言联邦 为了更好的理解C++,我们将C++分解为四个主要次语言:C。说到底C++仍是以C为基础。区块,语句,预处理器,内置数据类型,数组,指针统统来自C。Object-Oreinted C++。这一部分是面向对象设计之古典守则在C++上的最直接实施。类,...
原创
2021-08-04 10:09:08
155阅读
五.实现条款26:尽可能延后变量定义式的出现时间 如果你定义了一个变量且该类型带一个构造函数或析构函数,当程序到达该变量时,你要承受构造成本,而离开作用域时,你要承受析构成本。为了减少这个成本,最好尽可能延后变量定义式的出现时间。举例说明:string encryptPassword(const ...
原创
2021-08-04 10:01:08
208阅读
四.设计与声明 条款18:让接口容易被正确使用,不易被误用 理想上,如果客户企图使用某个接口而却没有获得他所预期的行为,这个代码不该通过编译;如果代码通过了编译,它的行为就应该是客户所想要的。欲开发一个“容易被正确使用,不容易被误用”的接口,首先必须考虑客户可能做出什么样的错误。 class Dat...
原创
2021-08-04 10:01:10
145阅读
(中文第三版 侯捷 译)这本书在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
121阅读
2评论
OC编译器的特性:在声明成员变量时,编译器会产生一个硬编码的偏移量,它表示变量距离存放该对象的内存区域的起始地址的长度。OC把这个偏移量作为类对象的一个特殊变量,在runtime时期查找,就总可以生成正确的偏移量.@property 属性:在没有进行任何手动操作的前提下,这个属性第一自动生成了getter和setter方法,同时生成了对应属性“_字段”的成员变量@property中内存管理的语义:
原创
2015-08-21 19:11:37
390阅读
1. 使用静态工厂代替构造,clone函数原因 1. 静态工厂具有名字 i.  
转载
2023-07-06 15:07:00
45阅读
第一章Objective C是一种基于消息结构的语言,在查找执行的方法和对象时是在运行时处理对象的空间分配在堆空间,指向对象的指针分配在栈空间,基本数据类型和结构体也分配在栈空间在引入头文件时,尽量使用@Class前向声明来提高编译效率多使用字面量语法,但是在取下标的时候,要注意是否有意义少使用#define预处理指令,若要在一个文件(当前单元)里使用静态常量,应该这样声明:static cons
原创
2015-08-18 15:22:43
342阅读
在collection集合类中如NSSet中是不允许有相同的元素的,但是如果这样写:这样就会第一个set的输出结果是两个相同的元素,第二个set的输出结果只有一个元素类族模式:由于在OC中没有抽象基类,因此用工厂模式,比如我们可以用创建UIButton类似的方法:判断某个实例所属的类是否在类族之中,要用isKindOfClass不能用isMemeberOfClass,因为有些类会有内部类型关联对象
原创
2015-08-26 10:20:54
632阅读
点赞
Effective Java目录 文章目录Effective Java目录1、考虑使用静态方法代替工厂方法使用优点使用缺点2、参数过的多时使用建造者模式使用优点:缺点总结3、私有构造方法或枚举实现 Singleton 属性4、使用私有构造方法来定义纯静态的类使用优点:缺点:5、使用依赖注入来取代硬链接资源使用优点总结6、避免创建不必要的对象使用优点场景描述总结7、消除过期对象的引用好处 1、考虑使
转载
2023-08-20 21:59:37
4阅读
目录创建和销毁对象考虑用静态工厂方法代替构造器遇到多个构造器参数时要考虑用构造器用私有构造器或枚举类型强化Singleton属性通过私有构造器强化不可实例化的能力避免创建不必要的对象消除过期的对象引用避免使用终极方法对于所有对象都通用的方法覆盖equals时请遵守通用约定覆盖equals时总要覆盖hashCode始终要覆盖toString谨慎地覆盖clone考虑实现Comparable接口类和接
转载
2023-07-31 20:40:58
42阅读