Java中的常用类
Java 中的常用类主要集中在 java.lang(核心基础类,无需导入)、java.util(工具类)、java.io(IO 操作)、java.text(文本处理)等包中,这些类是日常开发的基础,以下按功能分类详解核心常用类:
一、核心基础类(java.lang 包,自动导入)
1. Object 类
- 地位:Java 中所有类的直接或间接父类,所有对象都继承其方法。
- 核心方法:
equals(Object obj):判断对象是否相等(默认比较地址,建议重写)。hashCode():返回对象的哈希码(重写equals必须重写hashCode,保证 “相等对象哈希码相等”)。toString():返回对象的字符串表示(默认格式类名@哈希码,建议重写)。getClass():返回对象的运行时类(反射常用)。wait()/notify()/notifyAll():线程同步通信(已被java.util.concurrent工具替代,不推荐直接使用)。
2. 包装类(8 种,对应基本数据类型)
- 作用:基本类型 → 对象(支持泛型、集合操作、null 值),提供类型转换、常量定义等工具方法。
- 核心类:
Integer、Long、Double、Boolean、Character、Short、Byte、Float。 - 常用功能:
- 类型转换:
Integer.parseInt("123")(字符串→int)、Double.valueOf(3.14)(基本类型→包装类)。 - 常量:
Integer.MAX_VALUE(int 最大值)、Double.NaN(非数字)。 - 自动装箱 / 拆箱(JDK 1.5+):
Integer i = 10;(自动装箱)、int j = i;(自动拆箱)。 - 注意:
Integer缓存 [-128~127] 区间的对象,直接赋值时复用(Integer a=100; Integer b=100; a==b → true;a=200; b=200; a==b → false)。
- 类型转换:
3. String 类
- 特性:不可变字符串(底层是
char[]或byte[],修改会创建新对象),线程安全。 - 核心方法:
- 字符串比较:
equals()(内容相等)、equalsIgnoreCase()(忽略大小写)、compareTo()(字典序比较)。 - 字符串操作:
length()(长度)、charAt(int index)(取字符)、substring(int beginIndex)(截取子串)、concat(String str)(拼接)、replace(String old, String new)(替换)。 - 查找 / 判断:
contains(CharSequence s)(是否包含子串)、startsWith(String prefix)(是否以前缀开头)、endsWith(String suffix)(是否以后缀结尾)、indexOf(String str)(子串首次出现索引)。 - 分割 / 转换:
split(String regex)(按正则分割)、toUpperCase()/toLowerCase()(大小写转换)、trim()(去除首尾空白,JDK 11+ 用strip()支持全角空白)。
- 字符串比较:
- 扩展:可变字符串用
StringBuilder(非线程安全,效率高)或StringBuffer(线程安全,效率低)。
4. 数字相关类
- Math 类:提供数学运算静态方法(无需实例化):
- 基本运算:
Math.abs(-10)(绝对值)、Math.max(3,5)(最大值)、Math.min(2,4)(最小值)。 - 三角函数 / 指数:
Math.sin(Math.PI)(正弦)、Math.pow(2,3)(2³=8)、Math.sqrt(16)(平方根 = 4)。 - 随机数:
Math.random()(返回 [0.0,1.0) 随机 double)。
- 基本运算:
- BigInteger/BigDecimal:处理超大整数 / 高精度小数(解决基本类型精度丢失问题):
BigInteger:支持无限精度整数运算(add()、subtract()、multiply()、divide())。BigDecimal:用于金融计算(避免double精度误差),需指定精度和舍入模式(setScale(2, RoundingMode.HALF_UP)保留 2 位小数,四舍五入)。
二、工具类(java.util 包,需导入)
1. 集合框架(核心容器)
- List:有序、可重复集合:
ArrayList:基于动态数组,查询快、增删慢(日常开发首选)。LinkedList:基于双向链表,增删快、查询慢(适合频繁插入删除场景)。- 常用方法:
add()(添加元素)、get(int index)(获取元素)、remove(int index)(删除元素)、size()(集合大小)。
- Set:无序、不可重复集合:
HashSet:基于哈希表,查询 / 增删快(无序)。TreeSet:基于红黑树,自动排序(需元素实现Comparable或传入Comparator)。
- Map:键值对集合(键唯一,值可重复):
HashMap:基于哈希表,查询 / 增删快(JDK 1.8+ 数组 + 链表 + 红黑树),无序。TreeMap:基于红黑树,键自动排序。LinkedHashMap:有序(保留插入顺序或访问顺序)。- 常用方法:
put(K key, V value)(存键值对)、get(K key)(根据键取值)、containsKey(K key)(判断键是否存在)、keySet()(获取所有键)、values()(获取所有值)。
2. 日期时间类(JDK 8+ 推荐)
- 替代旧版
Date/Calendar(线程不安全、API 繁琐),核心包java.time:LocalDate:日期(年 - 月 - 日),如LocalDate.now()(当前日期)、LocalDate.of(2025, 12, 5)(指定日期)。LocalTime:时间(时 - 分 - 秒),如LocalTime.now()、LocalTime.of(14, 30, 0)。LocalDateTime:日期 + 时间(年 - 月 - 日 时 - 分 - 秒),常用方法plusDays(1)(加 1 天)、minusMonths(2)(减 2 月)、format(DateTimeFormatter)(格式化)。DateTimeFormatter:日期时间格式化(线程安全),如DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")。
- 示例:
java运行
LocalDateTime now = LocalDateTime.now(); String formatNow = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); LocalDateTime parseTime = LocalDateTime.parse("2025-12-05 14:30:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
3. 其他工具类
- Arrays:数组操作工具类(静态方法):
Arrays.sort(int[] a)(数组排序)、Arrays.toString(int[] a)(数组转字符串)、Arrays.copyOf(int[] original, int newLength)(数组复制)、Arrays.asList(T... a)(数组转 List)。
- Collections:集合操作工具类(静态方法):
Collections.sort(List<T> list)(集合排序)、Collections.reverse(List<?> list)(反转集合)、Collections.max(Collection<?> coll)(获取最大值)、Collections.synchronizedList(List<T> list)(将非线程安全集合转为线程安全)。
- Scanner:控制台输入工具:
java运行
Scanner scanner = new Scanner(System.in); String str = scanner.next(); // 读取字符串(空格分隔) int num = scanner.nextInt(); // 读取整数 scanner.close();
三、文本处理类(java.text 包)
1. SimpleDateFormat(日期格式化,JDK 8 前常用)
- 注意:线程不安全,需避免多线程共享实例。
- 示例:
java运行
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr = sdf.format(new Date()); // Date → 字符串 Date date = sdf.parse("2025-12-05 14:30:00"); // 字符串 → Date
2. DecimalFormat(数字格式化)
- 用于格式化数字(保留小数、千分位等)。
- 示例:
java运行
DecimalFormat df = new DecimalFormat("###,###.00"); // 千分位+保留2位小数 String numStr = df.format(12345.678); // 结果:12,345.68
四、IO 操作类(java.io 包)
1. 字节流(处理二进制文件:图片、视频、音频)
- 输入流:
FileInputStream(读取文件)、BufferedInputStream(缓冲流,提高效率)。 - 输出流:
FileOutputStream(写入文件)、BufferedOutputStream(缓冲流)。 - 示例(复制文件):
java运行
try (InputStream in = new BufferedInputStream(new FileInputStream("source.jpg")); OutputStream out = new BufferedOutputStream(new FileOutputStream("target.jpg"))) { byte[] buf = new byte[1024]; int len; while ((len = in.read(buf)) != -1) { out.write(buf, 0, len); } } catch (IOException e) { e.printStackTrace(); }
2. 字符流(处理文本文件:.txt、.java 等)
- 输入流:
FileReader、BufferedReader(支持readLine()读取整行)。 - 输出流:
FileWriter、BufferedWriter(支持newLine()换行)。 - 示例(读取文本文件):
java运行
try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); }
3. 转换流(字节流 ↔ 字符流)
InputStreamReader:字节输入流 → 字符输入流(指定编码)。OutputStreamWriter:字节输出流 → 字符输出流(指定编码,避免中文乱码)。
五、其他常用类
1. System 类
- 静态工具类,提供系统级操作:
System.out.println()(控制台输出)。System.currentTimeMillis()(获取当前时间戳,毫秒级)。System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)(数组复制,效率高)。System.exit(int status)(退出程序,0 正常退出,非 0 异常退出)。
2. Runtime 类
- 表示 Java 运行时环境,单例模式(通过
Runtime.getRuntime()获取实例):exec(String command):执行系统命令(如Runtime.getRuntime().exec("notepad.exe")打开记事本)。availableProcessors():获取 CPU 核心数。totalMemory()/freeMemory():获取 JVM 总内存 / 空闲内存。
总结
Java 常用类的核心集中在:
- 基础层:
Object、包装类、String、Math(构建数据基础)。 - 容器层:集合框架(
ArrayList、HashMap等,存储数据)。 - 工具层:
Arrays、Collections、日期时间类(简化开发)。 - IO 层:字节流 / 字符流(数据读写)。
掌握这些类的核心方法和使用场景,能大幅提升开发效率。实际开发中,优先使用 JDK 8+ 新特性(如
java.time 日期类、Stream API),替代老旧 API(如 Date、Vector)。

浙公网安备 33010602011771号