
JVM
liujianko
读书太少,想得太多
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
内存模型
写这篇开篇的时候,突然想起一件很搞笑的事情。 在今年 3 月份的时候有一场面试。面试官提问,「说一下你对 JAVA 内存模型的了解」,然后我满脑子搜索这是什么?然后我就很尴尬的跟面试官说「提示一下」,面试官提示了「JAVA 内存的堆栈之类的」。 对于 JAVA入门级选手,听过的最多的就是堆和栈了。 「方法在开始运行的时候首先会在内存开辟一个内存空间,叫栈帧,然后压入栈中,运行完之后弹出栈。」这就是...原创 2019-08-06 15:30:47 · 180 阅读 · 0 评论 -
对象
一 对象的创建 当我们创建对象的时候,可能都知道会在内存堆中开辟一块空间,并且初始化对象,但不清楚对象的创建实际经历了哪些步骤。先来看下图 对象的创建分为 6 个步骤。 就是我们熟知的,在代码层面告诉虚拟机我要创建一个对象; 根据当前要创建的对象去常量池查找是否有符号引用; 如果没有找到,就要进行类加载; 类加载完毕,虚拟机就为这个对象分配堆内存; 接着初始化对象中的数据类型赋上默认值; 执行...原创 2019-08-06 21:06:01 · 132 阅读 · 0 评论 -
内存分配&内存模型
网上搬了张图过来 Java 堆是垃圾收集器主要的回收区域。 Java 堆分新生代和老年代,分别占堆空间的三分之一和三分之二。 新生代里边又分 Eden 区和 Survivor 区。Survivor 区又分 Survivor From 和 Survivor To。Eden 区占新生代 80%,Survivor 中的 From 和 To 各占 10%。支持参数调整 -XX:SurvivorRatio...原创 2019-08-09 16:36:10 · 299 阅读 · 0 评论 -
垃圾回收
垃圾回收,需要关注回收什么,以及如何回收。 查看垃圾回收信息,在 Run Configurations 的 Arguments 加上如下参数就可看到回收日志。 -verbose:gc -XX:+PrintGCDetails 第一部分,如何判定垃圾对象 1.引用计数法 在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值就 +1,当引用失效的时候,计数器的值就 -1。 所以当对...原创 2019-08-10 10:32:22 · 192 阅读 · 0 评论