jvm014-垃圾回收器
摘要:###1.GC分类与性能指标 ####1.1.垃圾回收器概述 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本。 从不同角度分析垃圾收集器,可以将GC分为不同的类型。 ####1.2.垃
阅读全文
posted @
2021-09-23 16:02
whn051799
阅读(100)
推荐(0)
jvm013-垃圾回收相关概念
摘要:###1.System.gc()的理解 在默认情况下,通过system.gc()或者Runtime.getRuntime().gc() 的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。 然而System.gc() 调用附带一个免责声明,无法保证对垃圾收集
阅读全文
posted @
2021-09-22 17:47
whn051799
阅读(75)
推荐(0)
jvm012-垃圾回收相关算法
摘要:对象存活判断 在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段。 那么在JVM中究竟是如何标记一个死亡对象呢?
阅读全文
posted @
2021-09-22 14:48
whn051799
阅读(36)
推荐(0)
jvm011-垃圾回收概述
摘要:###1.什么是垃圾? 垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。 关于垃圾收集有三个经典问题: 哪些内存需要回收? 什么时候回收? 如何回收? 垃圾收集机制是Java的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代
阅读全文
posted @
2021-09-22 10:06
whn051799
阅读(37)
推荐(0)
jvm010-StringTable
摘要:###1.String的基本特性 String:字符串,使用一对""引起来表示 String声明为final的,不可被继承 String实现了Serializable接口:表示字符串是支持序列化的。 String实现了Comparable接口:表示string可以比较大小 String在jdk8及以
阅读全文
posted @
2021-09-06 17:54
whn051799
阅读(41)
推荐(0)
jvm009-执行引擎
摘要:###1.执行引擎概述 执行引擎属于JVM的下层,里面包括解释器、及时编译器、垃圾回收器 执行引擎是Java虚拟机核心的组成部分之一。 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则
阅读全文
posted @
2021-09-06 17:09
whn051799
阅读(84)
推荐(0)
jvm008-对象实例化及直接内存
摘要:###1.对象实例化 面试题 美团: 对象在JVM中是怎么存储的? 对象头信息里面有哪些东西? 蚂蚁金服: Java对象头有什么? ####1.1. 创建对象的方式 new:最常见的方式、Xxx的静态方法,XxxBuilder/XxxFactory的静态方法 Class的newInstance方法:
阅读全文
posted @
2021-09-06 16:13
whn051799
阅读(61)
推荐(0)
jvm007-方法区
摘要:从线程共享与否的角度来看 ###1.栈、堆、方法区的交互关系 ###2.方法区的理解 官方文档:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5.4 ####2.1.方法区在哪里? 《Java虚拟机规范》中
阅读全文
posted @
2021-09-06 15:19
whn051799
阅读(58)
推荐(0)
jvm006-堆
摘要:###1.堆(Heap)的核心概述 堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,但是进程包含多个线程,他们是共享同一堆空间的。 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块
阅读全文
posted @
2021-08-31 10:57
whn051799
阅读(51)
推荐(0)
jvm005-本地方法接口和本地方法栈
摘要:###1.什么是本地方法? 简单地讲,一个Native Method是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C中,你可以用extern "
阅读全文
posted @
2021-08-31 09:26
whn051799
阅读(51)
推荐(0)
jvm004-虚拟机栈
摘要:###1.虚拟机栈概述 ####1.1.虚拟机栈出现的背景 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 ####1.2.初步印象 有不少Java开发
阅读全文
posted @
2021-08-30 17:48
whn051799
阅读(43)
推荐(0)
jvm003-运行时数据区及程序计数器
摘要:###1.运行时数据区 ####1.1.概述 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载-> 验证 → 准备 → 解析 → 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区 内存是非常重要的系
阅读全文
posted @
2021-08-24 15:10
whn051799
阅读(52)
推荐(0)
jvm002-类加载子系统
摘要:笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) https://www.bilibili.com/video/BV1PJ411n7xZ https://www.yuque.com/u21195183/jvm/rq9lt4 ###1.内存结构概述 Class文件 类加载
阅读全文
posted @
2021-08-23 10:44
whn051799
阅读(58)
推荐(0)
jvm001-JVM与Java体系结构
摘要:笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) https://www.bilibili.com/video/BV1PJ411n7xZ https://www.yuque.com/u21195183/jvm/zq4x30#25f9c7fa ###1.前言 作为Java
阅读全文
posted @
2021-08-04 16:14
whn051799
阅读(218)
推荐(0)