java内存结构学习

java内存结构学习

方法区,堆,本地方法栈,程序技术器,栈

线程私有:

栈:为执行java方法服务。

本地方法栈:主要是native方法。

程序计数器:主要存放当前执行指令的地址

线程共享:

堆:存放类的实例信息,绝大多数创建的实例对象会存放在这里。

方法区:主要存放类的信息,常量,静态变量。垃圾回收器针对这块的回收主要是针对常量池和类的卸载。

jvm只是规定了有方法区这么个概念和它的作用,并没有规定如何去实现它,jdk8永久代被废弃了,永久代替换成本地内存。

jvm类加载过程:

(1)加载:jvm去查找字节流(.class文件),将.class文件中的二进制数据读入内存,放在运行时区域的方法区内,然后在堆中创建java.lang.Class对象,用来封装类在方法区的数据结构。

(2)链接:

1.验证:验证加载进来的二进制数据是否满足虚拟机规范,不会造成安全错误。

2.准备:负责为类的静态成员分配内存,并设置初始值。

3.解析:将类的二进制数据中的符号引用替换成直接引用。

符号引用:即一个字符串。

直接引用:可以理解为一个内存地址。

(3)初始化:

初始化,则是为标记为常量值的字段赋值的过程,只对static修饰的变量和语句进行初始化。

 

jvm调优:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值