HoRain云小助手个人主页 个人专栏: 《Linux 系列教程》《c语言教程》⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧让大家从底层了解C把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘一起解密网络协议在运行中协议的基本运行机制《docker容器精解篇》全面深入解析 docker 容器从基础到进阶涵盖原理、操作、实践案例助您精通 docker。《linux系列》本专栏主要撰写Linux干货内容从基础到进阶知识由抽象到简单通俗易懂帮你从新手小白到扫地僧。《python 系列》本专栏着重撰写Python相关的干货内容与编程技巧助力大家从底层去认识Python将更多复杂的知识由抽象转化为简单易懂的内容。《试题库》本专栏主要是发布一些考试和练习题库涵盖软考、HCIE、HRCE、CCNA等目录⛳️ 推荐专栏介绍一、java.lang—— 唯一不用 import 的包二、java.util—— 日常工具大本营三、java.iovs java.nio—— 文件 流四、java.net—— 网络五、java.timeJDK 8 引入—— 日期时间就它了六、java.math—— 精确计算七、java.util.concurrent—— 并发工具箱八、java.sql—— JDBC老但还在九、JDK 8 / 11 / 17 新增 —— 版本感知速览十、第三方事实上常用三件套Java 常用类库其实就是写 Java 每天离不开的那几个java.*包按使用频率排下来基本就这八块lang → util → io/nio → net → time → math → concurrent → sql。每包 headline 类 一句定位再补 JDK 8/11/17 新增的别再用老 API提醒最后带一句第三方三件套。一、java.lang—— 唯一不用 import 的包自动导入所有类都能直接写名字。类 / 接口干嘛的Object所有类的根equals/hashCode/toString/wait/notify都在这String/StringBuilder/StringBuffer字符串StringBuilder单线程快StringBuffer线程安全慢包装类Integer/Long/Double/Boolean基本类型 → 对象缓存-128~127Integer.valueOf(1)比new好Math/StrictMathsqrt/min/max/random()Systemout/err/currentTimeMillis()/getenv()/exit()Thread/Runnable/ThreadLocal最原始的并发原语现在新代码优先java.util.concurrentThrowable/Exception/RuntimeException异常体系根Comparable/Iterable/AutoCloseablefor-each、泛型、try-with-resources 的语言级依赖 JDK 8 起String加了join()JDK 11 加repeat(int)/strip()/lines()比trim()智能strip()认 Unicode 空白。二、java.util—— 日常工具大本营这块最大拆成几小块看 集合框架面试 80% 考点在这接口Collection/List/Set/Map/Queue/Deque实现ArrayList数组查快改慢、LinkedList链表头尾操作快HashMap数组链表红黑树无序、LinkedHashMap保插入序、TreeMap红黑树按 key 排序HashSet/TreeSetArrayDeque栈/队列首选比Stack类好工具类Arrays数组操作、Collections排序/unmodifiableList等、ObjectsrequireNonNull、哈希✅ JDK 9List.of(1,2,3)/Set.of()/Map.of()创建不可变集合比Collections.unmodifiableList(new ArrayList(...))简洁也省内存。⏱ 老日期别用了Date/Calendar/SimpleDateFormat—— 非线程安全、设计烂JDK 8 起被java.time替代。 其他小工具Random、Scanner、UUID、regex.Pattern子包重点两个java.util.function——Function/Predicate/Supplier/ConsumerLambda Stream 的配套接口java.util.stream—— Stream APIJDK 8 引入filter/map/reduce流水线三、java.iovsjava.nio—— 文件 流java.io传统阻塞 I/O还在大量用字节流InputStream/OutputStream→FileInputStream/FileOutputStream/BufferedInputStream字符流Reader/Writer→FileReader/BufferedReader/PrintWriterFile—— 老的文件抽象已被Path替代序列化那套Serializable/ObjectInputStream/ObjectOutputStream上一轮聊过java.nioJDK 1.4新代码首选Path/Paths/Files——Files.readString(Path.of(a.txt))一行读文件JDK 11 起ByteBuffer/Channel—— 非阻塞 零拷贝高并发/大文件才直接摸StandardOpenOption—— 枚举控制读写追加等 新代码读文件Files.readString(Path.of(...))或Files.lines()别再BufferedReader try-catch一堆样板了。四、java.net—— 网络老三样URL/URI/InetAddress、Socket/ServerSocketTCP、DatagramSocketUDPHttpURLConnection已过时JDK 11 起用java.net.http.HttpClient支持 HTTP/2 异步 WebSocket链式调用String body HttpClient.newHttpClient() .send(HttpRequest.newBuilder(URI.create(https://example.com)).build(), HttpResponse.BodyHandlers.ofString()) .body();五、java.timeJDK 8 引入—— 日期时间就它了全面替代Date/Calendar全部不可变 线程安全类用途LocalDate/LocalTime/LocalDateTime不带时区的日期时间ZonedDateTime/ZoneId带时区Instant时间轴上的一个点存数据库用这个Duration秒/纳秒 /Period年/月/日时间间隔DateTimeFormatter解析/格式化替代SimpleDateFormat// 老写法别再写 Date d new Date(); SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd); // 新写法 LocalDate today LocalDate.now(); String s DateTimeFormatter.ofPattern(yyyy-MM-dd).format(today);六、java.math—— 精确计算BigInteger—— 任意精度整数不会溢出BigDecimal—— 精确小数钱必须用这个配RoundingModeBigDecimal a new BigDecimal(0.1); BigDecimal b new BigDecimal(0.2); System.out.println(a.add(b)); // 0.3double 做不到七、java.util.concurrent—— 并发工具箱老Thread/Runnable太原始企业代码基本走这线程池ExecutorService/ThreadPoolExecutor/Executors高级CompletableFuture异步编排类似 JS Promise并发容器ConcurrentHashMap/CopyOnWriteArrayList锁 原子ReentrantLock/AtomicInteger/CountDownLatch/CyclicBarrier/Semaphore JDK 21 虚拟线程Thread.ofVirtual()出来后很多线程池 阻塞 IO场景可以换成虚拟线程吞吐量量级提升。八、java.sql—— JDBC老但还在DriverManager/Connection/Statement/PreparedStatement/ResultSet现在新项目基本走 MyBatis / JPA / Spring Data JDBC 了裸 JDBC 只在内嵌工具或教学里见。九、JDK 8 / 11 / 17 新增 —— 版本感知速览面试常问你用 JDK 8 但知道 11/17 加了啥吗这几样必须知道JDK 8里程碑Lambda、StreamAPI、Optional、java.time、接口 default 方法、Nashorn已删JDK 11LTSvar局部类型推断、HttpClient、String.repeat/strip/lines()、Files.readString/writeString()、删java.xml.ws/java.corba、弃用 AppletJDK 17LTSrecord数据载体替代 Lombok DTO、密封类sealed、instanceof模式匹配、switch表达式增强JDK 21最新 LTS虚拟线程、SequencedCollection、String模板预览十、第三方事实上常用三件套标准库之外实际项目几乎必引的日志SLF4JLogback门面 实现别直接用log4j老版有 CVEJSONJacksonObjectMapper或GsonFastJSON 老版漏洞多单元测试JUnit 5Test/Assertions顺带一提Lombok在 DTO 场景被 JDK 17record抢了不少地盘但Builder/Slf4j还是香。按包记就一句话lang 是根util 是日常io/nio 管文件net 管网络time 管日期math 管精确数concurrent 管并发sql 管数据库——八块覆盖 90% 日常编码。如果想再往下挖可以挑Stream API 的并行流坑、ConcurrentHashMap1.8 为什么放弃分段锁、或者CompletableFuture异步编排——都是面试能从常用类库一路问到源码的延伸点。❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧
HoRain云--Java常用类库终极指南
发布时间:2026/7/4 3:41:14
HoRain云小助手个人主页 个人专栏: 《Linux 系列教程》《c语言教程》⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧让大家从底层了解C把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘一起解密网络协议在运行中协议的基本运行机制《docker容器精解篇》全面深入解析 docker 容器从基础到进阶涵盖原理、操作、实践案例助您精通 docker。《linux系列》本专栏主要撰写Linux干货内容从基础到进阶知识由抽象到简单通俗易懂帮你从新手小白到扫地僧。《python 系列》本专栏着重撰写Python相关的干货内容与编程技巧助力大家从底层去认识Python将更多复杂的知识由抽象转化为简单易懂的内容。《试题库》本专栏主要是发布一些考试和练习题库涵盖软考、HCIE、HRCE、CCNA等目录⛳️ 推荐专栏介绍一、java.lang—— 唯一不用 import 的包二、java.util—— 日常工具大本营三、java.iovs java.nio—— 文件 流四、java.net—— 网络五、java.timeJDK 8 引入—— 日期时间就它了六、java.math—— 精确计算七、java.util.concurrent—— 并发工具箱八、java.sql—— JDBC老但还在九、JDK 8 / 11 / 17 新增 —— 版本感知速览十、第三方事实上常用三件套Java 常用类库其实就是写 Java 每天离不开的那几个java.*包按使用频率排下来基本就这八块lang → util → io/nio → net → time → math → concurrent → sql。每包 headline 类 一句定位再补 JDK 8/11/17 新增的别再用老 API提醒最后带一句第三方三件套。一、java.lang—— 唯一不用 import 的包自动导入所有类都能直接写名字。类 / 接口干嘛的Object所有类的根equals/hashCode/toString/wait/notify都在这String/StringBuilder/StringBuffer字符串StringBuilder单线程快StringBuffer线程安全慢包装类Integer/Long/Double/Boolean基本类型 → 对象缓存-128~127Integer.valueOf(1)比new好Math/StrictMathsqrt/min/max/random()Systemout/err/currentTimeMillis()/getenv()/exit()Thread/Runnable/ThreadLocal最原始的并发原语现在新代码优先java.util.concurrentThrowable/Exception/RuntimeException异常体系根Comparable/Iterable/AutoCloseablefor-each、泛型、try-with-resources 的语言级依赖 JDK 8 起String加了join()JDK 11 加repeat(int)/strip()/lines()比trim()智能strip()认 Unicode 空白。二、java.util—— 日常工具大本营这块最大拆成几小块看 集合框架面试 80% 考点在这接口Collection/List/Set/Map/Queue/Deque实现ArrayList数组查快改慢、LinkedList链表头尾操作快HashMap数组链表红黑树无序、LinkedHashMap保插入序、TreeMap红黑树按 key 排序HashSet/TreeSetArrayDeque栈/队列首选比Stack类好工具类Arrays数组操作、Collections排序/unmodifiableList等、ObjectsrequireNonNull、哈希✅ JDK 9List.of(1,2,3)/Set.of()/Map.of()创建不可变集合比Collections.unmodifiableList(new ArrayList(...))简洁也省内存。⏱ 老日期别用了Date/Calendar/SimpleDateFormat—— 非线程安全、设计烂JDK 8 起被java.time替代。 其他小工具Random、Scanner、UUID、regex.Pattern子包重点两个java.util.function——Function/Predicate/Supplier/ConsumerLambda Stream 的配套接口java.util.stream—— Stream APIJDK 8 引入filter/map/reduce流水线三、java.iovsjava.nio—— 文件 流java.io传统阻塞 I/O还在大量用字节流InputStream/OutputStream→FileInputStream/FileOutputStream/BufferedInputStream字符流Reader/Writer→FileReader/BufferedReader/PrintWriterFile—— 老的文件抽象已被Path替代序列化那套Serializable/ObjectInputStream/ObjectOutputStream上一轮聊过java.nioJDK 1.4新代码首选Path/Paths/Files——Files.readString(Path.of(a.txt))一行读文件JDK 11 起ByteBuffer/Channel—— 非阻塞 零拷贝高并发/大文件才直接摸StandardOpenOption—— 枚举控制读写追加等 新代码读文件Files.readString(Path.of(...))或Files.lines()别再BufferedReader try-catch一堆样板了。四、java.net—— 网络老三样URL/URI/InetAddress、Socket/ServerSocketTCP、DatagramSocketUDPHttpURLConnection已过时JDK 11 起用java.net.http.HttpClient支持 HTTP/2 异步 WebSocket链式调用String body HttpClient.newHttpClient() .send(HttpRequest.newBuilder(URI.create(https://example.com)).build(), HttpResponse.BodyHandlers.ofString()) .body();五、java.timeJDK 8 引入—— 日期时间就它了全面替代Date/Calendar全部不可变 线程安全类用途LocalDate/LocalTime/LocalDateTime不带时区的日期时间ZonedDateTime/ZoneId带时区Instant时间轴上的一个点存数据库用这个Duration秒/纳秒 /Period年/月/日时间间隔DateTimeFormatter解析/格式化替代SimpleDateFormat// 老写法别再写 Date d new Date(); SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd); // 新写法 LocalDate today LocalDate.now(); String s DateTimeFormatter.ofPattern(yyyy-MM-dd).format(today);六、java.math—— 精确计算BigInteger—— 任意精度整数不会溢出BigDecimal—— 精确小数钱必须用这个配RoundingModeBigDecimal a new BigDecimal(0.1); BigDecimal b new BigDecimal(0.2); System.out.println(a.add(b)); // 0.3double 做不到七、java.util.concurrent—— 并发工具箱老Thread/Runnable太原始企业代码基本走这线程池ExecutorService/ThreadPoolExecutor/Executors高级CompletableFuture异步编排类似 JS Promise并发容器ConcurrentHashMap/CopyOnWriteArrayList锁 原子ReentrantLock/AtomicInteger/CountDownLatch/CyclicBarrier/Semaphore JDK 21 虚拟线程Thread.ofVirtual()出来后很多线程池 阻塞 IO场景可以换成虚拟线程吞吐量量级提升。八、java.sql—— JDBC老但还在DriverManager/Connection/Statement/PreparedStatement/ResultSet现在新项目基本走 MyBatis / JPA / Spring Data JDBC 了裸 JDBC 只在内嵌工具或教学里见。九、JDK 8 / 11 / 17 新增 —— 版本感知速览面试常问你用 JDK 8 但知道 11/17 加了啥吗这几样必须知道JDK 8里程碑Lambda、StreamAPI、Optional、java.time、接口 default 方法、Nashorn已删JDK 11LTSvar局部类型推断、HttpClient、String.repeat/strip/lines()、Files.readString/writeString()、删java.xml.ws/java.corba、弃用 AppletJDK 17LTSrecord数据载体替代 Lombok DTO、密封类sealed、instanceof模式匹配、switch表达式增强JDK 21最新 LTS虚拟线程、SequencedCollection、String模板预览十、第三方事实上常用三件套标准库之外实际项目几乎必引的日志SLF4JLogback门面 实现别直接用log4j老版有 CVEJSONJacksonObjectMapper或GsonFastJSON 老版漏洞多单元测试JUnit 5Test/Assertions顺带一提Lombok在 DTO 场景被 JDK 17record抢了不少地盘但Builder/Slf4j还是香。按包记就一句话lang 是根util 是日常io/nio 管文件net 管网络time 管日期math 管精确数concurrent 管并发sql 管数据库——八块覆盖 90% 日常编码。如果想再往下挖可以挑Stream API 的并行流坑、ConcurrentHashMap1.8 为什么放弃分段锁、或者CompletableFuture异步编排——都是面试能从常用类库一路问到源码的延伸点。❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧