JVM
文章平均质量分 95
叶落闲庭
驾驭命运的舵是奋斗。不抱有幻想,不放弃一点机会,不停止一日努力。
展开
-
【JVM】运行时数据区、程序计数器
类加载器将字节码文件加载到内存当中的时候,会用到两块内存区域:一块是方法区、另外一块叫做堆区,这两块区域都属于Java虚拟机管理的内存,由于JVN在运行过程中会去使用这块内存,所以就称之为运行时数据区域,它的职责除了保存字节码信息之外,还可以将创建出来的对象放到这块内存区域。原创 2023-11-08 20:32:43 · 372 阅读 · 0 评论 -
【JVM】JDBC案例打破双亲委派机制
JDBC的这个框架的目的是在Java中操作数据库,在他的设计的核心思想中不希望出现具体的数据库的语法,提高它的泛用性,将来对接任何数据库都会比较容易,在JDBC中,设计了一个`DriverManager`的类,这个类会去管理在jar包中的引入的数据库的驱动,比如要使用mysql数据库,那么就会添加一个mysql的驱动jar包,`DriverManager`会负责把驱动jar包加载进来,这样就可以连接mysql的数据库了,要想连接其他类型的数据库,只需将jar包替换成其他数据库的即可原创 2023-11-05 21:32:00 · 542 阅读 · 0 评论 -
【JVM】双亲委派机制、打破双亲委派机制
双亲委派机制指的是:当一个类加载器接收到加载类的任务时,会自底向上查找是否加载过,再由顶向下进行加载。假设在com.practice包下有一个类A.java,应用程序类加载器接收到一个任务,他要去加载A.java这个类,首先他会检查一下这个类有没有被加载过,发现没有被加载过,那么他就会把这个类委派给它的父类(扩展类加载器),扩展类加载器发现也没有加载过,继续向上委派,委派给它的父亲(启动类加载器),启动类加载器发现A.java曾经加载过,所以它直接把A.java类的class对象返回,加载过程结束。原创 2023-11-04 21:17:13 · 266 阅读 · 0 评论 -
【JVM】类的声明周期(加载、连接、初始化)
加载(Loading)阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码信息程序员可以使用Java代码拓展的不同的渠道。原创 2023-10-30 20:56:13 · 93 阅读 · 0 评论 -
【JVM】字节码文件的组成部分
要想看到java的字节码文件的内容,可以通过jclasslib这个工具来看,运行以上代码,然后通过jclasslib可以看到在这个方法中变量的存放位置,其中,局部变量表数组的0索引位置存放的是main方法的参数 args ,1索引位置存放的是第一个变量 i ,2索引存放的是第二个变量 j ,可以看出,定义在方法中的变量,方法的参数也将作为这个方法的变量存入局部变量表中,定义在方法内的变量会按定义的先后顺序依次存入局部变量表中。原创 2023-10-28 20:46:55 · 693 阅读 · 0 评论 -
【JVM】初步认识Java虚拟机
JVM全称是Java Virtual Machine,中文译名Java虚拟机,JVM本质上是一个运行在计算机上的程序,它的职责是运行Java字节码文件,在字节码文件中包含了一连串的指令,这个指令就是字节码指令,这些指令是无法直接在计算机上运行的,因为计算机只能识别机器码,而Java虚拟机就负责将字节码转换成机器码从而让电脑识别,这个过程被称为解释,相当于将一门语言翻译成另一门语言。原创 2023-10-11 20:41:35 · 424 阅读 · 0 评论