首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JVM系列
NASUF
创建于2021-05-15
订阅专栏
JVM学习笔记
等 15 人订阅
共21篇文章
创建于2021-05-15
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
JVM系列(二十)JVM监控及诊断工具-命令行篇
1. jps:查看正在运行的Java进程 1.1 基本情况 jps(Java Process Status):显式指定系统内所有的HotSpot虚拟机进程(查看虚拟机进程信息),可用于查询正在运行的虚
JVM系列(十九)JVM性能监控与调优概述
1. 大厂面试题 JVM性能优化都做了什么? 有做过JVM内存优化吗? 从SQL、JVM、架构、数据库四个方面讲讲优化思路 JVM的编译优化 JVM的诊断调优工具用过哪些? JVM怎么调优,堆内存、栈
JVM系列(十八)类的加载器
1. 概述 类加载器是JVM执行类加载机制的前提 ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的,ClassLoader负责通过各种方式将Class
JVM系列(十七)类的生命周期
1. 概述 在Java中数据类型分为基本数据类型和引用数据类型。基本数据类型由虚拟机预先定义,引用数据类型则需要进行类的加载 按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存
JVM系列(十六)字节码指令集与解析举例
1. 概述 Java字节码对于虚拟机,就类似汇编语言对于计算机,属于基本执行指令 Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代
JVM系列(十五)Class文件结构
1. 概述 1.1 字节码文件的跨平台性 1.1.1 Java语言:跨平台的语言 当Java源代码成功编译成字节码后,如果想在不同的平台上面运行,则无需再次编译 这个优势不再那么吸引人了,Python
JVM系列(十四)垃圾回收(垃圾回收器)
1. GC分类 垃圾收集器没有在JVM规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生出了众多的GC版本 从不同角度分析
JVM系列(十三)垃圾回收(相关概念)
1. System.gc()的理解 在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发Full GC,同事堆老年代和新生代进行回收,尝试释
JVM系列(十二)垃圾回收(概述及相关算法)
1. 垃圾回收概述 垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生 关于垃圾收集有三个经典问题: 哪些内存需要回收? 什么时候回收?
JVM系列(十一)String Table
1. String的基本特性 String:字符串,使用一对“”引起来表示 String声明为final的,不可被继承 String实现了Serializable接口,表示字符串是支持序列化的;实现了
JVM系列(十)执行引擎
1. 执行引擎概述 执行引擎是Java虚拟机核心的组成部分之一 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层
JVM系列(九)直接内存(Direct Memory)
直接内存不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域 直接内存是在Java堆外的、直接向系统申请的内存空间 来源于NIO,通过存在堆中的DirectByteBuffer
JVM系列(八)对象的实例化、内存布局与访问定位
1. 对象的实例化 1.1 对象的创建方式 new(使用构造器) 最常见的方式 变形1:Xxx的静态方法 变形2:XxxBuilder / XxxFactory的静态方法 Class的newInsta
JVM系列(七)运行时数据区(方法区)
1. 栈、堆、方法区的交互关系 从线程共享与否的角度来看: 交互关系: 2. 方法区的理解 2.1 官方文档 参考 https://docs.oracle.com/javase/specs/jvms/
JVM系列(六)运行时数据区(堆)
1. 堆的核心概述 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了,是JVM管理的最大一块内存空间 堆内存的大小是可以调
JVM系列(五)运行时数据区(虚拟机栈和本地方法栈)
1. 虚拟机栈 1.1 虚拟机栈概述 1.1.1 虚拟机栈出现的背景 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小;
JVM系列(四)本地方法接口
1. 本地方法 一个Native Method就是一个Java调用非Java代码的接口。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Ja
JVM系列(三)运行时数据区(概述、线程和程序计数器)
1. 运行时数据区概述 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的
JVM系列(二)类加载子系统
1. 类加载子系统作用 类加载子系统负责从文件系统或者网络中加载Class文件,Class文件在文件开头有特定的文件标识; ClassLoader只负责Class文件的加载,至于它是否可以运行,则由E
JVM系列(一)JVM 概览
JVM笔记(一)JVM 概览1. JVM 整体结构类装载子系统:将class file装载到内存中,生成Class对象,其中涉及到加载、链接、初始化等步骤;运行时数据区:方法区和堆是多线程共享,Jav
下一页