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

杂谈JAVA

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

意扭曲改变这个概念,所以hashCode唯一的作用就是为 支持数据结构中的哈希表结构而存在的,换句话说,也就是只有用到集合框架的 Hashtable、HashMap、HashSet的时候,才需要重载hashCode()方法,

这样才能使得我们能人为的去控制在哈希结构中索引是否相等。笔者举一个例子:

曾经为了写一个求解类程序,需要随机列出1,2,3,4组成的不同排列组合,所以笔者写


了一个数组类用int[]来存组合结果,然后把随机产生的组合加入 一个HashSet中,就是想利用HashSet不包括重复元素的特点。可是HashSet怎么判断是不是重复的元素呢?当然是通过 hashCode()返回的结果是否相等来判断啦,可做一下这个实验:

int[] A = {1,2,3,4};

int[] B = {1,2,3,4};

System.out.println(A.hashCode());

System.out.println(B.hashCode());

这明明是同一种组合,却是不同的hashCode,加入Set的时候会被当成不同的对象。这个时候我们就需要自己来重写hashCode()方法了,如何 写呢?其实也是基于原始的hashCode(),毕竟那是操作系统的实现, 找到相通对象唯一的标识,实现方式很多,笔者的实现方式是:

首先重写了toString()方法:

return A[0]“+” A[1]“+” A[2]“+” A[3]; //显示上比较直观

然后利用toString()来计算hashCode():

return this.toString().hashCode();

这样上述A和B返回的就都是”1234”,在测试toString().hashCode(),由于String在内存中的副本是一样的,”1234”.hashCode()返回的一定是相同的结果。

说到这,相信大家能理解得比我更好,今后千万不要再误解hashCode()方法的作用。

3. 关于Class类的成员函数与Java反射机制

很早刚接触Java就听很多老师说过Java的动态运行时机制、反射机制等。确实它们都是Java的显著特点,运行时加载笔者在第一篇介绍过了,现在想讲 讲反射机制。在Java中,主要是通过http://doc.guandang.netng包中的Class类和Method类来实现内存反射机制的。

熟悉C++的人一定知道下面这样在C++中是做不到的: 运行时以字符串参数传递一个类名,就可以得到这个类的所有信息,包括它所有的方法,和方法的详细信息。还可以实例化一个对象,并通过查到的方法名来调用该 对象的任何方法。这是因为Java的类在内存中除了C++中也有的静态动态数据区之外,还包括一份对类自身的描述,也正是通过这描述中的信息,才能帮助我 们才运行时读取里面的内

容,得到需要加载目标类的所有信息,从而实现反射机制。大家有没有想过当我们需要得到一个JavaBean的实例的时候,怎么知道 它有哪些属性呢?再明显简单不过的例子就是自己写一个JavaBean的解析器:

a. 通过Class.forName(“Bean的类名”)得到Class对象,例

相关文档
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...
相关主题
返回顶部
热门文档