JVM的基础介绍(1)

本文是“深入学习JVM”系列的第一篇文章,主要介绍JVM、JVM的3大子系统各自的功能。
我是蚊子码农,欢迎各位的点赞、关注和收藏,有了你们的激励,我会带来更好的作品。

一、JVM的介绍

JVM,即Java Virtual Machine,中文名Java虚拟机。
它的作用,就是将我们编写的项目代码,转化为操作系统可以理解的源码,进而在机器上运行。
它的突出本领,就是使得代码真正脱离机器,无论是哪种机器,只要实现了JVM,相同的class文件,就能得到相同的运行结果。
JVM运行于操作系统上,从操作系统的角度,它是一个普通的进程。而从Java开发者的角度出发,它实现了极好的封装,我们对其不甚了解,只知道它是运行Java项目所必备的工具。
尝试来剖析这个神秘的机器。

二、学习JVM,学什么?

JVM,相当于运行在操作系统上的操作系统,所以,我们从操作系统的角度来分析这个JVM。
我们知道,操作系统的五大功能是:内存管理、进程管理、CPU管理、存储管理和IO管理。

第一,内存管理策略

由于JVM毕竟不是真实的操作系统,所以我们主要学习的,是它先进的内存管理策略
我们都知道,在Java中,无需手动申请内存,也无需手动释放内存,这就是非常先进的“自动化内存管理策略”。

第二,性能调优策略

在实际工作中,我们很少直接和内存打交道,更多的是进行调优,所以调优方法也必不可少。

三、分析JVM

我们知道,在完成Java项目之后,我们需要先编译,才能使其在JVM上运行。
编译得到的是class文件,这种文件在JVM上,一定会被翻译成某种结构,进而能够运行。
这就是第一个学习的知识,class文件转化系统
无论class文件最终转化成什么结构,都需要将数据落实在内存上。
这就是第二个知识,运行时数据区
JVM是操作系统上的一个进程,那么它就能掌握一段时间的CPU,这时候,如何运行我们的main语句呢?
这就是第三个知识,执行引擎

四、结语

我是蚊子码农,如有补充或者疑问,欢迎在评论区留言。个人的知识体系可能没有那么完善,希望各位多多指正,谢谢大家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/777519.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python的招聘数据分析与可视化管理系统-计算机毕业设计源码55218

摘要 随着互联网的迅速发展,招聘数据在规模和复杂性上呈现爆炸式增长,对数据的深入分析和有效可视化成为招聘决策和招聘管理的重要手段。本论文旨在构建一个基于Python的招聘数据分析与可视化管理系统。 该平台以主流招聘平台为数据源,利用Py…

arm架构安装chrome

在ARM架构设备上安装谷歌软件或应用通常涉及到几个步骤,这取决于你要安装的具体谷歌产品,比如谷歌浏览器、Google Play服务或者是其他谷歌开发的软件。下面我会给出一些常见的指导步骤,以安装谷歌浏览器为例: 在Linux ARM64上安装…

平价蓝牙耳机推荐有哪些?四大超值平价蓝牙耳机品牌盘点

市面上的蓝牙耳机品牌繁多,价格差异巨大,对于预算有限但又不想牺牲音质和使用体验的消费者来说,寻找到既平价又性能出色的蓝牙耳机无疑是一项挑战,那么在平价蓝牙耳机推荐有哪些?面对这个疑问,作为真无线蓝…

【图解大数据技术】Hive、HBase

【图解大数据技术】Hive、HBase Hive数据仓库Hive的执行流程Hive架构数据导入Hive HBaseHBase简介HBase架构HBase的列式存储HBase建表流程HBase数据写入流程HBase数据读取流程 Hive Hive是基于Hadoop的一个数据仓库工具,Hive的数据存储在HDFS上,底层基于…

CSS - 深入理解选择器的使用方式

CSS基本选择器 通配选择器元素选择器类选择器id 选择器 通配选择器 作用:可以选中所有HTML元素。语法: * {属性名;属性值; }举例: /* 选中所有元素 */ * {color: orange;font-size: 40px; }在清除样式方面有很大作用 元素选择器…

实现桌面动态壁纸(二)

目录 前言 一、关于 WorkerW 工作区窗口 二、关于窗口关系 2.1 窗口以及窗口隶属关系 2.2 桌面管理层窗口组分简析 2.3 厘清两个概念的区别 2.4 关于设置父窗口 三、编写代码以供在 Vista 上实现 3.1 方法二:子类化并自绘窗口背景 四、初步分析桌面管理层…

【音视频 | RTSP】RTSP协议详解 及 抓包例子解析(详细而不赘述)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

免密ssh和自定义服务器名字【远程连接服务器】

免密ssh和自定义服务器名字【远程连接服务器】 免密ssh和自定义服务器名字【远程连接服务器】服务器添加本地公钥ssh-copy-id使用别名登录config 免密ssh和自定义服务器名字【远程连接服务器】 原理 实现免密登录需要 本地的公钥id_rsa.pub放在服务器上的 authorized_keys 文件…

NTP协议格式解析

1. NTP时间戳格式 SNTP使用在RFC 1305 及其以前的版本所描述标准NTP时间戳的格式。与因特网标准标准一致, NTP 数据被指定为整数或定点小数,位以big-endian风格从左边0位或者高位计数。除非不这样指定,全部数量都将设成unsigned的类型&#…

边缘概率密度、条件概率密度、边缘分布函数、联合分布函数关系

目录 二维随机变量及其分布离散型随机变量连续型随机变量边缘分布边缘概率密度举例边缘概率密度 条件概率密度边缘概率密度与条件概率密度的区别边缘概率密度条件概率密度举个具体例子 参考资料 二维随机变量及其分布 离散型随机变量 把所有的概率,都理解成不同质量…

【Rust入门】生成随机数

文章目录 前言随机数库rand添加rand库到我们的工程生成一个随机数示例代码 总结 前言 在编程中,生成随机数是一种常见的需求,无论是用于数据分析、游戏开发还是模拟实验。Rust提供了强大的库来帮助我们生成随机数。在这篇文章中,我们将通过一…

huggingface笔记:gpt2

0 使用的tips GPT-2是一个具有绝对位置嵌入的模型,因此通常建议在输入的右侧而不是左侧填充GPT-2是通过因果语言建模(CLM)目标进行训练的,因此在预测序列中的下一个标记方面非常强大 利用这一特性,GPT-2可以生成语法连…

并发编程中常见的锁

一、锁的分类 1.1 悲观锁和乐观锁 乐观锁: 定义: 假设在绝大多数情况下,对共享资源的访问是不会发生冲突的,所以不会对资源上锁。 实现方式:当线程要对资源进行更新时,它会先获取资源的版本号或者标识符,并在执行更新…

C++ 视觉开发 六.特征值匹配

以图片识别匹配的案例来分析特征值检测与匹配方法。 目录 一.感知哈希算法(Perceptual Hash Algorithm) 二.特征值检测步骤 1.减小尺寸 2.简化色彩 3.计算像素点均值 4.构造感知哈希位信息 5.构造一维感知哈希值 三.实现程序 1.感知哈希值计算函数 2.计算距离函数 3…

SCI二区TOP|麋鹿群优化算法: 一种新颖的受自然启发的元启发式算法

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年,SO Oladejo受到麋鹿群的繁殖过程启发,提出了麋鹿群优化算法(Elk herd optimizer, EHO)。 2.算法原理 2.1算法思想 EHO灵感来自麋鹿…

vue2 data内对象引用另一个data对象无法使用this的解决办法

背景:data内有一复杂对象,并且内部一属性经常修改,每次修改的话属性.属性会很长,所以希望引用另一简单对象,但data内this用不了。(集合数组是地址引用,基本数据类型这么操作没意义) 如: 解决办法…

字节码编程javassist之定义方法和返回值

写在前面 源码 。 本文看下如何使用javassist来定义方法和返回值。 1:源码 package com.dahuyou.javassist.generateFieldAndMethod;import javassist.*;import java.lang.reflect.Method;public class JustDoIt222 {public static void main(String[] args) thr…

数值分析笔记(五)线性方程组解法

三角分解法 A的杜利特分解公式如下: u 1 j a 1 j ( j 1 , 2 , ⋯ , n ) , l i 1 a i 1 / u 11 ( i 2 , 3 , ⋯ , n ) , u k j a k j − ∑ m 1 k − 1 l b m u m j ⇒ a k j ( j k , k 1 , ⋯ , n ) , l i k ( a i k − ∑ m 1 k − 1 l i n u m k ) /…

苹果电脑能玩赛博朋克2077吗 如何在mac上运行赛博朋克2077 crossover能玩什么游戏

各位喜欢赛博朋克风的一定不能错过《赛博朋克2077》。那么《赛博朋克2077》是一款什么样的游戏?《赛博朋克2077》在苹果电脑上可以运行吗?一起来看看介绍吧。 一、《赛博朋克2077》是一款什么样的游戏? 《赛博朋克2077》是一款由CD Projekt …

[激光原理与应用-98]:南京科耐激光-激光焊接-焊中检测-智能制程监测系统IPM介绍 - 2 - 什么是激光器焊接? 常见的激光焊接技术详解

目录 一、什么是激光焊接 1.1 概述 1.2 激光焊接的优点 二、激光焊接的应用 2.1 哪些场合必须使用激光焊接 1. 汽车制造业 2. 航空航天领域 3. 电子行业:消费类电子3C 4. 医疗器械制造 5. 新能源锂电池行业 6. 其他领域 三、激光焊接的分类 3.1 按焊接…