欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

JVM运行时数据区补充篇(总体的第九篇)

时间:2023-07-31

上一篇文章地址:https://blog.csdn.net/weixin_46635575/article/details/122740245接下来的这篇主要是对面试相关的一些内容,如果你没必要面试题,那可以不看都可以。 一、方法区的补充 1、对象实例化的几种方式 2、对象创建的步骤 (1)判断对象对应的类是否被加载


(2)为对象分配内存





(3)处理并发安全问题 (4)初始化分配到的空间


赋默认初始化值。

(5)设置对象的对象头 (6)执行init方法进行初始化(这个是显示初始化)

这个阶段才是显示的赋值,而且还有什么静态变量快等都是赋值了。
只有上面的三个步骤都执行完了,真正意义上的一个对象才算生成了。

3、对象的内存布局


4、对象访问定位

比如编写一个对象

访问过程

访问方式

句柄访问

它的好处是内存比较固定,这样方法堆变化了,我们也不会变化。直接指针(Hotspot虚拟机使用的,显然它的效率是比较高一点的)

但是如果你堆内存发生改变的时候,也是会改变的。 二、直接内存(Direct Memory)

它不是在运行时数据区里面的jdk八的方法区落实在了元空间,而元空间就是在直接内存上面的,所以学习一下。 1、概述

复习一下NIO和IO

IO都不用讲你们都知道【它是基于字节流的,用Stream来实现】NIO就是非阻塞的【它是基于Buffer来实现的,Channel来实现】



可以以此程序来运行,然后通过任务管理器进行查看。

2、使用本地内存进行读写测试


3、直接内存OOM与内存大小设置

如果有问题是报这样的错。

可以设置大小。

最后看一下这张图

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。