Java的运行机制(浅析)
2022/1/13 11:04:55
本文主要是介绍Java的运行机制(浅析),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- JVM基础概念:
java虚拟机(JVM)是可以运行的java代码的假象计算机:包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收器,一个储存方法域
- JVM的工作流程:
java源文件---->编译器—>字节码文件—>jvm----->机器码
- java可以实现跨平台的原因:
每种平台的解释器是不同的,但是实现的虚拟机是相同的,所有java程序可以跨平台
补:当一个程序从开始运行,这是虚拟机就开始实例化了,多个程序启动就会有多个虚拟机实例,程序关闭或者退出时,虚拟机实例消亡,多个虚拟机之间的数据是不能共享的。
-
垃圾回收器(又名gc)
负责回收内存中的无用对象
-
类装载子系统
1.定位和导入二进制class文件
2.验证导入类的正确性
3.为类分配初始化内存
4.帮助解析符号引用
-
执行引擎:
执行包在装载类的方法中的指令,
-
运行区数据
虚拟机内存或者JVM内存,在整个计算机内存中开辟一块用于内存储存JVM需要的用到的对象,变量等,运行区数据又被分为:方法区,虚拟机栈,本地方法栈,堆,程序计数器
-
Jvm运行时数据区
-
程序计数器
当线程执行字节码的信号指示器,线程是私有的,他的生命周期和线程相同相同分支,循环,跳转,异常处理,线程恢复等基础功能都需要依赖计数器完成
-
虚拟机栈
java虚拟机栈描述的是java方法(但区别于native的本地方法)执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于储存局部变量表,操作栈,动作链接,方法出口等信息。
线程私有,生命周期和线程相同,都有各个独立的计数器,各不影响
-
本地方法栈:
和虚拟机方法差不多类似,但是本地方法栈是服务与所使用到的Native方法服务。
-
本地方法区:
执行Native方法,
补:如果本地方法区的内存不足时,会抛出StackOverflowError 和OutOfMemoryError 异常。
-
-
堆
堆的区域在JVM区域中最大,应用的对象和数据都是存在这个区域,这块区域也是线程所共享的,也是gc的只要回收区。
抱歉,因为这个平台用的不多,还不知道如何插图,
以上只是本人对JAVA运机制的理解,若有不足或错误之处,还望各位看客斧正
这篇关于Java的运行机制(浅析)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南