JNIEnv<------->JNINativeInterfaceJNIEnv、jobject和jclass这三种基本类型操作API都在JNIEnv中,JNIEnv为Java与C/C++通信桥梁jobject:Java层传递的对象(普通native方法传递)jclass:Java层对应的Class类(静态native方法传递)native普通方法与静态方法区别:Jni传递参数是jobj
分类:
移动开发 时间:
2018-08-09 12:22:25
阅读次数:
272
一、JVM内存模型 1、程序计数器 线程私有,当前线程所执行的字节码的行号指示器,通过计数器来选取下条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都依赖此功能,唯一没有规定OutOfMemoryError的区域,若执行的是Native方法,计数器值为空。 2、Java虚拟机栈 ( ...
分类:
其他好文 时间:
2018-07-29 15:23:16
阅读次数:
211
一,多线程创建方式一继承Thread类创建线程 Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简 ...
分类:
编程语言 时间:
2018-07-23 22:05:41
阅读次数:
213
运行时数据区域 1、线程独有的内存区域 程序计数器空间较小,是当前线程执行字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。 如果线程执行的是Java方法,记录的是正在执行的虚拟机字节码指令的地址;如果执行的是Native方法,则为空 虚拟机栈生命周期 ...
分类:
编程语言 时间:
2018-07-17 12:36:22
阅读次数:
166
1、JVM内存模型 a、栈: 包括虚拟机栈和本地方法栈。 虚拟机栈为线程私有,生命周期与线程相同。java方法执行时会创建一个栈帧,里面保存着对象引用、基本类型数据等 本地方法栈和虚拟机栈类似,虚拟机为java方法服务,为本地方法栈为Native方法服务。 b、方法区: 方法区其中一种实现为永久代( ...
分类:
其他好文 时间:
2018-07-14 14:46:04
阅读次数:
161
System.in System.in 是 InputStream 类的实例对象,该对象的创建是由本地(native)方法完成的。 System.in字节输入流对应的IO设备为键盘。 System.in为InputStream类的实例,故包含方法 int read()与 int read(byte[ ...
分类:
编程语言 时间:
2018-07-03 21:34:04
阅读次数:
218
1.Java运行时数据区 2.程序计数器(PC计数器) 占用较小的一块内存空间,当执行Java方法时记录正在执行的虚拟机字节码指令地址,如果执行Native方法则计时器值为空。 3.Java虚拟机栈 java方法执行时的内存模型 查看Java虚拟机栈详细 3.1 栈帧 每个方法都会在虚拟机栈中创建一 ...
分类:
编程语言 时间:
2018-06-29 20:39:05
阅读次数:
238
程序计数器:当前线程所执行的字节码的行动指示器 本地方法栈:为虚拟机使用的native方法服务 java虚拟机栈:描述java方法执行的内存模型,每个方法被执行时都会创建一个栈桢,用于存储局部变量,操作栈,动态链接,方法出口等信息。 每个方法方法创建一个栈桢,栈桢存储了当前方法的数据信息(局部变量) ...
分类:
其他好文 时间:
2018-06-23 11:45:11
阅读次数:
131
前言 在Object类中,提供了一个native方法,public native int hashCode(),该方法的返回值类型是int类型。 Hash的概念 Hash,一般翻译成“散列”,或者直译为“哈希”,把任意长度的输入x,通过散列算法f(x),变成固定的长度输出,该输出值就是散列。 ...
分类:
编程语言 时间:
2018-06-16 23:01:07
阅读次数:
211
Java操作系统硬件的方法Unsafe Java中通过Unsafe类native方法,通过JNI绕过JVM来操作系统cpu、内存等硬件,实现更高效率的操作,在Java基础类库和第三方开源库中都有广泛的应用,比如JUC、Netty、Kafka等。通过Unsafe你可以自己内存管理、实例化对象、操作类、 ...
分类:
其他好文 时间:
2018-06-10 15:25:34
阅读次数:
170