【JAVA学习】——Java虚拟机
来源:互联网 发布:恩比德 知乎 编辑:程序博客网 时间:2024/06/02 02:42
Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。JVM Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。下面我们就来看一下这几部分比较重要的java虚拟机的结构
在Java虚拟机的规范中定义了一系列的子系统、内存区域、数据类型和使用指南。这些组件构成了Java虚拟机的内部结构,他们不仅仅为Java虚拟机的实现提供了清晰的内部结构,更是严格规定了Java虚拟机实现的外部行为。每一个Java虚拟机都由一个类加载器子系统(class loader subsystem),负责加载程序中的类型(类class和接口interface),并赋予唯一的名字。每一个Java虚拟机都有一个执行引擎(execution engine)负责执行被加载类中包含的指令。
Java虚拟机从启动到结束的生命周期,当java虚拟机启动后,在如下几种情况下,Java虚拟机将结束生命周期:
1.执行了System.exit()方法
2.程序正常执行结束
3.程序在执行过程中遇到了异常或错误而异常终止
4.由于操作系统出现错误而导致Java虚拟机进程终止
首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域,这几个区域在java类的生命周期中扮演着比较重要的角色:
方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域
常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息。
堆区:用于存放类的对象实例。
栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量、方法出口等信息。当调用一个方法时,虚拟机栈中就会创建一个栈帧存放这些数据,当方法调用完成时,栈帧消失,如果方法中调用了其他方法,则继续在栈顶创建新的栈桢。Java虚拟机的栈有三个区域:局部变量区、运行环境区、操作数区。
- 【JAVA学习】——Java虚拟机
- java虚拟机学习——前言
- Java-学习-Java虚拟机
- java虚拟机学习笔记——java安全模型
- java虚拟机学习笔记——java虚拟机内部体系概述(第五章)
- java虚拟机学习笔记——java虚拟机内部体系概述(第五章)
- 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
- 《深入理解java虚拟机》学习笔记7——Java虚拟机类生命周期
- 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
- 《深入理解java虚拟机》学习笔记7——Java虚拟机类生命周期
- Java虚拟机的内存区域——《深入理解Java虚拟机》学习笔记(一)
- 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
- 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
- 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
- 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
- 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
- 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
- Java虚拟机学习笔记(1)——Java虚拟机内存模型
- ofbiz_web设置
- js学习笔记:this
- Linked Lists Part1-Singly Linked Lists
- leetcode 292. Nim Game
- Android搜索框架
- 【JAVA学习】——Java虚拟机
- 算法提高 一元一次方程
- 100道动态规划——21 HDU 1559 最大子矩阵和 树状数组 最大连续子区间和
- HDU 1435 Stable Match(稳定婚姻问题)
- [Leetcode] Find All Duplicates in an Array
- C++重要知识点
- 半文不白的语言
- Unity 单例模式总结
- 每天一个 Linux 命令(6):rmdir 命令