
JVM
Java内存相关
会飞的卡卡
这个作者很懒,什么都没留下…
展开
-
JVM运行模式
JVM的运行模式由三种:解释模式(Interpreted Mode):只使用解释器(-Xint 强制JVM使用解释模式),执行一行JVM字节码就编译一行为机器码编译模式(Compiled Mode):只使用编译器(-Xcomp JVM使用编译模式),先将所有的JVM字节码一次编译为机器码,然后一次性执行所有机器码混合模式(Mixed Mode):(-Xmixed 设置JVM使用混合模式)依然使用解释模式执行代码,但是对于一些“热点”代码采取编译器模式执行,这些热点代码对应的机器码会被缓存起来,下次执原创 2020-06-01 19:49:36 · 756 阅读 · 0 评论 -
类加载机制
1. 类加载过程多个java文件经过编译打包成可运行的jar包,最终由java命令运行某个主类的main函数启动程序,这里首先需要通过类加载器把主类加载到JVM。主类在运行过程中如果使用到其他的类,会逐步去加载这些类1。从类加载到使用整个过程有如下几步加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才加载,例如调用类的main方法,new对象原创 2020-05-27 22:04:57 · 272 阅读 · 0 评论 -
Java中实例对象存储在哪?
当实例对象存储在堆区时:实例对象存放在堆区,对实例的引用存在线程栈上,而实例的元数据存在方法区或者元空间。那么,实例对象一定是存放在堆区吗?答案是不一定,如果实例对象没有发生线程逃逸行为,就会被存储在线程栈中。这涉及到JIT在编译中对Java代码的优化——逃逸分析。逃逸分析的基本行为就是分析对象动态作用域。如果一个对象在方法中被定义,但是对象的使用仅是在当前方法中,而且对象本身比较简单,那么...原创 2020-04-06 19:15:42 · 2687 阅读 · 0 评论 -
Java对象内存结构
对象内存结构分为三部分:对象头hash码,对象所属的年代,对象锁,锁状态标志,偏向锁(线程)ID,偏向时间,数组长度(数组对象)等对象实际数据即创建对象时,对象中成员变量,方法等对齐填充保证对象的大小是8字节的整数倍MataData元数据指针——指向当前对象的Class对象HotSpot虚拟机对象头MarkWord...原创 2020-04-06 21:02:30 · 227 阅读 · 0 评论 -
并发编程——JMM(Java内存模型)
一、现代计算机理论模型与工作原理冯诺依曼计算机模型控制器(Control)运算器(Datapath)存储器(Memory)输入(Input system)输出(Output system)现代计算机主要结构基础CPU数据读取速度: 寄存器 > L1 > L2 > L3 > 内存 CPU缓存是为了弥补内存速度跟不上cpu处理数据速度而诞生的,当...原创 2020-01-15 21:16:26 · 217 阅读 · 0 评论