Native与方法区
public static void main(String[] args) {
new Thread(() ->{
},"demo").start();
//native:凡是带了native关键字的,说明Java的作用范围达不到了,会去调用底层语言的库【这里是C++】
//会进入本地方法栈
//调用本地方法本地接口 JNI 【Java_Native_Interface】
//JNI作用:扩展Java的作用,融合其他语言为Java所用 eg:C、C++
//Java诞生的时候C、C++横行,想立足就必须调用C、C++程序
//于是Java就专本开辟了一个标记native的标记区域:Native_Method_Stack 也就是本地方法栈 用于标记native方法
//在最终执行的时候会通过JNI加载本地方法库中的方法
//常用于Java驱动硬件,管理系统 企业级应用不常用
private native void start0();
//调用其他接口: Socket,WebService
}
注意:静态变量、常量、类信息(构造方法,接口)、运行时常量池放在方法区,但是实例变量存在堆内存中和方法区无关! : static、final、Class、常量池
public class Demo01 {
private int id;
private String name = "张三";
public static void main(String[] args) {
Demo01 demo01 = new Demo01();
demo01.name = "李四";
System.out.println(demo01.name);
}
}
