一、今日学习目标理解方法重载的定义、作用与判定规则能准确判断代码是否构成方法重载。掌握 Java 中print、println、println()的区别与使用场景。完成方法相关的编程练习掌握数组打印、求最小值、元素查找、数组拷贝等常见操作的实现逻辑。理解 Java 内存分配机制区分基本数据类型与引用数据类型的核心差异掌握方法调用中的内存原理。二、知识点详解一方法重载1. 什么是方法重载在同一个类中允许存在多个方法名相同但参数列表不同的方法这就是方法重载Overload。2. 方法重载的好处方法名复用可以用同一个方法名处理不同类型 / 数量的参数避免定义大量含义相似但名称不同的方法。调用更便捷调用者无需记忆多个不同的方法名Java 会根据传入的参数自动匹配对应的重载方法。代码可读性强功能相似的方法使用相同名称逻辑更清晰符合 “单一职责” 的设计思想。3. 方法重载的判定规则方法重载的关键是参数列表不同具体分为以下 3 种情况参数个数不同比如add(int a)和add(int a, int b)。参数类型不同比如add(int a, int b)和add(double a, double b)。参数顺序不同类型不同时比如add(int a, double b)和add(double a, int b)。⚠️ 注意方法的返回值、修饰符、参数名不参与重载判定比如int add(int a, int b)和double add(int a, int b)不构成重载。4. 重载代码示例与分析代码分析两个addSum方法的方法名相同参数列表的类型不同intvsdouble因此构成方法重载。执行流程main方法调用addSum(10, 10)传入的是int类型参数匹配第一个重载方法输出int和20。main方法调用addSum(10.1, 10.1)传入的是double类型参数匹配第二个重载方法输出double和20.2。二Java 输出语句print、println、println()1. 三者的核心区别语句作用特点System.out.print(内容)输出指定内容输出后不换行后续输出会接在同一行System.out.println(内容)输出指定内容输出后自动换行后续输出从下一行开始System.out.println()无内容仅输出一个换行符起到空行的作用2. 代码示例与运行结果执行流程println(1,2,3)输出1,2,3并换行光标移动到下一行。println()输出一个空行光标再下移一行。print(4,5,6,)输出4,5,6,光标停在同一行末尾。print(7,8,9)直接在同一行接着输出7,8,9不换行。三方法编程练习练习 1打印数组元素格式化输出题目定义一个方法printArr接收一个int类型数组将数组元素以[元素1,元素2,元素3...]的格式打印输出。完整代码执行流程与结果分析main方法中定义数组arr {1,2,3,4,5,6}调用printArr(arr)。printArr方法中先执行System.out.print([)输出[不换行。进入for循环遍历数组i0~4非最后一个元素输出1,2,3,4,5,。i5最后一个元素直接输出6。循环结束后执行System.out.println(])输出]并换行。运行结果[1,2,3,4,5,6]。练习 2求数组中的最小值题目定义一个方法getMin接收一个int类型数组返回数组中的最小值并在主方法中打印输出。完整代码执行流程与结果分析main方法定义数组arr {16,21,43,5,34,57,6}调用getMin(arr)并打印返回值。getMin方法执行先输出提示语数组中的最小值为。初始化min arr[0] 16。遍历数组从第 2 个元素开始i12116不更新min。i24316不更新min。i3516更新min5。i4~6后续元素均大于 5min保持为 5。循环结束返回min5。练习 3判断数组中是否包含指定元素题目定义一个方法include接收一个int数组和一个目标数字num判断数组中是否存在与num相同的元素若存在则输出数组中有相同的值否则输出数组中没有相同的值。完整代码执行流程与结果分析main方法定义数组arr {46,2,84,96,25,78,3,19}调用include(arr, 4)。include方法遍历数组所有元素都不等于 4循环正常结束。执行循环外的输出语句输出数组中没有相同的值。运行结果数组中没有相同的值。关键问题解析为什么 “不存在相同数据” 的输出要放在循环外面如果放在循环内会怎样若将System.out.println(数组中没有相同的值);写在for循环里会出现问题只要当前元素不等于目标值就会输出一次 “不存在”导致重复输出错误信息。此时数组中只要有一个元素不等于目标值就会输出一次 “不存在”和我们想要的 “遍历完所有元素后仍未找到才输出不存在” 的逻辑不符。正确逻辑循环的作用是逐个检查数组元素是否匹配只要找到一个匹配的就执行return结束方法如果循环结束所有元素都检查完了还没找到匹配的说明数组中确实不存在该元素此时再输出 “数组中没有相同的值”。练习 4数组拷贝截取部分元素题目定义一个方法copyArr接收一个int数组、起始索引from和结束索引to将数组中从from包含到to不包含的元素拷贝到新数组中并返回新数组。完整代码执行流程与结果分析main方法定义数组arr {46,2,84,96,25,78,3,19}调用copyArr(arr, 3, 7)将返回的新数组赋值给newArr。copyArr方法执行计算新数组长度to-from 7-34创建长度为 4 的新数组newArr。遍历原数组从索引 3 到 6i3~6i3arr[3]96→newArr[0]96index1。i4arr[4]25→newArr[1]25index2。i5arr[5]78→newArr[2]78index3。i6arr[6]3→newArr[3]3index4。循环结束返回新数组newArr {96,25,78,3}。main方法遍历新数组并打印四Java 内存分配基本数据类型 vs 引用数据类型1. 核心区别对比对比项基本数据类型引用数据类型存储内容直接存储真实的数值如int a10a中存的就是10存储的是内存地址值如数组、对象变量中存的是堆内存中数据的地址赋值行为赋值时是 “值拷贝”两个变量是独立的赋值时是 “地址拷贝”两个变量指向同一个内存地址修改影响修改其中一个变量的值不会影响另一个变量修改其中一个变量指向的内存中的数据会影响所有指向该地址的变量2. 案例 1基本数据类型赋值public class Test { public static void main(String[] args) { int a 10; int b a; // 把a的值拷贝给bb是独立的 b 20; System.out.println(a); // 输出10 System.out.println(b); // 输出20 } }分析a和b是两个独立的变量修改b的值不会影响a。3. 案例 2引用数据类型赋值数组public class Test { public static void main(String[] args) { int[] arr1 {1,2,3}; int[] arr2 arr1; // 把arr1的地址拷贝给arr2两者指向同一个数组 arr2[0] 100; System.out.println(arr1[0]); // 输出100 System.out.println(arr2[0]); // 输出100 } }分析arr1和arr2指向堆内存中的同一个数组修改其中一个变量指向的数组元素另一个变量访问时也会看到修改后的值。4. 方法调用中的内存原理基本数据类型作为方法参数传递的是值的拷贝方法内修改参数值不会影响原变量。public class Test { public static void main(String[] args) { int a 10; change(a); System.out.println(a); // 输出10不受影响 } public static void change(int x) { x 20; // 只修改了方法内的x和原变量a无关 } }引用数据类型作为方法参数传递的是地址的拷贝方法内修改地址指向的堆内存数据会影响原变量。public class Test { public static void main(String[] args) { int[] arr {1,2,3}; changeArr(arr); System.out.println(arr[0]); // 输出100被修改了 } public static void changeArr(int[] a) { a[0] 100; // 修改了堆内存中的数组数据 } }三、今日学习总结方法重载的核心是参数列表不同方法名必须相同返回值、修饰符不参与判定作用是复用方法名、简化调用。print不换行、println换行、println()仅换行三者的区别直接影响输出格式在打印数组等场景中需根据需求选择。方法练习覆盖了数组打印、求最小值、元素查找、数组拷贝核心是通过循环遍历数组结合条件判断实现业务逻辑需注意边界条件如数组最后一个元素、循环结束后的逻辑处理。基本数据类型存储真实值赋值 / 传参是值拷贝互不影响引用数据类型存储地址赋值 / 传参是地址拷贝修改数据会影响所有指向同一地址的变量这是 Java 内存分配的核心考点。