JMM_JVM
文章平均质量分 89
JMM_JVM
眉头
chase
展开
-
Class文件的加载过程和类加载器的原理
Class 文件是怎样被放在内存的硬盘中的Class被加载的过程1、loading把一个class 加载到内存,懒加载,需要的时候再加载2、linking(1)、verification校验class,是否满足class的格式(2)、preparation把class中静态变量设置成默认值 int类型 0(3)、resolution解析 loadeClass方法中的第二个参数 true 为解析 false 不解析class中常量池用到的符号引用转换成可以直接访问内存的值(直接能原创 2021-07-02 11:04:52 · 606 阅读 · 0 评论 -
认识Class文件
概念Class文件是一组以8字节为基础单位的二进制流,各个数据项目严格的按照顺序紧凑地排列在文件之中,中间没有添加任何分割符,这使得整个Class文件存储的内容几乎全部是程序运行的必要数据,没有空隙存在。《Java虚拟机规范》规定了Class文件格式采用一种类似C语言结构体的伪结构来存储数据,这种伪结构只包含两种数据类型,即无符号数和表。class文件通过固定的数据结构排列顺序并且每种数据结构指定了占用的字节长度来紧凑的在组成了完整的可读文件,jvm只需要从文件开始的地方一步一步的读取能够完全的解析出原创 2021-06-29 11:27:16 · 665 阅读 · 0 评论 -
Synchronized和Volatile底层知识、内存屏障相关内容
SynchronizedHotSpot 的 synchronized// 二进制 字节码相关说明synchronized(Object o) 锁对象:表示当线程拿到了一把锁o的时候才可以执行synchronized块或者synchronized方法中的代码逻辑,并不是锁了synchronized包裹的代码。在一个对象中是通过Object 对象头的在JDK1.6之前Synchronized只有传统的锁机制,1.6之后对其进行了优化升级(锁升级)锁升级:jdk1.6之后引入了偏向所和轻量级锁的原创 2020-08-31 13:48:13 · 1285 阅读 · 0 评论 -
JAVA 线程 Synchronized Volatile
概念线程:程序执行流的最小单元。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程有就绪、阻塞和运行三种基本状态。就绪状态是指线程具备...原创 2019-03-27 15:20:46 · 826 阅读 · 0 评论