JVM
文章平均质量分 87
丨康有为丨
分享 Android、java、SSM、前端、数据结构与算法、数据库、计算机网络、测试开发 等知识。目前主要还是学习Android,在小米做客户端开发,共勉。
展开
-
JVM面试题-类加载顺序、双亲委派、类初始化顺序(详解)
因加载某个类时,优先使用父类加载器加载需要使用的类。如果我们自定义了java.lang.String这个类, 加载该自定义的String类,该自定义String类使用的加载器是AppClassLoader,根据优先使用父类加载器原理,一直往上走,最后在启动类加载器中加载了String类。所以,用户自定义的java.lang.String不被加载,也就是不会被使用。原创 2023-09-19 23:47:40 · 225 阅读 · 0 评论 -
JVM面试题-JVM对象的创建过程、内存分配、内存布局、访问定位等问题详解
如果没有,那必须先执行相应的类加载过程。内存分配完成后,虚拟机需要将分配到的内存空间都初始化为零值(不包括对象头),这一步操作保证了对象的实例字段在 Java 代码中可以不赋初始值就直接使用,程序能访问到这些字段的数据类型所对应的零值。而 Java 堆内存是否规整,取决于 GC 收集器的算法是"标记-清除",还是"标记-整理"(也称作"标记-压缩"),值得注意的是,复制算法内存也是规整的。在上面工作都完成之后,从虚拟机的视角来看,一个新的对象已经产生了,但从 Java 程序的视角来看,对象创建才刚开始,原创 2023-09-19 09:05:52 · 340 阅读 · 0 评论 -
JVM面试题-JVM内存结构解析(图文详解)
线程共享区域:方法区、堆、直接内存线程隔离区域:虚拟机栈、本地方法栈、程序计数器线程共享:定义一个变量或者一个方法,多线程都可以同时访问、修改这个方法或者变量线程隔离:就是数据不能被多个线程同时访问,某些数据只属于一个线程。原创 2023-09-19 08:43:08 · 154 阅读 · 0 评论