摘要: 1. System.gc() 的理解 在默认情况下,通过System.gc()者Runtime.getRuntime().gc()(前者的底层就是后者)的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。 然而System.gc()调用附带一个免责声明,无法 阅读全文
posted @ 2020-12-08 15:44 哈哈丶丶 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 1. 标记阶段算法 简单来说,垃圾回收 分成两步, 第一步找出垃圾,第二步进行回收,而标记阶段使用的算法,就是 为了找出谁是垃圾 在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。 只有被标记为己经死亡的对象,GC才会在执行垃圾 阅读全文
posted @ 2020-12-08 15:43 哈哈丶丶 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 1. 垃圾回收概述 背景 Java 和 C++语言的区别,就在于垃圾收集技术和内存动态分配上,C语言没有垃圾收集技术,需要我们手动的收集。 垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。 关于垃圾收集有三个经典问题: 哪些内存需要回 阅读全文
posted @ 2020-12-08 11:32 哈哈丶丶 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 1. String的基本特性 String:字符串,使用一对 “” 引起来表示 String s1 = "mogublog" ; // 字面量的定义方式 String s2 = new String("moxi"); // new 对象的方式 String声明为final的,不可被继承 String 阅读全文
posted @ 2020-12-08 10:00 哈哈丶丶 阅读(530) 评论(0) 推荐(1) 编辑