jvmer
塑料味的美年达
这个作者很懒,什么都没留下…
展开
-
jvm内存模型(主存副本以及共享内存安全问题的产生以及synchronized线程安全原理和volatile关键字)
一:线程数据模型与安全: 多核心(cpu)中,虚拟机是 一个主存 对应多个核心(cpu),一个cpu对应着多个内存副本,(可以理解为主存对应着堆内存,而内存副本对应着各个cpu的线程所属的内存,线程私有)。而一个线程取值时是从主存中取出复制到 副本中,而修改了值之后,会把修改后的值重新写入主存,在这个过程中,由于各个线程都有不同的值,因此如果多线程只读是没问题的,但是读...原创 2019-10-01 19:24:29 · 334 阅读 · 0 评论 -
java虚拟机(五):类文件结构
1Byte(字节) = 8bit(位);一:Class类文件的结构: 1.1:Class文件 Class文件是一组以 8 位字节为基础单位的二进制流,当遇到8位字节以上空间的数据项时,会按照高位在前的方式分割成若干个8位字节进行存储。Class文件采用一种类似于C语言结构体的伪结构来存储,它只有两种数据类型:无符号数和表 1.2:无符...翻译 2019-02-27 15:39:21 · 163 阅读 · 0 评论 -
java虚拟机(三)虚拟机性能监控与故障处理工具
一:jps : 虚拟机进程状况工具: jps(JVM Process Status Tool) ,可以列出正在运行的虚拟机进程,并显示虚拟机执行主类的名称,以及进程的本地虚拟机的唯一id二:jstat: 虚拟机统计信息监视工具: jstat(JVM Statistics Monitoring Tool )是用于监视虚拟机各种运行状态信息的命令行工具。可以显示...翻译 2019-01-15 15:34:28 · 110 阅读 · 0 评论 -
java虚拟机(二)垃圾收集器与内存分配策略
一:判断对象是否死亡方法: 1.引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器加1,当引用失效时,计数器减1,任何时刻计数器为0的对象就是不可能再被使用。 痛点:很难解决对象之间的相互循环引用的问题。如: 因此两对象互相引用但是偏偏又不会再被调用,导致回收不了 2.根搜索算法: ...原创 2019-01-17 21:23:38 · 97 阅读 · 0 评论 -
JVM:类加载机制
一:类加载机制定义: 虚拟机把描述类的数据从 Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型 java中,类型的加载和连接过程都是在程序运行期间完成(其他的语言在编译时需要进行连接工作),在类加载时稍微增加一些性能开销,但是提供了高度的灵活性。java天生可以动态扩展的语言特性就是依赖运行期动态加载和动态...原创 2019-09-27 17:09:24 · 97 阅读 · 0 评论