Java内存模型 Java内存模型(JavaMemoryModel)的主要目的是定义程序中各种变量的访问规则,即关注在虚拟机中把变量值存储到内存和从内存中取出变量值这样的底层细节 1.主内存与工作内存 Java内存模型规定了所有的变量都存储在主内存(MainMemory)中(虚拟机内存的一部分)。每条线程还有自己的工作内存(WorkingMemory),线程的工作内存中保存了被该线程使用的变量的主内存副本,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的数据。不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内存来完成 深入理解Java虚拟机...

  LWrnZlC18VFN   2023年12月26日   19   0   0 Java

运行时数据区域 JVM在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域 JDK1.7 JDK1.8 1.程序计数器(ProgramCounterRegister) 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器 字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成 为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储 此内存区域是唯一一个在虚拟机规范...

  LWrnZlC18VFN   2023年12月22日   83   0   0 Java

垃圾回收 垃圾回收需要完成的三件事情 哪些内存需要回收? 什么时候回收? 如何回收? 1.如何判断对象是否存活 在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,首先就要确定对象的存活状态 1.1对象存活算法 1.1.1引用计数算法(ReferenceCounting) 在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的 引用计数算法虽然占用了一些额外的内存空间来进行计数,但它的原理简单,判定效率也很高,在大多数情况下它都是一个不错的算法 循环引用 这个看似简单的算法有很多...

  LWrnZlC18VFN   2023年12月22日   24   0   0 Java
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~