现在位置: > > IT/计算机 > 计算机软件及应用

杂谈JAVA

谈论Object类,方法重载,重写toString方法,Hashcode等。

Java 杂谈(三)

这已经笔者写的第三篇Java杂记了,庆幸前两篇一直得到论坛朋友们的支持鼓励,还望大家继续指正不足之处。笔者也一直渴望通过这样方式清醒的自审,来寻找自己技术上的不足之处,希望和共同爱好Java的同仁们一起提高。

前两次分别讲述了关于jvm、jdk、jre、collection、classLoader和一些Design Pattern的自我理解。这次仍然不准备开


始过渡到j2ee中,因为觉得还有一些琐碎的j2se的问题没有总结完毕。

1. 关于Object类理解

大家都知道Object是所有Java类的基类, 意味着所有的Java类都会继承了Object的11个方法。建议大家去看看Object的 11个成员函数的源代码,就会知道默认的实现方式。比如equals方法,默认实现就是用"=="来比较,即直接比较内存地址,返回true 或者 false。而toString()方法,返回的串组成方式是??

"getClass().getName() + "@" + Integer.toHexString(hashCode())"

其实不用我过多的解释,大家都能看懂这个串的组成。接下来再看看hashCode():

public native int hashCode();

由于是native方法,跟OS的处理方式相关,源代码里仅仅有一个声明罢了。我们有兴趣的话完全可以去深究它的hashCode到底是由OS怎么样产生 的呢?但笔者建议最重要的还是先记住使用它的几条原则吧!首先如果equals()方法相同的对象具有相通的hashCode,但equals ()对象不相通的时候并不保证hashCode()方法返回不同的整数。而且下一次运行同一个程序,同一个对象未必还是当初的那个hashCode() 哦。

其余的方法呢?nofigy()、notifyAll()、clone()、wait()都是native方法的,说明依赖于操作系统的实现。最后一个有 趣的方法是finalize(),类似C++的析构函数,签名是protected,证明只有继承扩展了才能使用,方法体是空的,默示什么也不做。它的作 用据笔者的了解仅仅是通知JVM此对象不再使用,随时可以被销毁,而实际的销毁权还是在于虚拟机手上。那么它真的什么也不做麽?未必,实际上如果是线程对 象它会导致在一定范围内该线程的优先级别提高,导致更快的被销毁来节约内存提高性能。其实从常理来说,我们也可以大概这样猜测出jvm做法的目的。

2. 关于重载hashCode()与Collection框架的关系

笔者曾经听一位搞Java培训多年的前辈说在他看来hashCode方法没有任何意义,仅仅是为了配合证明具有同样的hashCo

de会导致equals 方法相等而存在的。连有的前辈都犯这样的错误,其实说明它还是满容易被忽略的。那么hashCode()方法到底做什么用?

学过数据结构的课程大家都会知道有一种结构叫hash table,目的是通过给每个对象分配一个唯一的索引来提高查询的效率。那么Java也不会肆

相关文档
java学习杂谈
java学习杂谈java学习杂谈隐藏>> Java 学习杂谈一 1. 关于动态加载机制—— 学习 Java 比 C++更容易理解 OOP 的思想,毕竟 C++还混合了不少面向过程的成分。...
Java学习杂谈
杂谈JAVA 3页 1财富值 JAVA杂谈2 3页 2财富值 java杂谈 暂无评价 14页 5财富值 JAVA杂谈9 4页 2财富值 JAVA杂谈5 3页 2财富值 JAVA杂谈4 暂无评价 3...
Java杂谈
杂谈JAVA 3页 1财富值 JAVA杂谈2 3页 2财富值 JAVA杂谈9 4页 2财富值 java杂谈 暂无评价 14页 5财富值 JAVA杂谈5 3页 2财富值 JAVA杂谈4 暂无评价 3...
java杂谈
31页 1财富值 杂谈JAVA 3页 1财富值 JAVA杂谈2 3页 2财富值 JAVA杂谈9 4页 2财富值 JAVA杂谈5 3页 2财富值 JAVA杂谈4 暂无评价 3页 2财富值...
Java杂谈
杂谈JAVA 3页 1财富值 JAVA杂谈2 3页 2财富值 JAVA杂谈9 4页 2财富值 java杂谈 暂无评价 14页 5财富值 JAVA杂谈5 3页 2财富值 JAVA杂谈4 暂无评价 3...
JAVA杂谈5
杂谈JAVA 3页 1财富值 java学习杂谈 31页 1财富值 JAVA杂谈2 3页 2财富值 JAVA杂谈9 4页 2财富值 JAVA杂谈4 暂无评价 3页 2财富值 JAVA杂谈6 暂无评价...
JAVA杂谈12
杂谈JAVA 3页 1财富值 java学习杂谈 31页 1财富值 JAVA杂谈2 3页 2财富值 JAVA杂谈9 4页 2财富值 JAVA杂谈5 3页 2财富值 JAVA杂谈4 暂无评价 3页 2...
JAVA杂谈7
杂谈JAVA 3页 1财富值 java学习杂谈 31页 1财富值 JAVA杂谈2 3页 2财富值 JAVA杂谈9 4页 2财富值 JAVA杂谈5 3页 2财富值 JAVA杂谈4 暂无评价 3页 2...
JAVA杂谈4
杂谈JAVA 3页 1财富值 java学习杂谈 31页 1财富值 JAVA杂谈2 3页 2财富值 JAVA杂谈9 4页 2财富值 JAVA杂谈5 3页 2财富值 JAVA杂谈6 暂无评价 3页 2...
相关主题
返回顶部
热门文档