社区
Java SE
帖子详情
JDK源码中Object类的native方法 在本地什么地方调用的
leehan2027
2010-06-19 11:21:30
本地调用的函数都在什么地方 都是C/C++的吗
...全文
144
2
打赏
收藏
JDK源码中Object类的native方法 在本地什么地方调用的
本地调用的函数都在什么地方 都是C/C++的吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
若鱼1919
2010-06-20
打赏
举报
回复
jdk主目录\include\下面
行舟
2010-06-19
打赏
举报
回复
。。。native方法就是在你的加载的C、C++变成的动态库中!
Java并发包
源码
分析(
JDK
1.8)
Java并发包
源码
分析(
JDK
1.8):囊括了java.util.concurrent包
中
大部分
类
的
源码
分析,其
中
涉及automic包,locks包(AbstractQueuedSynchronizer、ReentrantLock、ReentrantReadWriteLock、LockSupport等),queue...
JDK
源码
分析-
Object
类
(java.lang.
Object
)
注:
JDK
版本:1.8
Object
类
为Java
中
所有的父
类
,即使没有显示声明,编译器也会默认加上,在
Object
类
中
定义了一些Java
方法
和本地
方法
,在Java
中
本地
方法
都有
native
修饰,通常这些
方法
都是由C/C++实现,编译成和处理器相关的机器代码,保存在动态链接库
中
。本地
方法
是联系Java程序和主机操作系统的连接
方法
,让我们来看下
Object
具体有哪些
方法
。 1、本地
方法
register
Native
s() 上
源码
: private static
native
void registerNa
JDK
源码
阅读
Object
JDK
源码
阅读
Object
1.java.lang包 顺序 1.1
Object
注释
native
是java
调用
非java代码的接口,所有没有实现 public final
native
Class<?> getClass(); 这个
方法
重要的就是提到真实
类
型将被Class<? extends |X|> ,|X|擦除, 执行代码 Number n = 0; Class<? extends Number> aClass = n.getClass(); 直接返回了 I
如何查找
jdk
中
的
native
实现
jdk
中
有很多
native
方法
,比如
Object
类
的 register
Native
s
方法
、String
类
的 intern
方法
等。这些
方法
在 java 层面只有接口定义,具体的
方法
实现则是在
jdk
中
,采用 c/c++ 实现。本文主要讲下如何找到
native
方法
的实现。 查找的思路 在 java
中
,为了实现特定的功能,有时需要
调用
非 java 代码实现的函数(比如 c/c++ 函数),JNI(Java
Native
Interface)提供了这个能力。JNI 规定在 java
JDK
源码
——
Object
源码
这里写到流
中
的对象则是原始对象的一个拷贝,因为原始对象还存在JVM
中
,所以我们可以利用对象的序列化产生克隆对象,然后通过反序列化获取这个对象。这种做法有种弊端,这里我们Person
类
只有一个Address引用
类
型,而Address
类
没有,所以我们只用重写Address
类
的clone
方法
,但是如果Address
类
也存在一个引用
类
型,那么我们也要重写其clone
方法
,这样下去,有多少个引用
类
型,我们就要重写多少次,如果存在很多引用
类
型,那么代码量显然会很大。如果更改其
中
的一个基本
类
型,那么另一个并不会改变。
Java SE
62,614
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章