加上native的语句:
JNI的作用:扩展Java的使用 融合不同的编程语言为Java所用产生的历史:因为Java刚出现时C,C++横行,Java语言必须有调用C,C++代码的方法,所以native诞生了
JVM在内存中专门开辟了一块标记区域:Native Method Stack 登记native方法 在最终执行的时候,加载本地方法库中的方法通过JNI方法区是被所有线程共享,所有字段和方法字节码,以及一些特殊方法,如:构造函数,接口代码也在此定义,简单说,所有定义的方法的信息都保存在该区域,此区域属于共享空间
静态变量(static)、常量(final)、类信息Class(构造方法、接口定义)、运行时的常量池存在于方法区中,但是实例变量存在于堆内存中,和方法区无关 (jdk8后 常量池放在了堆里)
程序计数器:Program Counter Register
每个线程都有一个程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码(用来存储指向像一条指令的地址、也即将要执行的指令代码),在执行引擎读取下一条指令,是一个非常小的内存空间,几乎可以忽略不计
程序计数器就是每个线程代码在执行时,代码要一条一条执行,每次读下一条代码时,程序计数器就+1。占用内存非常小。
这就是线程条条有序的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。