关于Object类的源代码

timeriver_wang 2009-11-15 12:59:21
Object类的部分源代码

public class Object {
public final native Class<?> getClass();
public native int hashCode();
...
}

可以看出,Object类不是抽象类
1.那么为什么它有抽象的方法?
2.是不是JDK,对Object类特殊对待?
3.这样设计有什么好处
...全文
442 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yj27014 2009-12-28
  • 打赏
  • 举报
回复
dxcv
爱摸鱼de老邪 2009-11-15
  • 打赏
  • 举报
回复
JVM,not Java。
timeriver_wang 2009-11-15
  • 打赏
  • 举报
回复
刚刚看了下Java\jdk1.6.0_10\include\jni.h有如下代码

#ifndef _JAVASOFT_JNI_H_
#define _JAVASOFT_JNI_H_

#include <stdio.h>
#include <stdarg.h>

/* jni_md.h contains the machine-dependent typedefs for jbyte, jint
and jlong */

#include "jni_md.h"

#ifdef __cplusplus
extern "C" {
#endif

可以看出果然用到了,c++,c++然后又extern "C"
谢谢各位啊
长见识了
timeriver_wang 2009-11-15
  • 打赏
  • 举报
回复
楼上3位很好很强大,你们的意思是java是基于c实现的?
hjjk123 2009-11-15
  • 打赏
  • 举报
回复
给你这个网址 深入理解 native吧
http://hi.baidu.com/xiaoxiaolq/blog/item/f9d3c9f9c03dea53252df29a.html
阿_布 2009-11-15
  • 打赏
  • 举报
回复
native方法是由C语言来实现的,JAVA是建立在C语言的基础之上的。
hjjk123 2009-11-15
  • 打赏
  • 举报
回复
在定义一个native method时,并不提供实现体(有些像定义一个java interface),因为其实现体是由非java语言在外面实现的。,
knightzhuwei 2009-11-15
  • 打赏
  • 举报
回复
native方法的方法体不需在java文件中实现 而在cpp文件中实现

可以将native方法比作Java程序同C程序的接口,其实现步骤:

  1、在Java中声明native()方法,然后编译;

  2、用javah产生一个.h文件;

  3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);

  4、将第三步的.cpp文件编译成动态链接库文件;

  5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。
timeriver_wang 2009-11-15
  • 打赏
  • 举报
回复
public native int hashCode();
我表达错误了,我的意思是方法体去哪里了?
它又没有父类,
这点和抽象方法很相似,虽然没有abstract修饰符

我对这点好奇!
bolins 2009-11-15
  • 打赏
  • 举报
回复
没有抽象方法。
999朵玫瑰 2009-11-15
  • 打赏
  • 举报
回复
Object
爱摸鱼de老邪 2009-11-15
  • 打赏
  • 举报
回复
native是本地方法,不是抽象方法
Dan1980 2009-11-15
  • 打赏
  • 举报
回复
是native,不是abstract!看清楚了。
一头头 2009-11-15
  • 打赏
  • 举报
回复
哪里来抽象方法了?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧