![240](https://cdn2.jianshu.io/assets/default_avatar/12-aeeea4bedf10f2a12c0d50d626951489.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
在出现异常的时候,直接调用 toString方法打印当中的属性值,要比输出一个xxxx@xxx 这种东西有用的太多
如果覆盖equals时如果不覆盖hashCode 那么在hasmMap,hashSet,和hashtable等作为Key值,两个逻辑相同的对象会...
什么时候该覆盖equals?简单来说,需要对象比较逻辑相等(不是对象相等的意思) ,并且超类没有满足条件。比如:Integer或者Date。 覆...
终结方法(finalizer)通常是不可预测的,也是很危险的,一般情况下是不必要使用它的。使用终结方法会导致行为不稳定,降低性能,以及可移植性的...
我们用java管理内存是十分容易的,因为jvm会帮我管理内存的释放,但是这不意味着我们不用担心内存的事情了 造成内存泄漏的地方一般来说有三个: ...
一般来说,如果能重用对象,尽量重用对象,而不是创建一个相同的对象.如果对象是不可变的,它始终就应该被重用. 作者举了非常多的反面例子 Strin...
一些工具类是不可以被实例化的,比如内部全是静态成员的类如java.lang.Math,java.util.Collections或者apache...
在我们通常的单例方法中,通常有两种方法来击穿单例,反射和序列化 使用单元素枚举可以有效的解决这两个问题(在最后) 反射击穿单例 这是一个普通的单...
当一个类中的部分参数可选,部分参数必填的时候,我们会如何写这个类呢 使用构建器 构造器调用会使用很多我们根本不会用到的参数,但是还是不得不用,这...