摘要: ### JVM(十四)垃圾回收的一些额外点 #### 1 System.gc()的理解 - 在默认情况下,通过`System.gc()`或者`Runtime.getRuntime().gc()`的调用,会显式触发`Full GC`,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存 - `S 阅读全文
posted @ 2023-07-12 16:16 Tod4 阅读(34) 评论(0) 推荐(0) 编辑
摘要: ### JVM(十三)分代收集、增量收集以及分区算法 #### 1 分代收集算法 ​ 前面的所有算法中,没有一种算法能够完全替代其他算法,它们都有自己独特的优势和特点,分代收集算法应运而生: - 分代收集算法对不同生命周期的对象采取不同的收集方式,一般划分为新生代和老年代,以便提高回收效率 > 在J 阅读全文
posted @ 2023-07-12 10:38 Tod4 阅读(89) 评论(0) 推荐(0) 编辑
摘要: ### JVM(十二)垃圾清除阶段算法 - 垃圾清除阶段是指,当成功区分出内存区域中的存活对象和死亡对象之后,GC接下来的任务就是**执行垃圾回收,释放掉无用对象所占用的内存空间,以便有足够的可用内存空间为新对象分配内存**。 - 目前在JVM中比较常见的三种垃圾收集算法是`标记-清除算法(Mark 阅读全文
posted @ 2023-07-12 10:38 Tod4 阅读(28) 评论(0) 推荐(0) 编辑
摘要: ### JVM(十一)垃圾回收概述和垃圾标记阶段的算法 #### 1 Java垃圾回收概述 - **什么是垃圾?** - 垃圾是在**程序运行过程中不被任何指针指向的对象**,这个对象就是需要被回收的垃圾 - **为什么要进行垃圾回收?** - 如果不及时对内存中的垃圾进行清理,那么这些垃圾对象所占 阅读全文
posted @ 2023-07-12 10:37 Tod4 阅读(31) 评论(0) 推荐(0) 编辑
摘要: ### JVM(十)StringTable #### 1 String的基本特性 - **String即字符串,通过一对引号""表示**,String创建的方式主要有 - String s = "abc"; // 字面量的方式 - String s = new String("abc"); // 类 阅读全文
posted @ 2023-07-12 10:37 Tod4 阅读(24) 评论(0) 推荐(0) 编辑
摘要: ### JVM(九)执行引擎 #### 1 执行引擎概述 - 执行引擎是Java虚拟机核心的组成部分之一 - 虚拟机是一个相对于物理机的概念,这两种机器都有代码执行能力,区别在于**物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的**,而**虚拟机的执行引擎是由软件自主实现的,因此 阅读全文
posted @ 2023-07-12 10:36 Tod4 阅读(113) 评论(0) 推荐(0) 编辑
摘要: ### JVM(八)对象的实例化内存布局与访问定位 #### 1 对象创建的方式 - **new** - 变形1: - **Class的`newInstance()`**,即反射 > Class的`newInstance`反射的使用较为苛刻,要求只能调用空参的构造器,而且权限必须是public > 阅读全文
posted @ 2023-07-12 10:36 Tod4 阅读(21) 评论(0) 推荐(0) 编辑
摘要: ### JVM(七)方法区 #### 1 方法区 - 方法区和Java堆一样,是各个**线程共享**的内存区域,**用于存储编译后的字节码中的类的机构信息,如运行时常量池、属性方法数据以及方法、构造器的字节码** - 方法区在JVM启动的时候被创建,并且它的实际物理内存空间和Java堆区一样都是可以 阅读全文
posted @ 2023-07-12 10:35 Tod4 阅读(41) 评论(0) 推荐(0) 编辑