赞
踩
|
|
答:
JVM 在执行 Java 程序的过程中会把它管理的内存分为若干个不同的区域,这些组成部分有些是线程私有的,有些则是线程共享的
线程私有的:程序计数器,虚拟机栈,本地方法栈
线程共享的:方法区,堆
思维导图
答:
可达性分析算法
这个算法的基本思想就是通过一系列的称为 “GC Roots”的对象作为起点,从这些节点开始向下搜索,节点所走过的路径称为引用链,当一个对象到 GC Roots没有任何引用链相连的话,则证明此对象是不可用的,可以被回收的。
思维导图
答:
方法区是所有线程共享。主要用于存储类的信息、常量池、方法数据、方法代码等。方法区逻辑上属于堆的一部分,但是为了与堆进行区分,通常又叫“非堆”。
答:
主要是两种:StackOverFlowError 和 OutOfMemoryError.StackOverFlowError:
当线程请求栈的深度超过当前 Java 虚拟机栈的最大深度的时候,就抛出
StackOverFlowError 异常。
OutOfMemoryError:
根据比例可以推算出(Eden:survivor1:survivor2 =8:1:1),两个 survivor 区各 10M,新生代 100M。老年代默认是年轻代的两倍,即 200M。那么堆总大小就是 3000M。
程序计数器记录当前线程正在执行的字节码的地址或行号。
JVM 中存在线程切换,主要作用是为了确保多线程情况下 JVM 程序的正常执行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。