10 2024 档案
摘要:1 什么是本地方法 首先要知道什么是本地方法,本地方法并不是 JVM 自己的方法,也不是 jre 里面的方法,而是指那些操作系统自己的方法(如C/C++方法),它们在操作系统目录里。可以这么理解,本地方法就是计算机操作系统对外提供的方法,JVM 通过调用这些方法可以实现 Java 程序和计算机的交互
阅读全文
摘要:Java虚拟机栈(Java Virtual Machine Stack,简称JVM栈,又称Java方法栈)是 JVM 运行时数据区的一部分,主要用于支持Java方法的执行。每当一个新线程被创建时,JVM就会为这个线程分配一个私有的方法栈,线程执行过程中每个方法调用都会创建一个新的栈帧(Stack F
阅读全文
摘要:Java程序计数器(Program Counter Register)是Java虚拟机(JVM)运行数据区的一个组成部分。每个线程都有它自己的程序计数器,这部分内存用于存储该线程下一条要执行的字节码指令的地址。如果该方法为本地方法(Native Method),则程序计数器的值为未定义。 特点: 线
阅读全文
摘要:运行时数据区结构图如下: 可分为 5 个区域,分别是方法区、堆区、虚拟机栈、本地方法栈、程序计数器。这里大概介绍一下各个模块的作用,会在后面的文章展开讲。 类加载子系统会把类信息加载到方法区,程序运行时会创建线程,每个线程都有自己的虚拟机栈、本地方法栈、程序计数器,线程每执行一个方法就会创建一个栈帧
阅读全文
摘要:类加载系统加载类时分为三个步骤,加载、链接、初始化,下面展开介绍。 类加载子系统结构图: 1 类加载器 JVM 使用类加载器加载 class 文件,类加载器可分为引导类加载器和自定义类加载器两种。 引导类加载器(Bootstrap ClassLoader),有时也被称作启动类加载器或者零类加载器(N
阅读全文
摘要:JVM Java的特性就是程序员一次编写,到处运行,意思是我们只需要写一份代码,就可以在不同的操作系统(windows、Linux、Mac OS等)中运行。但是不同的操作系统能看懂的指令是不同的,所以实现方式就是给每个操作系统开发一个Java虚拟机(JVM)。 JVM运行的过程是把我们代码编译后的字
阅读全文