JVM虚拟机基础

方法区与堆:

线程共享区域

方法区(又名永久区):

 线程共享的区域

存放:类、常量、静态变量、即时编译器的代码;

存放static 方法  常量

会出错则会出现out of memory error

堆:

new对象;

存在 out of memory error问题;

占用内存最大;

对线程共享内存堆;new出来的对象太多又未回收及时,容易出现out of memory;或者new出来的大对象太多也容易出现堆溢出;

垃圾回收器:

     算法:

           分代法:新生代、Eden、from、to、老年代

    判断是否是垃圾的算法有:可达性分析算法(即没有栈及方法区指向它(它们)则视为垃圾)

    回收垃圾算法:

          标记-清除算法:

               缺点:内存碎片

        复制算法:

            用于新生代from-to 区

        标记整理算法:

            用于老年代

对象刚new出来存放的位置:一般放在Eden区,如果对象太大直接放在老年代

CMS收集器:串行

GGI:根据当前线程判断串行还是并行

 

 

虚拟机栈:出现 stack over flow error ,存放局部变量,方法帧

本地方法栈:一个线程独有的;当方法调用太深(嵌套太多),容易出现栈溢出

程序计数器:记录代码运行到的行数

 

 

直接内存:out of memory  error 该部分内存不经过JVM中间件,程序直接通过系统调用

 

 

对象访问定位:

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值