hi,运维,你懂java吗--no.4:jvm-概述

龙叔运维 龙叔运维     2022-12-28     151

关键词:

        作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。

        本文为《Hi,运维,你懂Java吗》系列文章 第四篇,敬请关注后续系列文章

        欢迎关注  龙叔运维(公众号)  持续分享运维经验

前言

        本篇对java的JVM进行初步的拆分讲解,希望大家可以有一个整体概念,JVM是java运维工作中很重要的点哦。

1、JVM组成

        JVM核心内容一共分为四大块:类加载器,运行时数据区,本地方法库接口,执行引擎

        而对运维来说最重要的就是要掌握运行时数据区。

2、类加载器

        类加载器的作用就是将class文件字节码内容加载到JVM的运行时数据区中。

        类加载器按照加载的内容来看可以分为:        

  • 启动类加载器(Bootstrap ClassLoader): 负责加载存放在 <JAVA_HOME>\\lib 目录中的核心类库,如rt.jar、resources.jar等(或者被 -Xbootclasspath 参数所指定的路径中的,并且是虚拟机识别的类库)。这个加载器是 C++ 编写的,随着JVM启动。
  • 扩展类加载器(Extension ClassLoader): 负责加载<JAVA_HOME>\\lib\\ext 目录中的类库,(同样也可以用 java.ext.dirs 系统变量来指定路径)。
  • 应用程序类加载器(Application ClassLoader): 负责加载用户类路径 classpath 上所有的 jar 包和 .class 文件。
  • 自定义类加载器: 可以支持一些个性化的扩展功能。

3、运行时数据区

        对于运维来讲,运行时数据区是最需要掌握的知识点

        分为 方法区(元空间)、堆、虚拟机栈、本地方法栈、程序计数器

        这里不多讲,回单开章节详细讲解

4、本地方法库接口

        首先,什么是本地方法?

        一个Native Method 就是一个java调用非java代码的接口。该方法的实现由非java语言实现,比如C 。定义一个native method时,并不提供实现体,因为由非java实现。


        本地方法库接口的作用是融合不同的编程语言为java所用。

5、执行引擎

        类加载器只负责加载,而class文件是否可以执行,这里就要看执行引擎的了。

                执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以。简单来说,JVM中的执行引擎充当了将高级语言翻译为机器语言的译者。

        执行引擎在执行的过程中究竟需要执行什么样的字节码指令完全依赖于JVM中的程序计数器。每当执行完一项指令操作后,程序计数器就会更新下一条需要被执行的指令地址。

————完

hi,运维,你懂java吗--no.4:jvm-概述

    作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。    本文为《Hi,运维,你懂Java吗》系列文章第四篇,敬请关注后续系列文章    欢迎关注 龙叔运维(公众... 查看详情

hi,运维,你懂java吗-no.1:初识java

        作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。        本文为《Hi,运维,你懂Java吗》系列文章 第一篇,敬请关注后续系列文章        欢迎关注 ... 查看详情

hi,运维,你懂java吗-no.1:初识java

        作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。        本文为《Hi,运维,你懂Java吗》系列文章 第一篇,敬请关注后续系列文章        欢迎关注 ... 查看详情

hi,运维,你懂java吗--no.5:jvm--方法区&元空间

作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。本文为《Hi,运维,你懂Java吗》系列文章第四篇,敬请关注后续系列文章欢迎关注龙叔运维(公众号)持续分享运... 查看详情

hi,运维,你懂java吗-no.2:jdk介绍及安装

        作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。        本文为《Hi,运维,你懂Java吗》系列文章 第二篇,敬请关注后续系列文章        欢迎关注 ... 查看详情

hi,运维,你懂java吗-no.2:jdk介绍及安装

        作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。        本文为《Hi,运维,你懂Java吗》系列文章 第二篇,敬请关注后续系列文章        欢迎关注 ... 查看详情

hi,运维,你懂java吗-no.3:java系统的启动(代码片段)

        作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。        本文为《Hi,运维,你懂Java吗》系列文章 第三篇,敬请关注后续系列文章        欢迎关注 ... 查看详情

hi,运维,你懂java吗-no.3:java系统的启动(代码片段)

        作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。        本文为《Hi,运维,你懂Java吗》系列文章 第三篇,敬请关注后续系列文章        欢迎关注 ... 查看详情

hi,运维,你懂java吗-no.1:初识java

        作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。        本文为《Hi,运维,你懂Java吗》系列文章 第一篇,敬请关注后续系列文章        欢迎关注 ... 查看详情

hi,运维,你懂java吗-no.2:jdk介绍及安装

        作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。        本文为《Hi,运维,你懂Java吗》系列文章 第二篇,敬请关注后续系列文章        欢迎关注 ... 查看详情

面试必问的jvm运行时数据区,你懂了吗?

前言Java 虚拟机的运行时数据区经常在面试中被拿来提问,很多概念在市面上有各种各样的说法,搞的不少同学应该是懵逼的。当我们陷入不知道哪个说法是正确的情况时,最好的参考就是源码和规范。在面试中࿰... 查看详情

你懂java多线程吗java多线程技能

1、进程和线程一个程序就是一个进程,而一个程序中的多个任务则被称为线程。进程是表示资源分配的基本单位,又是调度运行的基本单位。线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。举个例子:打... 查看详情

面试必问的jvm运行时数据区,你懂了吗?(代码片段)

前言Java 虚拟机的运行时数据区经常在面试中被拿来提问,很多概念在市面上有各种各样的说法,搞的不少同学应该是懵逼的。当我们陷入不知道哪个说法是正确的情况时,最好的参考就是源码和规范。在面试中࿰... 查看详情

jvm线上运维常用手册(代码片段)

JVM常见指令查看Java进程PIDjpsjstackjmapjstat查看Java进程PIDps-ef|grepjavajpsjps-l-q不输出类名、Jar名和传入main方法的参数-m输出传入main方法的参数-l输出main类或Jar的全限名-v输出传入JVM的参数转换16进制printf"%x\\n"[线程id]jstackjstack[opt... 查看详情

面试必问的jvm类加载机制,你懂了吗?

前言本次带来JVM 的另一块重要内容,类加载机制,不废话,直接开怼。正文1、类加载的过程。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初... 查看详情

jvm面试必问的cms,你懂了吗?(代码片段)

前言虽然CMS已经是很古老的垃圾回收器了,大家现在动不动就G1、ZGC啥的,但是据我所了解,还是有很多公司的生产环境主要使用的CMS,包括我自己呆过的几家大厂也是。因此在JVM面试中,CMS也是问的最多的&#x... 查看详情

jvm面试必问的cms,你懂了吗?(代码片段)

前言虽然CMS已经是很古老的垃圾回收器了,大家现在动不动就G1、ZGC啥的,但是据我所了解,还是有很多公司的生产环境主要使用的CMS,包括我自己呆过的几家大厂也是。因此在JVM面试中,CMS也是问的最多的&#x... 查看详情

思科路由运维之hsrp的概念及配置

HSRP(HotStandbyRoutingProtocol)热备份路由选择协议,是一种Cisco私有的技术。这个技术确保了当网络边缘设备或接入链路出现故障时,用户通信能迅速并透明地恢复,以此为IP网络提供冗余性。HSRP使组内的Cisco路由器能互相监视对方... 查看详情