JVM探究

JVM探究

  • 请你谈谈你对JVM的理解?java -> class -> jvm
    java 8虚拟机和之前的变化更新
  • OOM 内存溢出。栈溢出 StackOverFlowError > 怎么分析
  • JVM的常用调优参数 ? 扩大内存
  • 内存快照如何抓取,怎么分析Dump文件?知道吗?
  • 谈谈JVM中,类加载器你的认识? rt-jar ext application
  1. JVM的位置
    在这里插入图片描述

  2. JVM的体系结构
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 类加载器
    在这里插入图片描述
    在这里插入图片描述

  4. 双亲委派机制

  • 首先,通过委派的方式,可以避免类的重复加载,当父加载器已经加载过某一个类时,子加载器就不会再重新加载这个类
  • 另外,通过双亲委派的方式,还保证了安全性。因为Bootstrap ClassLoader在加载的时候,只会加载JAVA_HOME中的jar包里面的类,如java.lang.Integer,那么这个类是不会被随意替换的,除非有人跑到你的机器上, 破坏你的JDK。

双亲委派代码
实现双亲委派的代码都集中在java.lang.ClassLoader的loadClass()方法之中:

protected Class<?> loadClass(String name, boolean resolve)throws ClassNotFoundException{synchronized (getClassLoadingLock(name)) {// First, check if the class has already been loadedClass<?> c = findLoadedClass(name);if (c == null) {long t0 = System.nanoTime();try {if (parent != null) {c = parent.loadClass(name, false);} else {c = findBootstrapClassOrNull(name);}} catch (ClassNotFoundException e) {// ClassNotFoundException thrown if class not found// from the non-null parent class loader}if (c == null) {// If still not found, then invoke findClass in order// to find the class.long t1 = System.nanoTime();c = findClass(name);// this is the defining class loader; record the statssun.misc.PerfCounter.getParentDelegationTime().addTime(t1 - t0);sun.misc.PerfCounter.getFindClassTime().addElapsedTimeFrom(t1);sun.misc.PerfCounter.getFindClasses().increment();}}if (resolve) {resolveClass(c);}return c;}}

在这里插入图片描述

  1. 沙箱安全机制

在这里插入图片描述
在这里插入图片描述

  1. Native
    在这里插入图片描述
    在这里插入图片描述

很重要
7. Pc寄存器
Program Counter Register
在这里插入图片描述

+1+1 线程不乱
8. 方法区 Method Area
此区域属于共享区间
在这里插入图片描述

  1. 栈 stack
    在这里插入图片描述

栈溢出

在这里插入图片描述

栈:8大基本类型+对象引用+实例方法

子帧是为了调用子程序,子程序执行完需要找到原来的父帧的房重新执行
在这里插入图片描述

在这里插入图片描述

  1. 三种JVM
  2. 新生区,老年区
  3. 永久区
  4. 堆内存调优
  5. GC 垃圾回收器
  6. JMM
  7. 总结

1.百度
2.思维导图 需要自己去画一下。


JVM 运行在 操作系统之上
JRE包含JVM

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAP 生产订单中计划成本问题简介

最近财务在月结的时候,发现有生产订单结算的时候有物料不存在计划成本,并且财务顾问反馈这个问题已经存在有一段时间了。通过对生产订单的成本分析按钮查看生产订单的成本 发现确实存在有物料不存在计划成本,但是生产订单存在实际成本。 1、首先想到的是无计划成本的原材料…

使用Python进行图片格式转化/分辨率转化

一.下载python PIY插件库 PIP下载命令: pip install pillow -i https://mirrors.aliyun.com/pypi/simple PIY插件库:pillow Installation - Pillow (PIL Fork) 10.3.0.dev0 documentation 二.分辨率转化 from PIL import Image import osresolution (1024, 1024) with Image…

redis监控

一、Redis监控方法 1、redis info命令 Redis的监控指标主要通过INFO命令获取&#xff0c;该命令可以返回丰富的运行监控信息。info主要有以下几项&#xff0c;因版本不同可能略有差别&#xff1a; # Server redis_version:7.2.4 redis_git_sha1:00000000 redis_git_dirty:0 …

C语言易错知识点:scanf函数

scanf在C语言学习中比较常用&#xff0c;但因为其涉及屏幕缓冲区导致有的时候会调入陷阱&#xff0c;下面分享一下常见的需要注意的事项&#xff1a; 1.输入末尾带有回车\n 当我们输入数据后&#xff0c;最后按下回车时&#xff0c;屏幕缓冲区的末尾都会含有这个字符 scanf的…

Web安全攻防措施

2024最新Web安全攻防教程资料PPT大合集&#xff08;143份&#xff09;.zip 输入验证和过滤&#xff1a;对用户输入进行严格的验证和过滤&#xff0c;以防止SQL注入、跨站脚本攻击&#xff08;XSS&#xff09;等。例如&#xff0c;对特殊字符进行转义处理&#xff0c;限制输入…

代码书写在if __name__ == ‘__main__‘前后的区别

if __name__ __main__这个东西&#xff0c;所有见过python代码的程序猿们一定都不会陌生。为方便理解&#xff0c;有人直接把它等同于java中的主函数。我们今天不是为了来探讨它和Java主函数的异同的&#xff08;因为我已经忘了Java主函数的细节了&#xff0c;也懒得再回顾…&…

leetcode110.平衡二叉树

之前没有通过的样例 return语句只写了一个 return abs(l-r)<1缺少了 isBalanced(root->left)&&isBalanced(root->right);补上就好了 class Solution { public:bool isBalanced(TreeNode* root) {if(!root){return true;}int lgetHeight(root->left);i…

(学习日记)2024.03.11:UCOSIII第十三节:使用优先级的流程 (持续更新)

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

vulntarget-k - 内网渗透

标签 xxl-job rce Spring-Cloud-CVE-2022-22947 nacos auth bypass iox 靶机难度比较简单&#xff0c;都是用用 exp 就好了 拓扑图 网卡设置 首先需要使用虚拟网络编辑器&#xff0c;增加 VMnet1、VMnet2、VMnet3 对三张网卡设置子网 IP VMnet1 192.168.100.0 VMnet2 1…

EM算法详解

EM(Expectation-Maximum)算法也称期望最大化算法,曾入选“数据挖掘十大算法”中,可见EM算法在机器学习、数据挖掘中的影响力。EM算法是最常见的隐变量估计方法,在机器学习中有极为广泛的用途,例如常被用来学习高斯混合模型(Gaussian mixture model,简称GMM)的参数;隐…

SIP-7043 20W SIP网络有源吸顶喇叭

SIP-7043 20W SIP网络有源吸顶喇叭 一、描述 18123651365微信 声卡喊话IP喇叭&#xff0c;IP网络吸顶天花喇叭 SIP-7043VP是我司的一款SIP网络有源吸顶喇叭&#xff0c;具有10/100M以太网接口&#xff0c;内置有一个高品质扬声器&#xff0c;将网络音源通过自带的功放和喇叭…

jpg格式图片怎么生成二维码?扫码看图在线制作方法

多张jpg格式的图片如何做成二维码展示&#xff1f;jpg是现在最常用的一种图片格式&#xff0c;不管是拍摄的照片、设计图片或是其他类型的图片基本上都是这种格式。那么如何将jpg格式的图片放到二维码中展示呢&#xff1f;通过下面的文章内容来分享一下图片制作二维码在线的技巧…

scrcpy远程投屏控制Android

下载 下载后解压压缩包scrcpy-win64-v2.4.zip scrcpy连接手机 1. 有线连接 - 手机开启开发者选项&#xff0c;并开启USB调试&#xff0c;连接电脑&#xff0c;华为手机示例解压scrcpy&#xff0c;在scrcpy目录下打开终端&#xff0c;&#xff08;或添加scrcpy路径为环境变…

前端面试题 ===> 【HTML】

HTML面试题总结 1. 对 HTML 语义化的理解 去掉或者丢失样式的时候能够让页面呈现出清晰的结构&#xff1b;代码结构清晰&#xff0c;方便团队的管理和维护&#xff0c;并且语义化更具有可读性&#xff0c;减少差异化&#xff1b;提升用户体验&#xff1b; 例如&#xff1a;ti…

【数组】41. 缺失的第一个正数【困难】

缺失的第一个正数 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1 输入&#xff1a;nums [1,2,0]输出&#xff1a;3 示例 2 输入&#xff1a;nums [3,4,-1,…

同态滤波算法详解

同态滤波是一种用于增强图像的方法&#xff0c;特别适用于去除图像中的照明不均和阴影。该算法基于照射反射模型&#xff0c;将图像分解为两个分量&#xff1a;照射分量&#xff08;illumination component&#xff09;和反射分量&#xff08;reflection component&#xff09;…

精品基于Uniapp+ssm停车场预约缴费微信小程序的设计与实现

《[含文档PPT源码等]精品微信小程序基于Uniappssm停车场微信小程序的设计与实现》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;Java 后台框架&#xff1a;ssm 安卓框架&…

Python打印输出Linux中最常用的linux命令之示例

一、Linux中的~/.bash_history文件说明&#xff1a; 该文件保存了linux系统中运行过的命令的历史。使用该文件来获取命令的列表&#xff0c;并统计命令的执行次数。统计时&#xff0c;只统计命令的名称&#xff0c;以不同参数调用相同的命令也视为同一命令。 二、示例代码&am…

csp模拟题(201604-2,俄罗斯方块模拟下坠)

题目 问题描述 俄罗斯方块是俄罗斯人阿列克谢帕基特诺夫发明的一款休闲游戏。   游戏在一个15行10列的方格图上进行&#xff0c;方格图上的每一个格子可能已经放置了方块&#xff0c;或者没有放置方块。每一轮&#xff0c;都会有一个新的由4个小方块组成的板块从方格图的上方…

一文掌握Python控制语句操作及实例详解

在 Python 中,控制语句是用于流程控制的重要工具,可以帮助我们根据不同的条件执行不同的代码块。本文将带你快速掌握 Python 中的控制语句操作,并通过实际例子让你更好地理解。 1. 条件控制语句:if-elif-else Python中的条件判断主要依赖于if,elif(else if)和else语句…