黑马程序员技术交流社区

标题: Object 类中的问题 [打印本页]

作者: 胡帅冰    时间: 2013-4-22 11:31
标题: Object 类中的问题
本帖最后由 胡帅冰 于 2013-4-22 12:28 编辑

查看了java的源代码,看到Object超类中的hashCode()方法,任何的对象都可以调用这个方法得到对象的哈希值,但是源代码中这个方法的写法是:public native int hashCode();  请问,为什么这个方法没有方法体,为什么在调用这个方法的时候还能得到哈希值???还有native 这个是什么意思?是一种修饰符么?最好能具体说一下,谢谢了。
作者: 932759732    时间: 2013-4-22 11:56
使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL,由java去调用。这些函数的实现体在DLL中,JDK的源代码中并不包含,你应该是看不到的。对于不同的平台它们也是不同的。这也是java的底层机制,实际上java就是在不同的平台上调用不同的native方法实现对操作系统的访问的。

这个hashCode方法是系统底层的方法。所以没有方法体。只是调用了
作者: 胡帅冰    时间: 2013-4-22 12:27
杨玄文 发表于 2013-4-22 11:56
使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL,由java ...

嗯。好的……明白了,谢谢。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2