标签:Java

第5页
多线程

Java 中的线程池

阅读(2625)赞(28)

JDK 的 JUC 包中提供了很多与并发相关的类,其中线程池这个类尤为关键。 线程池可以通过重用线程,降低线程创建和销毁造成的资源消耗。 线程池核心参数 线程池类 ThreadPoolExecutor 有 7 个参数: 参数 含义 解释 c...

HashMap 连环追问-码谱记录
Java Map

HashMap 连环追问

阅读(2668)赞(1)

HashMap 是 Java 集合框架中非常重要的一个实现,它有非常多值得借鉴的实现思路。面试中,也被经常问到。 下面将根据一系列的问题,来逐步深入了解 HashMap。 HashMap 底层结构 了解底层结构,将有助于理解更多复杂的设计思...

Java 中的 LinkedList-码谱记录
Java List

Java 中的 LinkedList

阅读(2466)赞(1)

LinkedList 在开发中并不常用,在大多数场景下,我们会采用 ArrayList。本篇将从多个维度解读 LinkedList 与 ArrayList 存在的差异。 底层结构 LinkedList 与 ArrayList 底层结构不同:...

Java List

Java 中的fail-fast 与 fail-safe

阅读(2401)赞(3)

在 Java 中,Set 和 List 可以循环遍历,因为其拥有可迭代能力,主要还是 Iterator 的功劳。 初识 首先看一下二者如何定义: fail-fast 一旦发现遍历的同时有其他人修改,则立即抛出异常 fail-safe 当发现...

Java List

ArrayList 扩容规则

阅读(2021)赞(4)

Java 中,ArrayList 是 List 最经典的实现,由于 ArrayList 底层是数组,掌握其扩容机制十分必要。 下面的讨论,基于 JAVA8,不同的JDK版本,某些规则会有差异。 构造器容量 我们一般在一定一个 ArrayLi...

Java 中的常量池-码谱记录
Java虚拟机

Java 中的常量池

阅读(2549)赞(33)

Java 中有多种常量池,常量池可以实现数据共享,节省内存开销,避免频繁创建对象与销毁对象等诸多好处。 常量池分类 一般,Java 中的常量池被分为以下几类: class 字节码常量池:保存字面量(就是一些字符串和被final修饰的变量)和...

Java GC 垃圾回收与内存管理-码谱记录
Java虚拟机

Java GC 垃圾回收与内存管理

阅读(2790)赞(1)

垃圾收集器 (GC)负责 Java 中的内存管理。因此,程序员不需要显式地处理内存分配和释放。 在 Java 中,JVM 一开始就预留了一定的内存。有时,实际使用的内存明显少于保留量。在这种情况下,我们更愿意将多余的内存返回给操作系统。 这...

Java虚拟机

GC Roots 根节点

阅读(3009)赞(1)

Java 中,垃圾收集器根 GC Roots 是特殊的对象。了解它有助于理解垃圾收集器的工作原理。 GC Roots GC Roots 是Java垃圾收集上下文中使用的术语。它们是垃圾收集器的特殊对象。顾名思义,GC 根是垃圾收集器进程的起...

Java 异常处理 try-catch-finally-码谱记录
Java异常

Java 异常处理 try-catch-finally

阅读(2263)赞(5)

Java 的 try 、catch、finally 代码块有助于编写可能导致程序出现异常的代码。 try 代码块 try 代码块包含应在正常条件下运行的应用程序代码。 例如,读取文件,写入数据库或执行复杂的业务操作。 try { //业务代...

Java异常

Java 异常 InterruptedException

阅读(2700)赞(2)

Java 在调用 wait() 或者 sleep() 方法时,需要处理中断异常 InterruptedException。我们需要了解为什么会出现这个异常,以及如何避免出现这样的异常。 基础回顾 中断异常 InterruptedExcept...