Jvm

JVM类的加载和加载器

# JVM类的加载和类的加载器 ## 一.类的加载过程 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象 ......
JVM

Java特性和优势,JDK、JRE、JVM的区别

# Java特性和优势 - 简单性 - 面向对象 - 可移值性 - 高性能 - 分布式 - 动态性 - 多线程 - 安全性 - 健壮性 # JDK、JRE、JVM的区别 - JDK:Java Development Kit,Java开发工具包,提供了Java的开发环境和运行环境。 - JRE:Jav ......
特性 优势 Java JDK JRE

jvm中引用的类型和强引用、软引用、弱引用,虚引用

![](https://img2023.cnblogs.com/blog/1892439/202307/1892439-20230717152015005-667927752.png) 转载:https://www.bilibili.com/video/BV1ST411J7Bk/?spm_id_fr ......
类型 jvm

JVM 知识点

## 知识点 1. class 文件结构 2. classloader 3. JVM 运行时数据区 4. 垃圾回收器和垃圾回收算法 5. JIT ## JVM 运行时数据区 运行时数据区是规范的叫法,一般习惯叫做 JVM 内存结构。JVM 的内存结构可以分为公有和私有两部分。公有指的是所有线程都共享 ......
知识点 知识 JVM

【后端面经-Java】JVM内存分区详解

本文主要介绍了JVM内存分区的基本情况,着重介绍了栈、堆、方法区的分区情况,并给出实际代码解释内存分配的过程。 ......
端面 内存 Java JVM

JVM专栏-类加载的时机

# 类加载的时机 ## 类的生命周期 类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括以下 7 个阶段: - 加载 - 验证 - 准备 - 解析 - 初始化 - 使用 - 卸载 验证、准备、解析 3 个阶段统称为连接。 ![Load Class](https://img2023.c ......
时机 专栏 JVM

JVM专栏-类文件结构

## JVM 的“无关性” 谈论 JVM 的无关性,主要有以下两个: - 平台无关性:任何操作系统都能运行 Java 代码 - 语言无关性: JVM 能运行除 Java 以外的其他代码 Java 源代码首先需要使用 Javac 编译器编译成 .class 文件,然后由 JVM 执行 .class 文 ......
结构 专栏 文件 JVM

JVM专栏-内存分配与回收策略

对象的内存分配,就是在堆上分配(也可能经过 JIT 编译后被拆散为标量类型并间接在栈上分配),对象主要分配在新生代的 Eden 区上,少数情况下可能直接分配在老年代,**分配规则不固定**,取决于当前使用的垃圾收集器组合以及相关的参数配置。 以下列举几条最普遍的内存分配规则,供大家学习。 ## 对象 ......
内存 策略 专栏 JVM

Java-JVM-八股文

线程共享区 ![](https://img2023.cnblogs.com/blog/3090785/202306/3090785-20230628171602882-13131299.png) ``` 堆区与方法区是所有线程共享的 栈区:主要存放基本数据类型与对象引用(仅限局部变量,成员变量不管是 ......
八股文 八股 Java-JVM Java JVM

jvm垃圾回收

1.Garbage Collect(垃圾回收) 之前说堆内存中有垃圾回收,比如Young区的Minor GC,Old区的Major GC,Young区和Old区 的Full GC。 但是对于一个对象而言,怎么确定它是垃圾?是否需要被回收?怎样对它进行回收?等等这些问 题我们还需要详细探索。 因为Ja ......
垃圾 jvm

JVM(十五)垃圾回收器概述

JVM (十五)垃圾回收器概述 1 垃圾回收器概述 2 垃圾回收器分类 3 GC的性能指标 4 垃圾回收器的发展迭代史5 垃圾回收器的组合关系 6 查看默认的垃圾回收器 ......
垃圾 JVM

JVM(十六)七种垃圾收集器

### JVM(十六)七种垃圾收集器 #### 0 垃圾回收器的组合关系: - 实现相连的垃圾回收器表示可以搭配使用: - `Serial GC` - `Serial Old GC` - `ParNew GC` - `CMS GC` - `Parallel Scavenge GC` - `Paral ......
垃圾 JVM

JVM专栏-垃圾回收器

> 本文以HotSpot 虚拟机为例, 讲述一下几种常见的垃圾回收器. ## 新生代垃圾收集器 ### Serial 垃圾收集器(单线程) 只开启**一条** GC 线程进行垃圾回收,并且在垃圾收集过程中停止一切用户线程,即 Stop The World。 一般客户端应用所需内存较小,不会创建太多对 ......
垃圾 专栏 JVM

JVM专栏-垃圾回收策略与算法

程序计数器、虚拟机栈、本地方法栈随线程而生,也随线程而灭;栈帧随着方法的开始而入栈,随着方法的结束而 ......
算法 垃圾 策略 专栏 JVM

jvm基础知识

1.jvm基础知识 说明:jvm除了是压测过程中重点关注的内容,也是面试的重点 1.1 基础回顾 java特点: 跨平台 内存泄漏是过程,内存溢出是结果 jdk,jre,jvm的关系 jdk<jre<jvm 数据类型及存储 基本数据类型:存储在栈内存 引用数据类型:值存在堆内存,栈里存堆内存中存放的 ......
基础知识 基础 知识 jvm

JVM内存模型和类加载

内存模型 JVM内存模型主要分为堆、程序计数器、方法区、虚拟机栈和本地方法栈。 堆 堆中包含了字符串常量池。 程序计数器 记录线程执行的字节码的地址。 方法区 存放已被虚拟机加载的类相关信息,包括类信息、运行时常量池(存放编译生成的字面量和符号引用)。当类加载到内存后,JVM把类文件常量池中的内容存 ......
模型 内存 JVM

JVM垃圾收集

默认垃圾收集器 JDK1.7和JDK1.8默认垃圾收集器都是ParallelScavenge(新生代)+ParallelOld(老年代)JDK1.9默认垃圾收集器G1 查看命令:java -XX:+PrintCommandLineFlags -version G1 JDK 1.7推出的垃圾收集器,特 ......
垃圾 JVM

jvm注意事项 - 指令集出现this关键字

首先如果在虚拟机中出现了this关键字,那么在栈帧中调用了非static方法。大家都知道,非static方法是需要一个对象的没这个对象的地址就是这个this,如果局部变量表中就存在这个this了,那么他就一定是个非static方法。 如果this存在,则操作的指令集的顺序的下标就为 0,其他变量的顺 ......
指令 注意事项 关键字 事项 关键

Java虚拟机(JVM):第五幕:自动内存管理 - HotSpot算法细节以及低延迟垃圾收集器

一、HotSpot算法细节 1、根节点枚举:所有的收集器在根节点枚举的时候,必须暂停用户线程,同时要保证一致性的快照中得以进行。一致性:整个枚举期间执行子系统看起来就像是冻结在某一个时间点上,不会出现分析过程中,根节点的对象应用关系还在不断变化的情况。 2、安全点:用户程序执行到某一些位置的时候,才 ......
算法 细节 内存 垃圾 HotSpot

JVM七大核心系统精讲 从基础理论到高级应用

第1章 从这里开始全面提升技术深度–课前准备 试看1 节 | 15分钟从这里开始全面提升技术深度–课前准备 第2章 JVM基础原理篇-透彻理解类加载子系统11 节 | 132分钟本章是关于装载器原理的,主要围绕类加载子系统展开。在本章,你将能够轻松理解类加载的基本过程,从源码层面理解类加载器的工作原 ......
基础理论 七大 核心 理论 基础

JVM垃圾回收

## 内存分配和回收原则 ### 对象优先在 Eden 区分配 - 当 Eden 区没有足够空间进行分配时,虚拟机将发起一次 Minor GC。 - GC 期间虚拟机又发现 `对象` 无法存入 Survivor 空间,所以只好通过 **分配担保机制** 把新生代的对象提前转移到老年代中去,老年代上的 ......
垃圾 JVM

JVM GC配置指南

本文旨在简明扼要说明各回收器调优参数,如有疏漏欢迎指正。 #### 1、JDK版本 以下所有优化全部基于JDK8版本,强烈建议低版本升级到JDK8,并尽可能使用update_191以后版本。 #### 2、如何选择垃圾回收器 响应优先应用:面向C端对响应时间敏感的应用,堆内存8G以上建议选择G1,堆 ......
指南 JVM

JVM(十四)垃圾回收的一些额外点

### JVM(十四)垃圾回收的一些额外点 #### 1 System.gc()的理解 - 在默认情况下,通过`System.gc()`或者`Runtime.getRuntime().gc()`的调用,会显式触发`Full GC`,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存 - `S ......
垃圾 JVM

JVM(七)方法区

### JVM(七)方法区 #### 1 方法区 - 方法区和Java堆一样,是各个**线程共享**的内存区域,**用于存储编译后的字节码中的类的机构信息,如运行时常量池、属性方法数据以及方法、构造器的字节码** - 方法区在JVM启动的时候被创建,并且它的实际物理内存空间和Java堆区一样都是可以 ......
方法 JVM

JVM(九)执行引擎

### JVM(九)执行引擎 #### 1 执行引擎概述 - 执行引擎是Java虚拟机核心的组成部分之一 - 虚拟机是一个相对于物理机的概念,这两种机器都有代码执行能力,区别在于**物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的**,而**虚拟机的执行引擎是由软件自主实现的,因此 ......
引擎 JVM

JVM(十)StringTable

### JVM(十)StringTable #### 1 String的基本特性 - **String即字符串,通过一对引号""表示**,String创建的方式主要有 - String s = "abc"; // 字面量的方式 - String s = new String("abc"); // 类 ......
StringTable JVM

JVM(十二)垃圾清除阶段算法

### JVM(十二)垃圾清除阶段算法 - 垃圾清除阶段是指,当成功区分出内存区域中的存活对象和死亡对象之后,GC接下来的任务就是**执行垃圾回收,释放掉无用对象所占用的内存空间,以便有足够的可用内存空间为新对象分配内存**。 - 目前在JVM中比较常见的三种垃圾收集算法是`标记-清除算法(Mark ......
算法 垃圾 阶段 JVM

JVM(十三)分代收集、增量收集以及分区算法

### JVM(十三)分代收集、增量收集以及分区算法 #### 1 分代收集算法 ​ 前面的所有算法中,没有一种算法能够完全替代其他算法,它们都有自己独特的优势和特点,分代收集算法应运而生: - 分代收集算法对不同生命周期的对象采取不同的收集方式,一般划分为新生代和老年代,以便提高回收效率 > 在J ......
增量 算法 JVM

JVM(八)对象的实例化内存布局与访问定位

### JVM(八)对象的实例化内存布局与访问定位 #### 1 对象创建的方式 - **new** - 变形1: - **Class的`newInstance()`**,即反射 > Class的`newInstance`反射的使用较为苛刻,要求只能调用空参的构造器,而且权限必须是public > ......
布局 实例 对象 内存 JVM

JVM(十一)垃圾回收概述和垃圾标记阶段的算法

### JVM(十一)垃圾回收概述和垃圾标记阶段的算法 #### 1 Java垃圾回收概述 - **什么是垃圾?** - 垃圾是在**程序运行过程中不被任何指针指向的对象**,这个对象就是需要被回收的垃圾 - **为什么要进行垃圾回收?** - 如果不及时对内存中的垃圾进行清理,那么这些垃圾对象所占 ......
垃圾 算法 标记 阶段 JVM