方法引用
在 Java 中,方法引用(Method Reference) 是 Java 8 引入的一种简洁的语法形式,用于通过方法的名字来引用方法。它是 Lambda 表达式 的一种简化写法,特别适用于需要传递方法作为参数的场景。 ✅ 方法引用的分类方法引用主要有以下四种形式: 类型 语法 示例 说明 静态方法引用 ClassName::staticMethod Math::abs 引用类中的静态方法 实例方法引用(特定对象) instance::method System.out::println 引用对象的实例方法 实例方法引用(任意对象) ClassName::method String::toUpperCase 引用某个类的任意对象的实例方法 构造器引用 ClassName::new ArrayList::new 引用类的构造方法 ✅ 1. 静态方法引用静态方法引用用于引用类的静态方法。 示例:12345678910111213import java.util.Arrays;import java.util.List;public...
lambda
在 Java 中,Lambda表达式 是 Java 8 引入的一个特性,用于简化代码,特别是在需要使用 函数式接口 的场景。它提供了一种简洁的方式来表示匿名函数,使代码更简洁和可读。 ✅1. Lambda 表达式的基本语法Lambda 表达式的语法结构如下: 1(参数列表) -> { 方法体 } 参数列表:可以有 0 个或多个参数。 箭头操作符 ->:用于分隔参数和方法体。 方法体:包含具体的代码逻辑。 示例:1234567891011// 无参数,直接执行Runnable r = () -> System.out.println("Hello, Lambda!");r.run();// 有参数,有返回值interface Calculator { int add(int a, int b);}Calculator calc = (a, b) -> a + b;System.out.println("结果: " + calc.add(5,...
匿名内部类
在 Java 中,匿名内部类 是一种没有名字的类,通常用于简化代码。它用于实现接口或继承类的实例化,通常是在需要创建一次性对象的场景下使用。 ✅ 1. 什么是匿名内部类?匿名内部类 是在声明和实例化类的同时完成的,它没有类名。它可以: 继承一个类 实现一个接口 语法: 123new 父类或接口(参数) { // 重写方法或定义新方法} ✅ 2. 使用场景和示例场景一:继承类的匿名内部类12345678910111213141516171819class Animal { void sound() { System.out.println("动物发出声音"); }}public class Main { public static void main(String[] args) { // 创建匿名内部类继承 Animal Animal cat = new Animal() { ...
正则表达式
正则表达式(Regular Expression,简称 Regex 或 RegExp)是一种用于描述字符串模式的工具,广泛应用于字符串的匹配、搜索、替换和验证等操作。它通过特定的语法规则来匹配字符串中的特定模式。 在 Java 中,正则表达式是通过 java.util.regex 包中的 Pattern 和 Matcher 类来实现的。 ✅ 正则表达式的基本构成1. 字符匹配 . : 匹配任意一个字符(除了换行符) \d : 匹配一个数字字符,等价于 [0-9] \D : 匹配非数字字符,等价于 [^0-9] \w : 匹配一个字母、数字或下划线字符,等价于 [a-zA-Z0-9_] \W : 匹配非字母、数字或下划线字符,等价于 [^a-zA-Z0-9_] \s : 匹配一个空白字符(如空格、制表符、换行符等) \S : 匹配一个非空白字符 \b : 匹配单词边界 \B : 匹配非单词边界 2. 量词 * : 匹配前面的字符零次或多次 + : 匹配前面的字符一次或多次 ? : 匹配前面的字符零次或一次 {n} : 匹配前面字符恰好 n...
LocalDate
在 Java 中,LocalDate 是 java.time 包中的一个类,表示不带时区的日期(年、月、日)。它是 Java 8 引入的 java.time API 的一部分,用于替代 java.util.Date 和 java.util.Calendar。 ✅1. 创建 LocalDate1234567891011121314151617import java.time.LocalDate;public class Main { public static void main(String[] args) { // 获取当前日期 LocalDate today = LocalDate.now(); System.out.println("今天的日期: " + today); // 指定日期 (年, 月, 日) LocalDate date = LocalDate.of(2025, 3, 28); ...
泛型
在 Java 中,泛型(Generics) 是一种提供类型安全和代码复用的机制。它允许你在类、接口和方法中定义类型参数,从而编写更加通用和灵活的代码。 ✅ 1. 为什么需要泛型?在 Java 5 之前,集合类(如 ArrayList)只能存储 Object 类型,这导致了以下问题: 类型不安全:需要强制类型转换,容易出现 ClassCastException。 代码不清晰:无法明确知道集合中存储的具体数据类型。 没有泛型的代码示例: 12345678910111213141516import java.util.ArrayList;public class Main { public static void main(String[] args) { ArrayList list = new ArrayList(); // 使用Object存储 list.add("Hello"); list.add(123); // 不同类型的数据 // 需要强制类型转换 ...
异常
在 Java 中,异常(Exception) 是指程序在运行过程中发生的错误或意外情况。异常机制提供了一种优雅的方式来处理这些错误,避免程序崩溃。 ✅ 1. 异常的分类Java 中的异常分为两大类: (1) Checked Exception(受检异常) 编译期异常,必须处理,否则代码无法编译。 例如:IOException、SQLException、FileNotFoundException 等。 需要用 try-catch 或 throws 处理。 (2) Unchecked Exception(非受检异常) 运行时异常,在程序运行时抛出。 例如:NullPointerException、ArrayIndexOutOfBoundsException 等。 可以不强制处理,但建议通过代码逻辑避免。 ✅ 2. 异常的基本语法(1) 使用 try-catch 处理异常1234567891011public class Main { public static void main(String[] args) { ...
抽象类与接口
在面向对象编程(OOP)中,抽象类(Abstract Class) 和 接口(Interface) 是两种定义类的方式,它们都可以用于定义规范,但它们有一些重要的区别。 1. 抽象类(Abstract Class)定义: 抽象类是不能被实例化的类,通常包含至少一个抽象方法(没有方法体的函数)。 主要用于提供基本实现,并允许子类继承。 既可以包含普通方法(有方法体),也可以包含抽象方法(只有方法声明,没有方法体)。 特点: 不能实例化,只能被继承。 可以包含普通方法和抽象方法。 可以有成员变量(字段),可以定义构造函数。 可以有访问修饰符(public、protected、private)。 示例(Java): 1234567891011121314151617181920212223242526272829303132333435abstract class Animal { String name; // 构造方法 Animal(String name) { this.name = name; }...
枚举类
枚举类(Enum)1. 什么是枚举类?枚举(enum)是一种特殊的类,表示一组固定的常量。它在 Java、C++、Python 等编程语言中广泛应用,通常用于定义状态、类型、方向等不可变值。 2. Java 枚举的基本使用Java 枚举使用 enum 关键字定义,例如: 123public enum Color { RED, GREEN, BLUE;} 特点: enum 实际上是一个类,继承自 java.lang.Enum。 枚举的实例是固定的、有限的,不能通过 new 创建新实例。 每个枚举值本质上是 Color 类的一个静态实例。 使用示例: 12Color c = Color.RED;System.out.println(c); // 输出:RED 3. 枚举类的常见用法(1)枚举类中定义属性和方法12345678910111213141516171819202122public enum Status { SUCCESS(200, "OK"), ERROR(500, "Server...
单例类
单例类(Singleton)单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类在系统中只有一个实例,并提供一个全局访问点。 单例模式的特点 唯一性:整个系统中该类只有一个实例。 全局访问:可以在整个程序中访问这个实例。 延迟初始化(可选):只有在真正需要时才创建实例,提高性能。 单例模式的实现方式1. 饿汉式(Eager Singleton)实现方式 直接在类加载时创建实例,线程安全。 缺点是可能会造成资源浪费(如果实例很早创建,但一直未被使用)。 123456789public class Singleton { private static final Singleton INSTANCE = new Singleton(); // 直接创建实例 private Singleton() {} // 私有构造方法,防止外部创建对象 public static Singleton getInstance() { return INSTANCE; ...