Pivotal Cloud Technology | PivotalCloud 云技术

Java编程技术之浅析JVM内存

1|0JVM

JVM->Java Virtual Machine:Java虚拟机,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

file

基本认知:

  • 1.JVM是用于运行Java代码的假象计算机,主要有一套字节码指令集,一组寄存器,一个栈,一个垃圾回收,堆 和 一个存储方法域。
  • 2.JVM运行在操作系统之上,与硬件没有直接的交互。

Java程序执行过程:
file

  • 1.编译->源文件由编译器编译成字节码[ByteCode]

Java 源文件—->编译器—->字节码文件

  • 2.运行->字节码由java虚拟机解释运行

字节码文件—->JVM—->机器码

Java类的加载步骤:

  • 1.加载->主要是完成3个阶段的提交:

通过类的全限定名来获取定义类的二进制字节流
将字节流所代表的静态存储结构转化为方法区的运行时数据结构
在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。

  • 2.验证->四个阶段的检验动作:

文件格式验证
元数据验证
字节码验证
符号引用验证

  • 3.准备->为类变量(static)分配内存并设置类变量的初始值。
  • 4.解析->将常量池内的符号引用转为直接的引用
  • 5.初始化->按照static块和static变量在文件中的出现顺序,合并到()方法中。实例变量由()函数赋值。

JVM线程实体:

JVM线程->程序执行过程中的一个线程实体,JVM 允许一个应用并发执行多个线程。

从此,我们应该意识到,在Java中,当提到线程就应该是指JVM线程和Java线程。其中JVM线程指的是Hotspot JVM 后台运行的系统线程,而且Hotspot JVM 中的 Java 线程与原生操作系统线程有直接的映射关系。

⚠️[注意事项]:
[1].当线程本地存储、缓冲区分配、同步对象、栈、程序计数器等准备好以后,就会创建一个操作系统原生线程。
[2].Java 线程结束,原生线程随之被回收。操作系统负责调度所有线程,并把它们分配到任何可用的 CPU 上。
[3].当原生线程初始化完毕,就会调用 Java 线程的 run() 方法。当线程结束时,会释放原生线程和 Java 线程的所有资源

特别需要知道的是,Hotspot JVM 后台运行的系统线程主要是:

  • 虚拟机线程->VM thread:等待 JVM 到达安全点操作出现。这些操作必须要在独立的线程里执行,因为当堆修改无法进行时,线程都需要 JVM 位于安全点。这些操作的类型有:stop-theworld垃圾回收、线程栈 dump、线程暂停、线程偏向锁(biased locking)解除。
  • 周期性任务线程->负责定时器事件(也就是中断),用来调度周期性操作的执行
  • GC线程->支持 JVM 中不同的垃圾回收活动
  • 编译器线程->在运行时将字节码动态编译成本地平台相关的机器码
  • 信号分发线程->程接收发送到 JVM 的信号并调用适当的 JVM 方法处理

2|0JVM内存

file

版权声明:本文为博主原创文章,遵循相关版权协议,如若转载或者分享请附上原文出处链接和链接来源。


__EOF__

本文作者PivotalCloud
本文链接https://www.cnblogs.com/mazhilin/p/13066387.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:Copyright © 2018-2021 PivotalCloud Technology Systems Incorporated. All rights reserved.
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   PivotalCloud  阅读(460)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示