Native 方法区

一:什么是Native

当我们的一个类里面出现下面的的时候,我们原本自己定义不加native这样的是不行的,但是加上native后就可以了这是为什么呢?

private  native  void start0();

//native   凡是带了native的关键字,说明java的的作用就达不到了,回去调用底层c语言的库

//会进入本地方法栈,本地方法栈会调用本地方法接口(JNI),然后本地方法接口到本地方法库(扩展作用)

//JNI的作用:扩展java的使用,融合不同的编程语言为java所用;最初c 和c++

//java诞生的时候 c,c++ ,我们想要一些运行,必须调用c ,c++的程序

//在最终执行的时候,加载本地方法库中的方法通过JNI

//列:java程序驱动打印机

当调用其它的接口:socket ,webService -,http-

二:PC寄存器

程序技术器:

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

三:方法区

 方法区是被所有线程共享,所有字段和方法字节码,以及一些特殊方法,如构造方法,接口代码也在此定义,简单说,所有定义的方法的信息都保存在该区域,此区域属于共享区间;

  静态变量,常量,类信息(构造方法,接口定义),运行时的常量池存在方法区,但是实例变量存储在堆内存中,和方法区无关。

 

 

posted @ 2021-03-30 16:15  iLisa  阅读(76)  评论(0编辑  收藏  举报