02 2020 档案
摘要:《深入理解Java虚拟机》第3章读书笔记 本文介绍了如何判断对象是否存活,三种垃圾回收算法,分析比较了几种垃圾收集器的特点。本文并非原创,是《深入理解Java虚拟机》第3章的整理、总结和补充。 对象已死? 垃圾收集器在对堆进行回收前,要先判断哪些对象“存活”,哪些已经“死去”。 引用计数算法 给对象
阅读全文
摘要:在JVM中,除了程序计数器外,虚拟机内存中的其他几个运行时区域都有发生OutOfMemoryError异常的可能,本篇就来深入剖析一下各个区域出现OOM异常的情形,以及如何解决各个区域的OOM问题。 本篇主要包括如下内容: Java堆溢出 运行时常量池和方法区溢出 本地内存溢出 Java堆溢出 Ja
阅读全文
摘要:花括号MC(huakuohao-mc):关注JAVA基础编程及大数据,注重经验分享及个人成长。 Java 的 I/O 流,说简单也简单,说复杂也复杂。复杂是因为进行一次常规的文件 I/O 操作通常要用到很多 I/O 基础类,这很容易让新手产生困惑。简单是因为它的设计思想其实很简单。只要理解了它的设计
阅读全文
摘要:本文简单介绍了 ArrayList,并对扩容,添加,删除操作的源代码做分析。能力有限,欢迎指正。 ArrayList是什么? ArrayList 就是数组列表,主要用来装载数据。底层实现是数组 Object[] elementData,当我们装载的是基本数据类型 int, long, boolean
阅读全文
摘要:1 前言 在学习 JUC 的过程中我发现,JUC 这个包下面的文档写的十分的好,清楚又易于理解,这篇博客便是参考 JUC 中和 Executor 框架相关的一些类文档汇总出来的。 当然了,Executor 框架涉及到的类还是不少的,全部汇总的话时间成本太高,有点亏,所以这里主要就集中在了 Execu
阅读全文
摘要:本文目标是探索在没有使用任何额外插件的情况下,如何使用 Gradle 构建一个 Java 项目,以此对比使用 Java 插件时得到的好处。 初始化项目 使用 Gradle Init 插件提供的 init task 来创建一个 Gradle 项目: gradle init --type basic -
阅读全文
摘要:尽管Java中一切都看作为对象,但是操纵的标识符实际上对象的一个“引用”。 String s; // 这里只是创建了一个引用,而不是一个对象 String s = new String("abcd"); // 使用`new`操作符来创建一个对象,并将其与一个引用相关联 String s = "abc
阅读全文