JVM
雨季的蘑菇
fight
展开
-
【JVM】自动内存管理机制(1)---自动内存管理机制
运行时数据区域JVM在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自不同的用途以及创建和销毁的时间。其结构如图所示:JVM运行时数据区程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。在JVM的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程回复等基础功能都需要依赖这个计数器来完成。各条线程之间计数器互不影响,独立存储。...原创 2020-06-23 23:52:54 · 240 阅读 · 0 评论 -
【JVM】虚拟机类加载机制(3)---类加载器
JVM将类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到JVM外部去实现,以便让程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。类与类加载器类加载器虽然只用于实现类的加载动作,但它在Java程序中起到的作用却远远不限于类加载阶段。对于一个任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在JVM中的唯一性。每一个类加载器,都拥有一个独立的类命名空间。也即:要比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否原创 2020-06-15 01:40:29 · 202 阅读 · 0 评论 -
【JVM】虚拟机类加载机制(2)---类加载的过程
加载、验证、准备、解析、初始化是类加载的全过程。加载“加载”是“类加载”(Class Loading)过程的一个阶段,在加载阶段需要完成以下三件事情:1.通过一个类的全限定名来获取定义此类的二进制字节流2.将这个字节流代表的静态存储结构转化为方法区的运行时数据结构3.在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口二进制流的获取途径:1.从ZIP包中获取,称为JAR、EAR、WAR格式的基础2.从网络中获取,常见的有Appl原创 2020-06-05 01:55:26 · 180 阅读 · 0 评论 -
【JVM】虚拟机类加载机制(1)---类加载机制概述及类加载的时机
概述 Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java天然可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的:例如编写一个面向接口的应用程序,可以等到运行时再指定其实际的实现类;用户可以通过Java预定义的和自定义类加载器,让一个本地的应用程序可以在运行时从网络或者其他地方加载一个二进制流作为程序代码的一部分,这种组装应用程序的方式已广泛应用于Java程序之中。...原创 2020-06-02 01:20:06 · 224 阅读 · 0 评论