jvm
文章平均质量分 86
尚硅谷宋红康jvm教程学习笔记
香树
我们不生产代码,我们只是代码的搬运工
展开
-
JVM面试题(含答案和图和解释)
一个类什么时候被加载,《java虚拟机规范》中并没有强制约束,而是交给虚拟机自由实现,HotSpot虚拟机是按需加载,在需要用到该类的时候加载这个类首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用,并且检查这个类的符号引用代表的类是否已经被加载、解析、初始化。(即判断类元信息是否存在)如果没有,那么在双亲委派模式下,使用当前了类加载器以ClassLoader+包名+类名为key进程查找对应的.class文件。如果没有找到文件,则抛出ClassNotFoundExceptio原创 2022-07-14 22:04:30 · 1553 阅读 · 0 评论 -
JVM性能监控可视化工具——jvisualvm
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录使用:在jdk安装目录中找到jvisualvm.exe,然后双击执行即可打开DOS窗口,输入jvisualvm就可以打开该软件插件的安装...原创 2022-05-08 10:59:39 · 1169 阅读 · 0 评论 -
JVM监控及诊断可视化工具——JConsole
jconsole是Java 5 开始,在JDK中自带的java监控和管理控制平台。用于堆JVM中内存、线程和类等的监控,是一个基于JMX的GUI性能监控工具。如何启动jconsole?方法1:找到jdk安装目录的bin文件夹,双击jconsole方法2:win+r 输入cmd,打开dos窗口,直接输入jconsole我们看到有两种链接方式:本地连接和远程连接。本地连接测试代码:/** * -Xms600m -Xmx600m -XX:SurvivorRatio=8 */.原创 2022-05-07 23:04:54 · 975 阅读 · 0 评论 -
JVM监控及诊断工具-命令行篇
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录01-概述简单命令行工具02 jps:查看正在运行的Java进程基本情况测试基本语法options参数hostid参数03-jstat:查看JVM统计信息基本情况基本语法option参数先以【-class】为例,讲解jstat的用法【interval参数】【count参数】【-t参数】【-h参数】各种option参数的用法JIT相关的垃圾回收相关的jstat 如何排查OOM和内存泄漏04-jinfo:实时查看和修改JVM配.原创 2022-05-07 22:01:51 · 433 阅读 · 0 评论 -
jvm性能调优——概述篇
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录1-大厂面试题2-背景说明1-生产环境中的问题2-为什么要调优3-不同阶段的考虑3-调优概述4-性能优化的步骤第1步(发现问题):性能监控第2步(排查问题):性能分析第3步(解决问题):性能调优5-性能评价/测试指标1-大厂面试题2-背景说明1-生产环境中的问题2-为什么要调优3-不同阶段的考虑3-调优概述4-性能优化的步骤第1步(发现问题):性能监控第2步(排查问题):性能分析第3步(解.原创 2022-05-07 14:40:34 · 191 阅读 · 0 评论 -
中:第4章 再谈类的加载器
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录01-概述1-大厂面试题2-类加载器的分类3-类加载器的必要性4-命名空间5-类加载机制的基本特征6-类加载器之间的关系02-复习:类的加载器分类1-引导类加载器2-扩展类加载器3-系统类加载器4-用户自定义类加载器03-测试不同的类的加载器04-ClassLoader源码解析ClassLoader的主要方法loadClass()剖析SecureClassLoader与URLClassLoaderExtClassLoader与Ap.原创 2022-05-07 11:59:50 · 85 阅读 · 0 评论 -
中篇:第3章 类的加载过程(类的生命周期)详解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录01-概述大厂面试题02-过程一:Loading(加载)阶段1-加载完成的操作2-二进制流的获取方式3-类模型与Class实例的位置4-数组类的加载03-过程二:Linking(链接)阶段1-环节1:链接阶段之Verification(验证)2-环节2:链接阶段之Preparation(准备)3-环节3:链接阶段之Resolution(解析)04-过程三:Initialization(初始化)阶段1-static与final的搭配.原创 2022-05-06 22:12:34 · 276 阅读 · 0 评论 -
中:第2章 字节码指令集与解析举例
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录01-概述执行模型字节码与数据类型指令分析02-加载与存储指令复习:再谈操作数栈与局部变量表1-局部变量压栈指令2-常量入栈指令3-出栈入局部变量表指令03-算数指令所有算术指令举例一个曾经的案例1一个曾经的案例2i++和++i04-类型转换指令01-概述执行模型字节码与数据类型指令分析02-加载与存储指令复习:再谈操作数栈与局部变量表1-局部变量压栈指令举例分析如下: public void .原创 2022-05-06 14:33:18 · 122 阅读 · 0 评论 -
中:第1章 class文件结构
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、概述1.1 字节码文件的跨平台性1.2 Java的前端编译器1.3 透过字节码指令看代码细节二、虚拟机的基石三 、class文件结构四 、使用javap指令解析Class文件一、概述1.1 字节码文件的跨平台性透过字节码指令看代码细节1.2 Java的前端编译器1.3 透过字节码指令看代码细节二、虚拟机的基石三 、class文件结构四 、使用javap指令解析Class文件...原创 2022-05-05 19:47:09 · 268 阅读 · 0 评论 -
jvm——垃圾回收概念以及相关算法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、相关概念1.1 什么是垃圾1.2 为什么需要GC1.3早期垃圾回收1.4 Java 垃圾回收机制1.5 担忧1.5 应该关心哪些区域的回收?二、垃圾回收相关算法2.1 标记阶段:引用计数算法(了解)2.2 标记阶段:可达性分析算法(根搜索算法、追踪性垃圾收集)2.2.1 实现思路2.2.2 GC Roots2.3 对象的 finalization 机制2.3.1 finalize() 方法2.4 虚拟机中的对象一般处于三种可能.原创 2022-05-04 21:32:25 · 124 阅读 · 0 评论 -
StringTable(内含intern()方法的使用)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、String的基本特性1.1 jdk 9 为什么改为 byte[] 存储1.2 String 的基本特性二、String 的内存分配三、String 的基本操作四、字符串拼接操作4.1 概述4.2 字符串拼接的底层细节4.3 拼接操作与 append 操作的效率对比五、intern() 的使用5.1 intern() 方法的说明5.2 new String() 的说明5.2.1 new String(“ab”)会创建几个对象.原创 2022-05-04 17:36:38 · 763 阅读 · 0 评论 -
jvm ——执行引擎
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代.原创 2022-05-04 13:52:43 · 87 阅读 · 0 评论 -
对象实例化、内存布局和访问定位
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、对象的实例化1.1 创建对象的方式1.2 先从字节码的角度看看对象的创建1.3 对象创建的六个步骤二、对象的内存布局三、对象的访问定位一、对象的实例化1.1 创建对象的方式new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法Class的newInstance方法:在JDK9里面被标记为过时的方法,因为只能调用空参构造器,并且权限必须为 publicConstruc.原创 2022-05-02 11:52:19 · 88 阅读 · 0 评论 -
运行时数据区——方法区
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、方法区1.1 从线程共享角度看方法区1.2 栈、堆、方法区的交互关系二、方法区的理解2.1 方法区在哪里2.2 方法区的基本理解1.3 HotSpot方法区演进三、设置方法区大小与OOM3.1 如何设置方法区大小3.2 如何解决方法区的OOM四、方法区的内部结构4.1 方法区存储的是什么4.1.1 类型信息4.1.2 域(Field)信息(成员变量)4.1.3 方法(Method)信息举例五、方法区使用举例六、方法区的演进细.原创 2022-05-01 23:50:15 · 102 阅读 · 0 评论 -
运行时数据区——堆
文章目录一、堆的核心概述一、堆的核心概述一个JVM实例原创 2022-05-01 15:13:57 · 75 阅读 · 0 评论 -
本地方法接口和本地方法栈
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言这一块不属于运行时数据区的部分,一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport se.原创 2022-04-30 22:25:27 · 477 阅读 · 0 评论 -
运行时数据区——虚拟机栈
提示:文章思路是借鉴了宋老师的视频讲解顺序,另外对《深入理解java虚拟机》这本书也是把重点的地方进行了搬运,可以说是很全了,秉承着开源精神和极客精神写了这篇博文,希望读者能够动动尊贵的手指关注、点赞(哥,别老白嫖,总结很辛苦的,拜托了)。文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言与程序计数器一样,java虚拟机栈也是线程私有的,它的生命周期与线程一样。虚拟机栈描述的是java方法执行的内存模型:每个方法被执行的时候,java虚拟机都会同步创建一个栈帧用于存储.原创 2022-04-30 20:12:38 · 108 阅读 · 0 评论 -
运行时数据区——程序计数器(PC寄存器)
提示:本文在编写的时候,思路借鉴了一个博主对这块的理解,原博主博客地址——https://imlql.cn/,加以我的理解和对书和视频的学习,文章思路也是借鉴了宋老师的视频讲解顺序,另外对《深入理解java虚拟机》这本书也是把重点的地方进行了搬运,可以说是很全了,秉承着开源精神和极客精神写了这篇博文,希望读者能够动动尊贵的手指关注、点赞(别老白嫖,总结很辛苦的,拜托了)。文章目录前言一、回顾前言 首先看下《深入理解java虚拟.原创 2022-04-29 23:43:16 · 2960 阅读 · 0 评论 -
类加载器子系统——类加载器与类的加载过程
提示:jvm系列博客是作者观看尚硅谷宋红康以及学习《深入理解java虚拟机》的笔记以及思考。文章目录前言一、类加载子系统作用前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、类加载子系统作用类加载子系统负责从文件系统中或者从网络中加载class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责.原创 2022-04-29 19:04:22 · 515 阅读 · 0 评论