初识 JVM 01

这篇具有很好参考价值的文章主要介绍了初识 JVM 01。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JVM JRE JDK的关系

初识 JVM 01,jvm

JVM 的内存机构:程序计数器 虚拟机栈 本地方法栈 堆 方法区

初识 JVM 01,jvm

类加载器

作用:加载class文件

初识 JVM 01,jvm

1  虚拟机在带的类加载器

2  启动类加载器

3  扩展类记载器

4  应用程序类加载器

类加载器在调用的时候是一层层的自下而上 4-》3-》2-》1

双亲委派机制:

  1. 类加载器受到类加载的请求
  2. 将这个请求向上委托给父类加载器去完成,一种向上委托,直到启动类加载起
  3. 启动加载器检查是否能够加载当前这个类,能加载就结束,使用的当前类加载器,否则,抛出日常,或者通知子加载器进行加载

JVM的位置

初识 JVM 01,jvm

 程序计数器

java指令的执行流程:

1  右侧的java源代码编译为左侧的java字节码(右侧第一个方块对应左侧第一个方块)

2  字节码 经过解释器 变为机器码 

3   机器码就可以被cpu来执行

程序计数器的作用就是记住jvm指令的下一条指令的地址 0 3 4 5 6 9 

初识 JVM 01,jvm

 虚拟机栈 

一个方法的内存就是一个栈帧,方法会按照执行的顺序,顺序入栈。

初识 JVM 01,jvm

 栈内存溢出问题

方法过多

栈的内存过大

本地方法栈:

程序在调用本地方法中为其分配的空间地址

用new方法栈创建的东西都会用到堆

堆的内存诊断:jps :当前系统中有哪些java进程

jmap-heap 进程id :查看堆内存的占用情况

三种JVm

Sun hotspot。

Heap :一个JVm只有一个堆内存。堆的内存大小是可以调节的。

初识 JVM 01,jvm

GC垃圾回收,主要是在伊甸园区和养老区~ GC垃圾回收,主要是在伊甸园区和养老区~
假设内存满了,OOM,堆内存不够! java.lang.OutOfMemoryError: Java heap space在JDK8以后,永久存储区改了个名字(元空间); 假设内存满了,OOM,堆内存不够!Java.lang.OutOfMemoryError:在堆空间以后,永久存储区改了个名字(元空间JDK 8);
 

初识 JVM 01,jvm

 永久区

这个区域常驻内存的。用来存放JDK自身携带的Class对象。Interface元数据,存储的是Java运行时的一些环境或类信息~,这个区域不存在垃圾回收!关闭VM虚拟就会释放这个区域的内存~ 这个区域常驻内存的.用来存放JDK自身携带的类对象。接口元数据,存储的是运行时的一些环境或类信息~,这个区域不存在垃圾回收!关闭VM虚拟就会释放这个区域的内存~

一个启动类,加载了大量的第三方jar包。Tomcat部署了太多的应用,大量动态生成的反射类。不断的被加载。直到内存满,就会出现OOM; 一个启动类,加载了大量的第三方JAR包.Tomcat部署了太多的应用,大量动态生成的反射类.不断的被加载.直到内存满,就会出现OOM;

初识 JVM 01,jvm

 文章来源地址https://www.toymoban.com/news/detail-673243.html

默认情况下:分配的总内存是电脑内存的1/4,而初始化的内存:1/64 默认情况下:分配的总内存是电脑内存的1/4,而初始化的内存:1/64

如何解决oom问题

  1. 尝试扩大堆内存看结果 
  2. 分析内存,看一下那个地方出现了问题(专业工具) (分析内存

新生区

·幸存区(form, to)。

老年区 

JVM在进行GC时,并不是对这三个区域统一回收。大部分时候,回收都是新生代~·新生代 JVM在进行GC时,并不是对这三个区域统一回收。大部分时候,回收都是新生代~·新生代

GC回收算法

引用计数法:为每一个对象都配备一个计数器  将计数最小的的扔出去

初识 JVM 01,jvm

 

GC复制算法

初识 JVM 01,jvm

 

初识 JVM 01,jvm

 3  标记清除算法 

初识 JVM 01,jvm

 

初识 JVM 01,jvm

 

 

到了这里,关于初识 JVM 01的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 01-从JDK源码级别剖析JVM类加载机制

    上一篇:JVM虚拟机调优大全 当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM。 通过Java命令执行代码的大体流程如下: 其中loadClass的类加载过程有如下几步: 加载 验证 准备 解析 初始化 使用 卸载 加载:在硬盘上查找并通过IO读入字

    2024年02月09日
    浏览(31)
  • 【JVM】JVM执行流程 && JVM类加载 && 垃圾回收机制等

    目录 🌷1、JVM是什么? 🌷2、JVM的执行流程(能够描述数据区5部分) 🌷3、JVM类加载过程 🌷4、双亲委派机制:描述类加载的过程 问题1:类加载器 问题2:什么是双亲委派模型?  问题3:双亲委派模型的优点 🌷5、垃圾回收机制(重要,针对的是堆)    问题1:判定对象

    2024年02月15日
    浏览(48)
  • 【JVM】JVM概述

    基本介绍 JVM:全称 Java Virtual Machine,即 Java 虚拟机,一种规范,本身是一个虚拟计算机,直接和操作系统进行交互,与硬件不直接交互,而操作系统可以帮我们完成和硬件进行交互的工作 特点: Java 虚拟机基于 二进制字节码 执行,由一套字节码指令集、一组寄存器、一个栈

    2024年01月18日
    浏览(37)
  • 【JVM】JVM常用指令

    性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益。Java 作为最流行的编程语言之一,其应用性能诊断一直受到业界广泛关注。可能造成 Java 应用出现性能问题的因素非常多,例如线程控制、

    2024年02月08日
    浏览(28)
  • JVM——JVM参数指南

    在本篇文章中,你将掌握最常用的 JVM 参数配置。如果对于下面提到了一些概念比如堆、 Java 虚拟机所管理的内存中最大的一块,Java 堆是所有线程共享的一块内存区域,在虚拟机启动时创建。 此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例以及数组都在这里

    2024年02月12日
    浏览(29)
  • JVM——JVM 垃圾回收

    本节常见面试题 问题答案在文中都有提到 如何判断对象是否死亡(两种方法)。 简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。 如何判断一个常量是废弃常量 如何判断一个类是无用的类 垃圾收集有哪些算

    2024年02月12日
    浏览(29)
  • JVM 17 调优指南:如何进行JVM调优,JVM调优参数

    在这篇文章中,我会详细介绍JVM调优的概念、重要性和具体的JVM调优参数。此外,我将提供12个实用的代码示例,每个示例都会包含JVM调优参数和相应的Java代码。 本文已收录于,我的技术网站 ddkk.com,有大厂完整面经,工作技术,架构师成长之路,等经验分享 JVM调优是调整

    2024年02月02日
    浏览(35)
  • JVM 8 调优指南:如何进行JVM调优,JVM调优参数

    这篇文章将详细介绍如何进行JVM 8调优,包括JVM 8调优参数及其应用。此外,我将提供12个实用的代码示例,每个示例都会结合JVM启动参数和Java代码。 本文已收录于,我的技术网站 ddkk.com,有大厂完整面经,工作技术,架构师成长之路,等经验分享 JVM调优是指通过调整Java虚拟

    2024年01月21日
    浏览(43)
  • JVM 11 调优指南:如何进行JVM调优,JVM调优参数

    JVM 11的优化指南:如何进行JVM调优,以及JVM调优参数有哪些”这篇文章将包含JVM 11调优的核心概念、重要性、调优参数,并提供12个实用的代码示例,每个示例都会结合JVM调优参数和Java代码 本文已收录于,我的技术网站 ddkk.com,有大厂完整面经,工作技术,架构师成长之路,

    2024年01月16日
    浏览(43)
  • 【JVM】JVM类加载机制

    JVM的类加载机制,就是把类,从硬盘加载到内存中 Java程序,最开始是一个Java文件,编译成.class文件,运行Java程序,JVM就会读取.class文件,把文件的内容,放到内存中,并且构造成.class类对象 这里的加载是整个类加载的一个阶段,他和类加载是不同的 在整个类加载的过程中 主要任务就是

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包