Java:流资源的使用和理解

前言最近在做一个需求时,需要在 Linux 服务器上获取某个磁盘上挂载点的大小,写了一段逻辑但是发现有些问题(没有显式的关闭资源)。为了排查是否会造成影响,所以仔细分析了下这段代码,也加深了对 Java 中流资源的理解。这里记录下。实现代码以下是两段代码,第一段是问题代码,第二段是修复后的代码。可以
Java 2026年04月27日 14次浏览

Java:stopWatch用法

前言最近在做项目时发现有使用 stopWatch 工具来实现性能分析,这里记录一下。实现Hutool工具类实现这里使用 Hutool 工具类里的 stopWatch 来实现。示例代码段:package org.example.test;import cn.hutool.core.date.StopW
Java 2026年04月14日 64次浏览

Java:值传递和引用传递

前言今天遇到一个关于 Java 引用导致的 Bug,这个问题其实是一个高频的面试问题,比较考验我们对 Java 中“对象类型传递”的理解。这个问题还是比较基础的,稍微记录一下。实现理论部分首先我们需要明确:Java 中所有的参数传递都是值传递。基本数据类型直接传递的是值,这很直观。Java 中有 8
Java 2025年08月19日 1,083次浏览

多线程:ExecutorService的submit()方法

前言之前我们介绍过在多线程的应用中确保所有任务执行完成的代码用法,我们使用 CountDownLatch 计数器来实现。本文我们将使用 ExecutorService 的 submit() 方法来实现。实现理论submit()和execute()先介绍下 ExecutorService 的 subm
Java 多线程 2025年08月04日 1,510次浏览

Java:Java8函数式接口使用

前言最近遇到 Java8 里的函数式接口,记录一下常规使用。实现函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转换为 Lambda 表达式。Java8 里的函数式接口可分为五大类:消费型接口(Consumer)
Java 2025年03月11日 1,235次浏览

Java:可变参数应该如何传参

前言方法的入参为可变参数时,应该如何传参?实现理论对于入参为可变参数的方法,在传参时把参数转为数组类型即可。代码package demo;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;impo
Java 2024年04月25日 1,380次浏览

Java:使用迭代器在JSONArray中删除或修改元素

前言在 List 或 JSONArray 的遍历中无法直接使用 remove() 方法来删除元素,这是因为 remove() 方法会改变集合的大小,这会直接影响到遍历操作。我们可以使用 Iterator 迭代器来进行操作。实现代码:@GetMapping("/t17")publi
Java 2024年03月18日 1,654次浏览

Java:Stream流遍历对象集合

前言使用 Stream 流遍历元素为对象的集合。实现代码:@GetMapping("/t16")public void test16(){JSONArray jsonArray = new JSONArray();JSONObject jsonObject1 = new JSON
Java 2024年03月18日 1,656次浏览

Java:stream流和parallelStream流

前言在学习过程中遇到 parallelStream 流操作,学习记录一下。实现理论部分此前总结过 stream 流的操作,链接。parallelStream 方法的使用与 stream 相同,只是在创建 stream 流时调用 parallelStream 方法。parallelStream 把 s
Java 2024年02月19日 1,338次浏览

Java:继承中父类与子类构造方法的加载顺序

前言最近在学习过程中发现项目代码中使用了继承来简化核心功能代码,今天又加深了一些理解和体会。实现理论部分先说一下结论:无论通过子类的无参构造还是有参构造方法去实例化子类时,如果没有显式地调用父类的构造方法,那么 Java 会先去隐式地调用父类的无参构造来初始化父类;也可以通过在子类的构造方法中显式地
Java 2024年01月25日 1,496次浏览