JVM
文章平均质量分 84
打破沉默
爱生活,爱Hello World!
个人博客https://www.cocoivan.com/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java运行时数据区和常用指令
从一道面试题谈起第一个截图代码运行结果是8第二个截图代码运行结果是9jvms 2.4 2.5指令集分类基于寄存器的指令集基于栈的指令集Hotspot中的Local Variable Table = JVM中的寄存器Runtime Data AreaPC 程序计数器存放指令位置虚拟机的运行,类似于这样的循环:while( not end ) { 取PC中的位置,找到对应位置的指令; 执行该指令; PC ++;}JVM StackFrame - 每个方原创 2021-05-27 20:59:38 · 180 阅读 · 0 评论 -
对象在内存中的存储布局
可使用JavaAgent测试Object的大小对象的创建过程对象大小(64位机)观察虚拟机配置java -XX:+PrintCommandLineFlags -version普通对象对象头:markword 8字节ClassPointer指针:-XX:+UseCompressedClassPointers 为4字节 不开启为8字节实例数据引用类型:-XX:+UseCompressedOops 为4字节 不开启为8字节Padding对齐,8的倍数数组对象.原创 2021-05-27 20:54:55 · 160 阅读 · 0 评论 -
JMM(Java内存模型)
Java并发内存模型hanppens-before原则计算机缓存模型缓存行及伪共享基于计算机的缓存模型,计算机认为相邻的数据大概率在计算时一起被用到,为了提高效率,CPU从L3读取数据到工作内存(L2)时,默认读取64bytes的数据,会将多个数据值读到工作内存,由此引发缓存一致性问题(两个CPU均读取相同的64kb数据,其中一个CPU修改x数据,另一个CPU修改y数据,两个CPU的工作内存数据需要同步)。解决缓存一致性问题的方案,现在CPU的数据一致性实现=缓存锁+总线锁总线锁原创 2021-05-16 16:16:10 · 177 阅读 · 0 评论 -
JVM入门(Class格式及类加载)
java执行流程从图中可以看出,java文件先会被编译成.class字节码文件,由jvm的类加载器加载到内存中,通过字节码解释器或即时编译器编译成汇编语言在操作系统上执行Class File Format整个class其实就是二进制的字节流,供jvm解析整个class文件的构成,基本可以分为几个部分:magic—魔数(不同类型后缀的文件,文件前缀都不一样,称为魔数,.class文件的魔数前缀是CAFE BABE,占4个字节)minor_version:jvm小版本号major_vers原创 2021-05-11 14:50:40 · 286 阅读 · 0 评论
分享