摘要: Java中的对象可分为2类: 普通对象 数组对象 Java普通对象内存结构: 对象头 Mark Word(32Bit或64Bit):存储对象自身运行时所需的数据,例如:哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。 kclass:存储一个kclass类型的指针,用以指向 阅读全文
posted @ 2021-12-08 13:19 Alfie014 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 什么是JMM? JMM(Java Memory Model)就是Java内存模型,是Java虚拟机规范中所定义的一种内存模型。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的程序运行在不同的系统上会出现各种问题。因此Java内存模型屏蔽了各种硬件和操作系统的访问差异 阅读全文
posted @ 2021-12-07 16:22 Alfie014 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 并发编程中的两个关键问题: 线程之间如何通信? 线程之间如何同步? 什么是线程通信? 线程通信是指线程之间如何交换信息。 什么是线程同步? 线程同步是指控制多个线程按照一定顺序先后执行。 如何实现线程通信? 共享内存 消息传递 怎样实现共享内存? 线程之间共享程序的公共状态,通过读、写内存中的程序公 阅读全文
posted @ 2021-12-07 15:15 Alfie014 阅读(43) 评论(0) 推荐(0) 编辑
摘要: main:执行启动类main()的线程; Reference Handler:处理引用的线程。用于处理引用对象本身(软引用、弱引用、虚引用)的垃圾回收问题; Finalizer:执行对象finalizer()的线程。JVM在垃圾收集时会将失去引用的对象包装成 Finalizer对象(Referenc 阅读全文
posted @ 2021-12-07 14:45 Alfie014 阅读(117) 评论(0) 推荐(0) 编辑