Java 方法

一、Java 方法核心知识点

1. 方法定义与结构
组成部分 说明 示例
修饰符 控制访问权限和方法特性(publicprivatestaticfinal 等) public static
返回值类型 方法返回的数据类型,void 表示无返回值 intStringvoid
方法名 遵循驼峰命名法,见名知意(如 isLeapYear calculateSum
参数列表 输入参数,可为空或包含多个参数(类型 + 变量名) (int a, int b)
方法体 执行具体逻辑,可包含 return 返回结果(非 void 必须返回对应类型) { return a + b; }

示例:判断闰年的方法

public static boolean isLeapYear(int year) {
    return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}

2. 方法重载(Overload)
规则 说明 合法示例 非法示例
方法名相同 同一类中定义多个同名方法 add(int a, int b) add(int a) 与 add(int b)
参数列表不同 参数类型、个数或顺序不同 add(double a, double b) 仅返回值不同(如 int add() vs double add()
与返回值无关 返回值类型不影响重载判定 void print(int a) 和 String print(String s) -

应用场景

// 加法重载示例
public static int add(int a, int b) { return a + b; }
public static double add(double a, double b) { return a + b; }
public static int add(int a, int b, int c) { return a + b + c; }

3. 方法递归
要素 说明 示例
递归公式 将问题分解为更小的同类问题(如 n! = n * (n-1)! 阶乘、斐波那契数列、汉诺塔问题
终止条件 确保递归最终结束(如 n == 1 时返回 1 if (n == 1) return 1;
栈溢出风险 深度过大会导致 StackOverflowError 避免无限递归(如缺少终止条件)

示例:计算阶乘

public static int fac(int n) {
    if (n == 1) return 1;         // 终止条件
    return n * fac(n - 1);        // 递归公式
}

二、数组操作核心要点

1. 数组定义与初始化
方式 语法 特点 示例
静态初始化 直接指定元素值 长度由元素个数自动确定 int[] arr = {1, 2, 3};
动态初始化 指定长度,可后续赋值 默认值(如 int 为 0 int[] arr = new int[5];
混合初始化 动态初始化时部分赋值 未赋值元素保持默认值 int[] arr = new int[5]{1, 2};

2. 数组操作与异常
操作 说明 示例
遍历数组 使用 for 循环或增强 for 循环 for (int i = 0; i < arr.length; i++)
越界访问 访问不存在的索引触发 ArrayIndexOutOfBoundsException arr[5](数组长度为 5 时)
工具类方法 Arrays.toString(arr) 快速输出数组内容 System.out.println(Arrays.toString(arr));

示例:遍历并打印数组

int[] arr = {10, 20, 30};
for (int num : arr) {
    System.out.println(num);
}

三、其他关键内容

1. 异常处理
异常类型 触发场景 解决方案
InputMismatchException 输入数据类型与预期不匹配(如 Scanner 读整数时输入字符串) 使用 try-catch 捕获并处理
ArrayIndexOutOfBoundsException 数组越界访问 检查索引范围(0 ≤ index < length

示例:处理输入异常

Scanner scanner = new Scanner(System.in);
try {
    int num = scanner.nextInt();
} catch (InputMismatchException e) {
    System.out.println("输入类型错误!");
}

2. 代码调试技巧
工具/操作 说明 应用场景
IDEA 断点调试 设置断点、逐行执行、观察变量值 排查逻辑错误、验证循环流程
变量监视 实时查看变量在运行时的值 分析递归调用或复杂计算过程
条件断点 在特定条件下暂停程序(如 i == 5 时停止) 定位特定条件下的问题

四、常见面试考点

  1. 方法重载 vs 方法重写(Override)

    • 重载:同类中,方法名相同,参数列表不同。

    • 重写:子类覆盖父类方法,方法名、参数、返回类型均相同,访问权限不能更严格。

  2. 递归与循环的选择

    • 递归代码简洁但效率低,循环性能更好(避免栈溢出)。

  3. 数组内存分配

    • 数组是引用类型,存储在堆内存中,变量存储数组地址。

  4. 可变参数与数组的区别

    • 可变参数调用更灵活,但本质仍是数组。


总结:掌握方法的定义、重载与递归,以及数组的初始化与操作,是 Java 编程的基础。结合异常处理与调试技巧,可编写健壮且高效的代码,同时轻松应对面试中的相关问题。

你可能感兴趣的:(java,java,开发语言)