外观
随堂实操任务清单 第 6 讲
💡 操作指南:点击每个任务右上角的 “复制模板代码 📋”,在您的 IDE(IntelliJ IDEA / VS Code)中打开对应类文件并补全核心代码。运行结果请参考下方的 “预期控制台输出” 进行自测比对。
实操 1JVM 栈帧模型与参数值传递 (Pass by Value) 本质演示
ValuePassDemo.javajava
/**
* JVM 栈帧模型与参数值传递 (Pass by Value) 本质演示
* @author MatNoble
*/
public class ValuePassDemo {
public static void changeBasic(int a) {
a = 999; // 修改局部变量副本,外部实参不受影响
}
public static void changeArray(int[] arr) {
arr[0] = 888; // 通过地址副本修改堆内存对象,外部受影响
}
public static void main(String[] args) {
int x = 10;
int[] nums = { 1, 2, 3 };
changeBasic(x);
changeArray(nums);
System.out.printf("基本类型 x 结果: %d (预期 10)\n", x);
System.out.printf("数组元素 nums[0] 结果: %d (预期 888)\n", nums[0]);
}
}实操 2方法重载 (Overload) 规则与多形态计算
MethodOverloadDemo.javajava
/**
* 方法重载 (Overload) 规则与多形态计算
* @author MatNoble
*/
public class MethodOverloadDemo {
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;
}
public static void main(String[] args) {
System.out.println("两个整数相加: " + add(10, 20));
System.out.println("两个浮点相加: " + add(3.14, 2.71));
System.out.println("三个整数相加: " + add(1, 2, 3));
}
}实操 3阶乘与斐波那契数列 (递归 vs 迭代性能与调用栈)
RecursionDemo.javajava
/**
* 随堂实操任务 6:阶乘与斐波那契数列 (递归 vs 迭代性能与调用栈)
* @author MatNoble
*/
public class RecursionDemo {
// 递归计算阶乘 (必须有基线条件防止 StackOverflowError)
public static long factorial(int n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
// 迭代计算斐波那契数列 (高效,无栈溢出风险)
public static long fibonacci(int n) {
if (n <= 1) return n;
long a = 0, b = 1;
for (int i = 2; i <= n; i++) {
long temp = a + b;
a = b;
b = temp;
}
return b;
}
public static void main(String[] args) {
System.out.println("10 的阶乘 (10!): " + factorial(10));
System.out.println("斐波那契数列第 20 项: " + fibonacci(20));
}
}
不想公开提问?
关注公众号 数学思维探究社,后台发送“微积分+问题”,获取一对一解答。