JVM详解-native 方法区

JVM详解 -> native & 方法区

1. native 关键字
  • native :凡是带了native关键字的,说明Java的作用范围达不到了,会调用底层C语言的库
  • 进入本地方法栈;调用本地方法接口JNI,JNI作用:扩展Java的使用,融合不同的编程语言为Java所有,最初是为了融合C C++
  • 在内存区域中专门开辟了一块标记区域:Native Method Stack,登记native方法
  • 在最终执行的时候,在执行引擎中通过JNI加载本地方法库中的方法
  • 目前该方法的使用越来越少了,除非是与硬件有关的应用,比如通过Java程序驱动打印机、Java系统管理生产设备等,在企业级应用中已经比较少见。因为现在的异构领域间通信很发达,比如可以使用Socket通信,也可以使用Web Service等。
2. PC寄存器
  • 程序计数器:Program Counter Register
    • 每一个线程都有一个程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码(用来存储指向一条指令的地址,也即将要执行的指令代码),在执行引擎读取下一条指令,是一个非常小的内存空间,几乎可以忽略不计。
3. 方法区
  • 方法区:Method Area
    • 方法区是被所有线程共享,所有字段和方法字节码,以及一些特殊方法,如构造函数,接口代码也在此定义,简单的说,所有定义的方法的信息都保存在方法区,此区域属于共享区间;
    • 静态变量、常量、类信息(构造方法、接口定义)、运行时的常量池存在方法区中;但,实例变量存在堆内存中,和方法区无关
    • static、final、Class模板、常量池
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值