java总结

1.虚拟机栈描述的是方法执行的内存模型,每个方法被调用时都会在栈内创造一个栈帧(用来存储局部变量、方法出口等)

JVM每个线程创建一个栈,用以存放该线程执行的方法信息(用户存放实际参数,局部变量等)。

说明:

(1)

(虚拟机栈内保持着一个个的栈帧,方法调用结束会进行出栈动作)

栈属于线程私有,不被线程共享

栈存储的特点是先进后出,后进先出。

栈是由系统自动分配,具有空间连续性、速度快。

(2)

堆特点:

 堆用于存放创建好的对象。

JVM只有一个堆(一个程序内),被所有线程共享

堆的空间不连续,速度慢

(3)

方法区:

不同jdk版本方法区的实现不一样,是一种规范

JVM只有一个方法区,被所有线程共享

严格讲,方法区也是堆,是用于存储类、变量信息等。

用来存放恒定不变的信息。

2.垃圾回收过程一般分为两步,是哪两步?

发现无用的对象

回收无用对象占用的内存空间。

垃圾回收aaqaaa机制保证可以将”无用的对象”进行回收。无用的对象指的就是没有任何变量引用该对象。Java 的垃圾回收器通过相关算法发现无用对象,并进行清除和整理。

3.垃圾回收常见的两种算法是什么?

引用计数法和引用可达法

4.堆内存划分成:年轻代、年老代、永久

代。垃圾回收器划分成:Minor GC、Majo r GC、Full GC。这三种垃圾收回器都对应哪些区域 ?

Minor GC:用于清理年轻代区域。Eden 区满了就会触发一次MinorGC。清理无用对象,将有用对象复制到“Survivor1"、“S urvivor2"区中。

Major GC:用于清理老年代区域。

Full GC: 用于清理年轻代、年老代区域。成本较高,会对系统性能产生影响。

5.对 JVM 调优的过程中,很大一部分工作就是对于 Full GC 的调节。这句话对吗?对

6.System.gc()的作用是什么?

该方法只是通知JVM,并不是运行垃圾回收器。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值