随笔分类 - jvm
摘要:why ? when ? how ? what ? 什么是虚拟机类加载机制 ? 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用 Java 类型。 类加载的时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期如下图
阅读全文
摘要:when ? why ? how ? what ? 计算机的运行速度和它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O 、网络通信或者数据库访问上。如何把处理器的运算能力“压榨”出来? 如何充分利用计算机处理器? 因为绝大多数的运算任务都不可能只靠处理器“计算”就能完成, 处理器至少
阅读全文
摘要:when ? what ? why ? how ? 为什么要进行垃圾回收? 当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们需要对内存动态分配和内存回收技术实施必要的监控和调节。 垃圾回收的区域是哪块? JVM 内存结构分成程序计数器、虚拟机栈、本地方法栈、堆、
阅读全文
摘要:what ? when ? why ? how ? what JVM内存结构指的是哪一块区域? JVM内存划分的各个区域都存储什么信息? 每个划分的区域有什么特点? when 划分的区域有没有随着jdk的变动有所改动? how JVM内存结构如何划分? why JVM内存结构指的是哪一块区域? ja
阅读全文
摘要:volatile 1. 线程间的可见性 2. 防止指令重排 线程间的可见性 先了解下java的内存模型主内存和工作内存 java的内存模型主要目标是定义程序中各个变量的访问规则,即虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。而这些变量包括实例字段、静态字段和构成数组对象的元素。————
阅读全文
摘要:今天看到深入理解JVM第367页多线程volatile部分照着书本敲着代码发现了一个问题 Thread.activeCount()会一直大于2 public class VolatileTest { public static volatile int race = 0; public static
阅读全文
摘要:什么叫指令重排? int a=0; //1 int b=1; //2 int c=2; //3 int sum=a+b+c; //4 编写程序的时候顺序是1、2、3、4.但是cpu和编译器为了提高程序的执行效率会按照一定的规则允许指令优化,不影响单线程程序执行结果,但是多线程就会影响程序结果。 什么
阅读全文

浙公网安备 33010602011771号