美文网首页
Native/方法区

Native/方法区

作者: 笨比乔治 | 来源:发表于2020-10-22 08:50 被阅读0次

5.Native

 native :凡是带了native关键字的,说明java的作用范围达不到了,回去调用底层c语言的库!
 会进入本地方法栈
 调用本地方法本地接口 JNI (Java Native Interface)
 JNI作用:开拓Java的使用,融合不同的编程语言为Java所用!最初: C、C++
 Java诞生的时候C、C++横行,想要立足,必须要有调用C、C++的程序
 它在内存区域中专门开辟了一块标记区域: Native Method Stack,登记native方法
 在最终执行的时候,加载本地方法库中的方法通过JNI
 例如:Java程序驱动打印机,管理系统,掌握即可,在企业级应用比较少
 private native void start0();
 //调用其他接口:Socket. . WebService~. .http~

Native Method Stack

它的具体做法是Native Method Stack中登记native方法,在( Execution Engine )执行引擎执行的时候加载Native Libraies。[本地库]

Native Interface本地接口

本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C++程序, Java在诞生的时候是C/C++横行的时候,想要立足,必须有调用C、C++的程序,于是就在内存中专门开辟了块区域处理标记为native的代码,它的具体做法是在Native Method Stack 中登记native方法,在( Execution Engine )执行引擎执行的时候加载Native Libraies。  目前该方法使用的越来越少了,除非是与硬件有关的应用,比如通过Java程序驱动打印机或者Java系统管理生产设备,在企业级应用中已经比较少见。因为现在的异构领域间通信很发达,比如可以使用Socket通信,也可以使用Web Service等等,不多做介绍!

6.PC寄存器

程序计数器: Program Counter Register  每个线程都有一个程序计数器,是线程私有的,就是一个指针, 指向方法区中的方法字节码(用来存储指向像一条指令的地址, 也即将要执行的指令代码),在执行引擎读取下一条指令, 是一个非常小的内存空间,几乎可以忽略不计

7方法区 Method Area

方法区是被所有线程共享,所有字段和方法字节码,以及一些特殊方法,如构造函数,接口代码也在此定义,简单说,所有定义的方法的信息都保存在该区域,此区域属于共享区间;
静态变量、常量、类信息(构造方法、接口定义)、运行时的常量池存在方法区中,但是实例变量存在堆内存中,和方法区无关

image.png

图 类实例化后

相关文章

  • JVM学习(二)——Native方法

    在学习JVM运行机制的时候,发现本地方法区是用于执行Native方法的;故有此疑问,什么是Native方法呢? 什...

  • GC root有哪些

    有哪些? native,本地方法栈引用的对象(在本地方法栈) final,常量对象(在方法区) static,静态...

  • Java内存区域

    Java运行时数据区域 方法区(Method Area),虚拟机栈(VM Stack),本地方法栈(Native ...

  • Java的内存划分

    1.栈(Stack): 2.堆(Heap): 3.方法区(Method Area): 4.本地方法栈(Native...

  • jvm

    堆:new的对象 数组等 栈{ 虚拟机栈 线程方法 局部变量 本地方法栈 native的方法 } 方法区 线程共享...

  • jvm(一)-java内存区域

    一.jvm运行时数据区 程序计数器 (java方法、native方法、异常) 1.如果正在执行的是java方法,...

  • 《深入理解Java虚拟机》第二章:Java内存区域与内存溢出异常

    Java内存划分 方法区 堆 栈 虚拟机栈 本地方法栈(C语言:native方法) 程序计数器 1 程序计数器 是...

  • 线程的常用方法(一)yeild

    方法定义:public static native void yield(); 方法解读: native方法代表不...

  • weex学习第二节

    weex实现js调native方法和native回调js方法 学习weex时发现js调native方法和nativ...

  • 【笔记】JVM内存模型

    1. 简介 线程私有区:程序计数器: 当前线程字节码地址。虚拟机栈: java方法栈帧。本地方法栈: native...

网友评论

      本文标题:Native/方法区

      本文链接:https://www.haomeiwen.com/subject/kazoyktx.html