运行时候数据区:方法区,堆,java栈,pc寄存器,本地方法栈
每个虚拟机运行的时候,都会有方法区和堆,所有线程共享
每个线程被创建,都会得到自己的java栈和pc寄存器,任何一个线程都不能访问另一个线程的java栈和寄存器。
如果线程执行的是一个java方法(非被地方法),pc寄存器里的值总是指向下一条指令,而java栈中存放的是该线程执行的方法的状态,如:局部变量,传递进来的参数,返回值以及运算的中间结果等。
而本地方法的调用则是以某种依赖具体实现的方式存放在本地方法栈中,也可能是寄存器或者其他特定的实现相关的内存中。
java栈是由很多帧组成,每一帧包括一个方法的调用状态,当调用一个方法,就压入一帧到栈里面,当方法执行完之后,会弹出这个帧
栈帧由三部分组成:
1.局部变量区,对应方法的参数和局部变量,以声明的顺序放入局部变量数组
2.操作数栈
3.帧数据区,常量池解析,正常方法返回,异常派发机制
方法区:
1.这个类型的全限定名
2.这个类型的直接超类的全限定名(类型为object除外)
3.该类行是接口还是实现类
4.该类型的访问修饰符
5.任何直接超接口的全限定名称列表
6.静态的东东
7.常量池,虚拟机为每个装载的类型维护一个常量池,包括直接常量和引用
8.字段信息,字段的顺序
9.字段名
10.字段类型
11.字段的修饰符(public,private,static,volatile,transient,final,protected)
12.方法信息:方法名,返回类型修饰符,参数类型数量顺序
13.非抽象,非本地方法还需要特殊信息
14.指向classloader,Class的引用
在class文件里面,java.lang.Object的class文件中,点被/替代,java/lang/object
bootstrap:安装路径中的class
system:classpath中的class
分享到:
相关推荐
虚拟机学习笔记 Java 虚拟机(JVM)是 Java 语言的 runtime 环境,负责加载、验证、执行 Java 字节码。以下是 JVM 相关知识点的总结。 1. 运行时数据区域 JVM 的运行时数据区域主要包括: * 堆(Heap):...
Java 虚拟机学习笔记: Java 内存区域, 垃圾收集, 内存分配与回收策略, JVM 调优, 文件结构, 类加载机制, Java 程序 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,...
Java 虚拟机(JVM)自动内存管理机制 Java 虚拟机(JVM)自动内存管理机制是 Java 语言的一大特色,它使得 Java 程序员无需手动管理内存,从而提高了开发效率和程序稳定性。JVM 自动内存管理机制主要通过 JVM 的...
Java虚拟机(JVM)是Java程序的核心组成部分,它负责执行字节码并管理程序的内存。本篇文章将深入探讨Java虚拟机中的垃圾收集器(GC)及其对内存管理的影响。 1. 垃圾收集器的由来与作用 垃圾收集器的引入主要是...
Vmware虚拟机学习笔记 Vmware虚拟机是一种流行的虚拟机软件,能够在物理机上安装虚拟机操作系统,提供了便捷的虚拟机管理和使用体验。本文将对Vmware虚拟机的使用进行详细的介绍,包括虚拟机与物理机之间的资源共享...
总结来说,了解Java虚拟机的学习笔记基础篇,可以帮助Java开发者更好地掌握Java程序的执行机制,理解类的加载、链接和初始化过程,以及JVM的内存模型和执行引擎的工作原理,从而编写出更加高效和稳定的Java应用程序...
1) 命令:sudo passwd root ... 4) 命令:exit–>退出root用户 2. Ubuntu的更新 1) 命令:sudo apt-get update 更新资源 2) 命令:sudo apt-get upgrade 对系统中的软件都更新升级 ...
Java虚拟机(JVM)是Java程序运行的基础,它为程序提供了一个抽象的硬件平台,负责执行字节码。在JVM中,对象是通过堆内存分配的,使用`new`、`newarray`、`anewarray`、`multianewarray`等指令创建。然而,与C++等...
读书笔记:学习周志明先生的深入理解Java虚拟机的笔记
java学习笔记3(java虚拟机)java学习笔记3(java虚拟机)
你还在为新安装的虚拟机不能上网发愁吗?关于linux上网配置你还没有完全掌握吗?那欢迎下载这篇文档学习一下吧!
Java 虚拟机(JVM)是Java编程语言的核心组成部分,它允许Java代码在不同的操作系统上运行,实现了“一次编写,到处运行”的目标。JVM 是一个虚拟计算机,能够执行字节码(.class文件),这些字节码是Java源代码经过...
### 学习笔记之Java虚拟机详解 #### 运行时数据区域概览 Java虚拟机(JVM)运行时数据区域主要包括以下几部分:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区以及运行时常量池。 1. **程序计数器**: -...
尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)学习笔记_NOTE_JVM
深入理解Java虚拟机,首先我们要明白Java虚拟机(JVM)的核心功能:它负责装载类文件,执行字节码,...深入学习JVM有助于我们更好地优化代码,理解和解决性能问题,以及利用JVM提供的特性来提升软件开发的效率和质量。
java学习笔记4(java多线程)java学习笔记4(java多线程)
"Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...
通过阅读《深入理解Java虚拟机》第三章,开发者不仅可以深入理解Java的安全机制,还能学习到如何在实际项目中实施这些安全策略,提升应用的安全性。对于想要从事Java开发或者对系统安全有深入了解需求的人来说,这一...
读书笔记:深入理解Java虚拟机(周志明)源码及学习笔记