国庆节10月1日
--


嘿,今天咱们不整虚的,就聊聊那些天天写代码、却总在细节上栽跟头的“老熟人”——包装类、String、StringBuilder、Math、Arrays……它们不是什么高冷黑科技,但真要搞错一个点(比如 Integer 缓存、String 不可变、StringBuilder 线程不安全),分分钟让你 debug 到怀疑人生 😅 来,一起捋清楚这些“看似简单,实则暗藏玄机”的常用类。

分类:
装箱:基本类型 → 包装类型。
拆箱:包装类型 → 基本类型。
JDK5前后:
包装类 → String:
String → 包装类:
Integer/Character常用方法:
重要面试题(Integer缓存机制):
直接赋值:String s = “hsp”;
调用构造器:String s = new String(“hsp”);
常量相加:String s = “a” + “b”; 编译器会优化为 ”ab”,在常量池中只生成一个对象。
变量相加:String a = “a”; String b = “b”; String c = a + b;
intern() 方法:返回字符串在常量池中的地址。
| 特性 | String | StringBuffer | StringBuilder |
|---|---|---|---|
| 可变性 | 不可变 (final char[]) | 可变 | 可变 |
| 线程安全 | 安全 (不可变) | 安全(方法有 synchronized 修饰) | 不安全 |
| 效率 | 低 (频繁修改会创建大量对象) | 较高 | 最高 |
| 使用场景 | 少量字符串操作,或作为常量 | 多线程环境下大量字符串操作 | 单线程环境下大量字符串操作 |
String → StringBuffer/StringBuilder:
StringBuffer/StringBuilder → String:
基本介绍:包含用于执行基本数学运算的静态方法。
常用方法:
基本介绍:包含一系列操作数组的静态方法。
常用方法:
常用方法:
Date:表示特定瞬间,精确到毫秒。大部分方法已过时。
SimpleDateFormat:用于格式化和解析日期。
核心类:不可变、线程安全、设计合理。
Instant:时间戳。
DateTimeFormatter:格式化类 (替代 SimpleDateFormat)。
优点:方法丰富 (plusDays, minusHours 等),无偏移问题。
如果你喜欢,那么欢迎来到我的世界!
了解更多暂未播放



"所有的相遇都是久别重逢。"—— 未知


