每日一问
墨水记忆
当努力到达了一定程度,幸运自会与你不期而遇。
展开
-
Java为什么重写 equals 方法必须重写 hashcode 方法 ?
参考判断的时候先根据hashcode进行的判断,相同的情况下再根据equals()方法进行判断。如果只重写了equals方法,而不重写hashcode的方法,会造成hashcode的值不同,而equals()方法判断出来的结果为true。在Java中的一些容器中,不允许有两个完全相同的对象,插入的时候,如果判断相同则会进行覆盖。这时候如果只重写了equals()的方法,而不重写hashcode的方法,Object中hashcode是根据对象的存储地址转换而形成的一个哈希值。这时候就有可能因为没有.原创 2022-04-23 13:30:00 · 624 阅读 · 0 评论 -
Java创建对象有哪几种方式?
参考java中提供了以下四种创建对象的方式:new创建新对象通过反射机制采用clone机制通过序列化机制前两者都需要显式地调用构造方法。对于clone机制,需要注意浅拷贝和深拷贝的区别,对于序列化机制需要明确其实现原理,在java中序列化可以通过实现Externalizable或者Serializable来实现。...原创 2022-04-22 08:00:00 · 1687 阅读 · 0 评论 -
Java能否创建一个包含可变对象的不可变对象?
参考当然可以,比如final Person[] persons = new Persion[]{}. persons是不可变对象的引用,但其数组中的Person实例却是可变的.这种情况下需要特别谨慎,不要共享可变对象的引用.这种情况下,如果数据需要变化时,就返回原对象的一个拷贝....原创 2022-04-21 21:11:47 · 495 阅读 · 0 评论