转自:http://blog.csdn.net/xw13106209/article/details/69894151.参考文献:http://blog.csdn.net/youjianbo_han_87/article/details/2586375http://blog.csdn.net/yan...
分类:
编程语言 时间:
2014-09-16 10:23:50
阅读次数:
245
先看一眼JVM虚拟机运行时的内存模型:
1.方法区 Perm(永久代、非堆)
2.虚拟机栈
3.本地方法栈 (Native方法)
4.堆
5.程序计数器
1 首先的问题是:jvm如何知道那些对象需要回收 ?
目前两种标识算法、三种回收算法、两种清除算法、三种收集器
引用计数法
每个对象上都有一个引用计数,对象每被引用一次,引...
分类:
其他好文 时间:
2014-09-07 21:13:05
阅读次数:
363
最近看java源代码,发现很多方法用native修饰,那么什么事native方法呢?
简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调...
分类:
编程语言 时间:
2014-09-04 13:22:29
阅读次数:
286
class 一一对应so-->method 每个so对应于一个类对象类中的每个native方法对应 于so中的一个native的function,对应关系涉及 {clazz, "name", "Signature", func_addr} 参数jclazz描述的是要注册JNI方法的类,而参数m...
分类:
其他好文 时间:
2014-09-02 17:09:34
阅读次数:
214
Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。 可以将native方法比作Java程序同C程序的接口,其实现步骤: 1、在Java中声明native()方...
分类:
编程语言 时间:
2014-08-23 16:36:31
阅读次数:
212
1.JVM运行时数据区域的划分 a.程序计数器(Program Counter Register) 一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。每个线程拥有独立的一个计数器,如果当前执行的是Native方法,则计数...
分类:
编程语言 时间:
2014-08-21 22:58:45
阅读次数:
483
简单讲一下各个区域
程序计数器:当前线程所执行的字节码的行号指示器,循环,线程恢复等基础功能依赖这个计数器完成(线程私有,每一个线程都会有自己单独的一个计数器)。
本地方法栈:与java虚拟机栈相似,不过执行的是native方法。
方法区(包含运行时常量池):各个线程共享的区域,它用于已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。
java虚拟机栈:也是线程私有的,生命周期与线程相同 每个方法执行时都会创建一个栈帧(一会儿会详细讲到)结构是栈结构,先进后...
分类:
编程语言 时间:
2014-08-11 17:54:52
阅读次数:
315
由于C语言和Java语言之间很多类型不一致性,因此使用native时,需要数据类型转换。下面演示分别传递整型,字符串,整型数组,Java静态方法传递数据。1.创建native方法我们单独创建一个NativeClass类来存放native方法1 package com.forsta.ndk;2 3 p...
分类:
移动开发 时间:
2014-08-03 22:59:36
阅读次数:
409
博客引用地址:Java中的native方法 今天花了两个小时把一份关于什么是Native Method的英文文章好好了读了一遍,以下是我依据原文的理解。 一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Nativ...
分类:
编程语言 时间:
2014-07-31 09:35:15
阅读次数:
206