![](https://i-blog.csdnimg.cn/columns/default/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java语言
Brand_new_Future
努力在新的梦想的道路上。/Work hard in the way of new dream.
展开
-
Java 注释
Java 注释 五月份得知入职YunOS, 开始学习Java, 断断续续学习和使用Java将近半年, 越来越喜欢这个工具, 因此后来被阿里拥抱变化之后, 拿到的的所有的offer都是Java研发; 一路走来, 踩了很多坑, 也有了一点小小的心得, 那就用博客的形式把他记录下来吧… 写的第一篇Java的博客, 就从最基础的Java注释开始!引 程序员圈有一转载 2015-12-06 12:21:05 · 524 阅读 · 0 评论 -
Effective Java读书笔记-使可变性最小化
存在不可变类的原因:不可变的类比可变的类更加易于设计、实现和使用。它们不容易出错且更加安全。使类变为不可变需要遵守的五项原则:不要提供任何会修改对象状态的方法。保证类不会被拓展。这样可以防止粗心或者恶意的子类假装对象的状态已经改变,从而破坏类的不可变行为。为了防止子类化,一般的做法是使类变为final的。使所有的域都是final的。使所有的域都变为私有的。确保任何可变组件的互斥访问。如果类原创 2017-11-22 19:56:50 · 383 阅读 · 0 评论 -
Effective Java读书笔记-使类和成员的可访问性最小化
区别设计良好的模块和设计不好的模块,最重要的因素在于,这个模块对于外部其它的模块而言,是否隐藏了内部的数据和其他实现的细节。设计良好的模块会隐藏所有的实现细节。设计良好的模块会隐藏所有的实现细节,把它的API与它的实现清晰的隔离开。然后,模块之间只通过API进行通信,一个模块不需要知道其它模块的内部工作情况。这个概念被称作信息隐藏或者封装,是软件设计的基本原则之一。Java程序设计语言提供了许多机制原创 2017-11-20 16:42:14 · 304 阅读 · 0 评论 -
Effective Java读书笔记-考虑实现Comparable接口
compareTo方法没有在Object中声明,相反它是Comparable接口的唯一方法。compareTo方法不单单可以进行简单的同性比较,而且允许执行顺序比较。类实现了Comparable接口就表明它的实例具有内在的排序关系(natural ordering)。实现Comparable接口的对象数组进行排序的操作很简单:Array.sort(a);一旦类实现了Comparable接口,它就可以原创 2017-11-18 18:06:13 · 363 阅读 · 0 评论 -
Effective Java读书笔记-谨慎的覆盖clone
Cloneable接口的目的是作为对象的一个mixin接口,表明这样的对象允许克隆(clone)。Object的clone方法是受保护的,如果不借助反射(reflection),就不能仅仅因为一个对象实现了Cloneable,就可以调用clone方法,即使是反射调用也可能会失败,因为不能保证该对象拥有可访问的clone方法。Cloneable的作用:它决定了Object中受保护的clone方法实现的原创 2017-11-17 17:20:00 · 371 阅读 · 0 评论 -
Effective Java读书笔记-始终要覆盖toString
虽然java.lang.object提供了toString方法的一个实现,但它所返回的字符串通常不是类的用户所希望看到的。它包含类的名称以及一个@符号,接着是散列码的无符号十六进制表示法,例如”PhoneNumber@163b91”。toString通用约定指出,被返回的字符串应该是一个“简洁的”,但信息丰富并且易于阅读的表达方式。toString的约定进一步指出建议所有的子类都覆盖这一方法。如果为原创 2017-11-12 20:40:23 · 243 阅读 · 0 评论 -
Effective Java读书笔记-覆盖equals时总要覆盖hashCode
hashCode,就是哈希值,可以理解为一个对象的标识(好的hash,能确保不同的对象有不同的hash值),Object含有hashCode方法,用来返回对象的hash值。hashCode方法多用在基于散列值的集合类,比如HashMap、HashSet和Hashtable。下面是hashCode的约束规范, 在一个应用程序执行期间,如果一个对象的equals方法做比较所用到的信息没有被修改的话,转载 2017-11-12 19:55:02 · 247 阅读 · 0 评论 -
Effective Java读书笔记-覆盖equals时遵守的通用约定
不需覆盖equals的情况覆盖equals看似很简单,但是很多覆盖方式会导致错误,并且后果会非常严重,最简单的方法就是不去覆盖equals方法。 以下几种情况,可以不用覆盖equals方法:类的每个实例本质上是一致的。不关心是否提供了“逻辑相等”的测试功能。超类继承了equals,从超类继承过来的行为对于子类来讲也是合适的。类是私有的或者包级私有的,可以确定equals方法永远不会被调用。原创 2017-11-11 20:36:31 · 303 阅读 · 0 评论 -
Effective Java读书笔记-接口优于抽象类
抽象类与接口的区别:抽象类中可以有已经实现的方法,接口中只能存放方法的定义。为实现抽象类定义的类型,类必须继承抽象类。现有的类很容易被更新,以实现接口当类需要添加新的方法时,最好的办法就是定义一个接口让类去实现它。注意无法通过更新现有的类来拓展抽象类。如果有两个类都需要实现这个抽象类中的方法时,最好的办法就是将这个抽象类放在更高的层次上,定义一个类去实现这个抽象类。之后让这两个类去继承这个类。原创 2017-11-08 19:43:03 · 395 阅读 · 0 评论 -
Effective Java读书笔记-复合优先于继承
继承是完成代码重用的有力手段,但它并非是完成这项工作的最佳工具。使用不当通常会导致软件非常的脆弱。在包的内部使用继承是非常安全的。对于普通的具体的类进行跨越包的边界的继承将是非常危险的。继承打破了封装性:与方法调用不同,继承打破了封装性。换句话说,子类依赖于超类中特定功能的实现细节。超类的实现有可能依赖发行版本的不同而有所变化,如果真的发生了变化,子类可能会遭到破坏,即使它的代码没有完全改变。因此子原创 2017-11-23 16:00:01 · 336 阅读 · 0 评论