JVM的学习

为什么要学习JVM? 1、最初是为了面试 跟许多人一样,我一开始接触 Java 虚拟机只是因为面试需要用到,所以硬着头皮看看。所以很多人对于为什么要学虚拟机这个问题,他们的答案都是:因为面试。但我经过了几年的学习和实战,我发现其实学习虚拟机并不仅仅在于面试,而在于更深入地理解 Java 这门语言,以及为未来排查线上问题打下基础。 2、深入理解Java 对于刚刚工作一两年的朋友来说,各个 API 都没用熟,自然不会去深入研究 Java 中的各种细节。但对于工作了三年以后的朋友来说,很多时候你要解决一个问题必须深入到字节码层次去分析 阅读详情

 java虚拟机,二进制字节码的运行环境,负载装载字节码到其内部,解释、编译为对应平台上的机器指令执行。每一条Java指令,Java虚拟机规范都有详细定义,如怎么取操作数,怎么处理操作数,处理结果放在哪里。

 

 特点:

  一次编译,到处运行

  自动内存管理

  自动垃圾回收功能

 

JVM整体结构

 
简略图
在这里插入图片描述
 
详细图
在这里插入图片描述
 
流程:
 Class files =》

 类装载器子系统 == 加载到内存当中,生成CLASS类 ==》

 运行时数据区 == 实例与各个分区相联系 ==》

 执行引擎(解释器、执行器、垃圾回收器) == 解释运行 ==》

 

JVM的生命周期

启动

  通过引导类加载器创建一个初始类来完成的。

运行

  程序开始时它才运行,结束时便停止。

  【执行Java程序时,真真正正在执行的其实是叫Java虚拟机的进程】

结束

  程序正常结束

  遇到异常或错误

  操作系统出错

  某线程调用exit方法

学习Java有必要学习JVM吗? 学习JVM,我发现存在两种态度。 一种是想迅速掌握JVM,死拼周志明的《深入理解Java虚拟机》,结果就是囫囵吞枣,看不懂,没学会,挫败感很强。 另一种是对JVM原理十分不屑,根本不会主动去学。只有面试前了,才去冲刺一把,死记硬背下来,面完进公司了,就丢掉再也不看。 这两样态度,我都不赞成。 曾经的我很不屑于学 JVM,但是后来发现不学不行。这就像和媳妇吵架之后我不想道歉一样,不道歉那是不可能的,道歉是早晚的事儿,逃不掉。 后来我明白了: 认怂越晚,结局越惨。 当了多年Java程序员之后,遇到的项目越来越复 阅读详情

相关推荐

没人看的JVM之JVM概述和学习规划(1)

JVM概述和学习规划 JVM的前世今生(了解即可) Hotspot:目前使用的最多的 Java 虚拟机。在命令行 java –version。它会输出你现在使用的虚拟机的名字、版本等信息、执行模式。 Jrocket:原来属于BEA 公司,曾号称世界上最快的 JVM,后被 Oracle 公司收购,合并于 Hotspot J9: IBM 有自己的 java 虚拟机实现,它的名字叫做 J9. 主要是用在 IBM 产品(IBM WebSphere 和 IBM 的 AIX 平台上) TaobaoVM: 只有一定体量

suikasa的博客 405

JVM的定义以及JVM的学习路线

1. 什么是JVM 定义: Java Virtual Machine - java程序的运行环境(java二进制字节码的运行环境)。 好处: JVM是java程序一次编写,到处运行的基石。 JVM屏蔽了java字节码与底层操作系统的差异,对外提供了一个一致的运行环境,JVM用解释的方法来执行二进制字节码,来达到代码的平台无关性。 自动内存管理,垃圾回收功能。 java语言它的出现时期比较早,这个优点是相较于C、C++来说的,C、C++程序在编写的时候程序员要手动释放内存,如果操作不当很容易会造成内存泄漏

qq_50313418的博客 1425

运放电路实战:5分钟搞定加法器与减法器的电路设计与调试(附避坑指南)

本文从实战角度出发,详细讲解了运算放大器加法器与减法器的电路设计与调试方法。针对加法器,重点分析了利用“虚地”特性简化设计和选型要点;对于减法器,则深入剖析了决定精度的核心——电阻匹配问题,并提供了使用电阻网络等提升共模抑制比的实用策略。文章还分享了从仿真到实物焊接的完整流程与常见避坑技巧,帮助电子爱好者快速掌握这两种基础运放电路。

weixin_28323057的博客 466

JVM学习

Java Virtual Machine :Java程序的运行环境(java二进制字节码的运行环境)

weixin_74236078的博客 1147

嵌入式存储进阶:除了KV存储,EasyFlash的IAP和LOG功能怎么玩?

本文深入探讨了嵌入式存储方案EasyFlash的高级功能,包括在线固件升级(IAP)和闪存日志存储(LOG)。通过详细解析IAP的双区备份设计和LOG的环形缓冲区架构,提供硬件适配、安全升级流程和日志管理技巧等实战指南,帮助开发者在物联网设备中实现可靠的数据存储和固件更新。

weixin_29280219的博客 414

Cesium实战:从DEM数据到3D地形可视化的全流程解析

本文详细解析了从DEM数据到3D地形可视化的全流程,重点介绍了Cesium和Cesiumlab在数字高程模型(DEM)处理与地形数据转换中的应用。通过实战案例和工具对比,帮助开发者高效实现地形可视化,并分享性能优化与高级功能开发经验。

weixin_29079743的博客 336

【jvm第0集】jvm学习路线指南

分享jvm学习路线指南,每个模块深入学习都要花费很多时间,但这个是每个java程序员的必修之路,可以不精,但必须懂。大家可以跟着我的文章学习,不是很精,但够用。因为等你需要解决jvm相关问题的时候,你已经知道怎么去解决了。学习之路,长路漫漫,唯有坚持。

学不可以已,活到老,学到老。 927

VS2015编译配置GDAL(图文并茂、超详细!!!)

文章目录一、GDAL介绍二、下载GDAL三、修改源代码四、工具命令提示符操作五、编译GDAL六、安装GDAL七、在VS2015的项目中配置GDAL八、添加环境变量九、测试是否配置成功 一、GDAL介绍 GDAL(Geospatial Data Abstraction Library)是一个在XMIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。OGR是GDAL项目的一个分支,功能与GDAL类似,只不过它提供对矢量数据的支持。因此

weixin_46196863的博客 3757

【JVM系统学习之路系列】 JVM 概述篇

JVM系统学习之路系列演示代码地址: https://github.com/mtcarpenter/JavaTutorial 前言 大家好,我是小春哥,前面我用了10多个章节对并发编程 JUC 相关知识进行梳理,如果对 JUC知识还不了解的同学,关注我的公众号【山间木匠】从菜单底部可直达,从本篇文章开始更新 JVM 相关知识点,每一个JAVA 开发者应该都能深刻体会,多线程、并发、JVM 是难点也是痛点。 国内学习 JVM 虚拟机的人几乎是人手一本,周志明大神的“深入理解Java虚拟机”书籍。我第一次看.

havendream的博客 1175

DeerFlow 系列教程 附录 | 核心文件索引、官方文档索引与推荐阅读顺序

DeerFlow 系列教程 附录本附录汇集了 DeerFlow 项目的核心文件索引、官方文档索引和推荐阅读顺序三份速查资料,方便读者在日常开发和学习中快速定位关键代码与文档。内容按实际项目目录结构整理,所有路径均基于 DeerFlow 2.0 版本验证。

weixin_43674738的博客 328

013 PID参数整定:Ziegler-Nichols法

几年前在调试一台伺服压机,客户要求位置精度±0.01mm,响应时间小于50ms。我按照教科书上的经验值设了P=1.5,I=0.02,D=0.01,结果电机一启动就开始尖叫,位置超调直接干到0.3mm,然后开始震荡,像极了喝醉的舞者。现场工程师看我的眼神,就像在看一个刚毕业的实习生。那次之后我明白了一个道理:PID参数不是靠猜的,也不是靠经验公式硬套的。你需要一个系统的方法,而Ziegler-Nichols法就是那个让你从“瞎调”走向“有章可循”的起点。

m0_50546716的博客 101

1. 如何学习JVM

Table of Contents 声明 JVM与学习其他框架的区别 学习方式 国内权威人士 声明 本系列为北京圣思园深入理解JVM读书笔记 JVM与学习其他框架的区别 1. 其他框架大多是应用层技术框架,学习完后马上可以照猫画虎来应用,立竿见影 2. JVM很枯燥,很多理论 3. 应用崩溃时生成的dump文件需要仔细分析 4. 容易遗忘 5.并不能马上应用,很难用...

Kevin的博客 585

基于STM32设计的智能家居控制系统(华为云)_363

本项目设计并实现了一种基于STM32的智能家居控制系统,融合了语音识别、远程控制、环境监测与安全报警等功能。系统以STM32F103C8T6单片机为核心控制器,集成ESP8266 Wi-Fi模块实现与华为云IOT物联网平台的数据交互,采用MQTT协议进行通信。用户可通过语音识别模块控制风扇、空调、窗帘、卧室灯、客厅灯和电视等家电的开关操作,同时也可通过Android手机APP或Windows电脑上位机进行远程控制。系统还具备温湿度、光照强度、烟雾浓度和火焰检测功能,当检测到异常情况时,自动触发蜂鸣器报警并向

881

jvm学习

java源代码->二进制字节码->解释器->机器码->CPU记住下一条JVM指令的执行地址(解释器中)每个线程运行需要的内存空间栈帧:一个栈由多个栈帧组成每个方法运行时需要的内存参数局部变量返回地址每个线程只能有一个活动的栈帧,对应正在执行的方法方法执行完成,栈帧出战,对应方法的执行完成通过new关键字,创建对象都会使用堆内存不属于JVM内存,是操作系统内存类加载阶段可分为:加载->连接->初始化加载:将字节码.class文件通过类加载器加入到方法区。

Dearfrienda的博客 1587

Android系统修改驱动固定USB摄像头节点绑定前后置摄像头

Android系统中usb摄像头节点会因为摄像头所接的usb口不同或者usb设备识别顺序不一样而出现每次开机生成的video节点不一样的问题。由于客户app调用摄像头时,需要固定摄像头的节点。因此需要针对前面的情况做处理。

Android系统开发笔记 2250

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JVM 学习前置知识

JVM 学习前置知识

m0_63949203的博客 1390

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

学习JVM有什么用

我第一次意识到要学习JVM是在三年前的一场面试中,那时我正在面中级开发工程师。那是一家在深圳北站附近的公司

毛惜时的博客 538

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[Java]JVM学习笔记

JVM学习笔记 在极客时间学习课程时,李智慧老师分享了关于新技术学习方法的经验,叫做“5-20-2”法。 解释一下,就是在学习一项新技术时: 要在5分钟之内了解他是解决了什么问题,相比竞品技术有什么优势; 在20分钟之内,了解这项技术在解决这些问题的时候用了哪些思路,哪些新颖方法; 在2个小时之内,试着做一些demo快速上手。 如果能做到这些,就对这项技术进行一个持续的深挖,如果解决不了这些问题,就及早收手,免得过多浪费时间。 为了试验上述方法的可行性,以JVM为切入点,我开始有意识的训练自己在短时

optimus 358

JVM虚拟机学习目录页

使用Java已经多年,但是对JVM底层还是一直没有系统学习过,现在开始爬这座高山,以此博客记录。 学习源码:https://gitee.com/Coline/JVM JVM虚拟机学习(1)---Jvm内存区域:https://blog.youkuaiyun.com/u011294519/article/details/95937162 JVM虚拟机学习(2)---JVM对...

左撇子帕布 344

JVM学习资源

【官方文档】oracle JVM 规范说明书https://docs.oracle.com/javase/specs/jvms/se8/html/ 包含:JVM 的介绍;结构;编译;class 文件的结构;加载、链接、初始化;JVM 指令集;JVM 指令操作码对照表。 链接是 JDK 1.8 的版本,如需看其他版本修改 url 中的 se 后的数字即可。 【书籍】《Java虚拟机规范(Java SE 8版)》豆瓣 上面 JVM 规范说明书的中文解读,如果不习惯看官方英文文档,可以看下本书。阐释了 JVM

ConstXiong 377

JVM学习思路

2016大学毕业之后差不多从事JAVA后台相关开发工作也差不多三年,但是在工作中很少能接触到JVM的相关知识,每天几乎就是重复的CRUD--对于技术的提升毫无用处; 对于JVM的概念或多或少听过很多,之前跳槽的时候为了应付面试也是自己看了一点博客、书本、视频等,但是对于JVM的认知几乎仅仅停留在背诵概念的阶级上,对于真正的原理几乎还是零的认知;工作了三年也到了一个程序的初级瓶颈期了...

weixin_42964580的博客 384

JVM 全面深入学习路径

JVM深入学习路径摘要 本学习路径系统化覆盖JVM核心技术,分为五大部分: 基础架构:详解JVM内存模型、类加载机制和执行引擎 内存管理:深入垃圾回收算法、收集器实现和调优实战 字节码技术:解析类文件结构、指令集和动态代理原理 性能调优:掌握监控工具使用、参数配置和锁优化策略 高级主题:探讨JIT编译、逃逸分析及ZGC等前沿技术 学习路线从底层原理延伸到生产实践,包含丰富案例分析,适合希望深入理解Java虚拟机核心机制的中高级开发者。

weixin_39956506的博客 767

jvm 架构学习图

想要深入学习jvm 首先知道jvm 的架构图,方便知道该怎样学习jvm 简约版: 详细版(英文版): 详细版:(中文版):

Hao_JunJie的博客 193

JVM调优再学习

JVM调优再学习 堆大小设置 // JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bit还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。 // 32位系统下,一般限制在1.5G~2G;64位操作系统对内存无限制。 // 有研发人员称:在windows sever 2003系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。 // /...

sun1021873926的博客 629
上一篇: 职责链模式(Chain of Responsibility Pattern)
下一篇: 类加载器 && 双亲委派机制
code_Floyed
博客等级 码龄7年 3粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值