一,数组
1.数组初始化
1.1动态初始化
- 格式:
数据类型[] 数组名 = new 数据类型[数组长度];
int[] arr = new int[3]; // 定义长度为3的int数组,元素默认值为0
double[] scores = new double[5]; // 长度5,元素默认0.0
String[] names = new String[2]; // 长度2,元素默认null
- 特点:先分配内存空间,后赋值,适合提前知道数组长度但不确定元素值的场景。
1.2静态初始化
- 格式:
数据类型[] 数组名 = {元素1, 元素2, ...};
int[] scores = {90, 85, 95}; // 系统自动确定长度为3
String[] fruits = {"苹果", "香蕉", "橙子"};
- 特点:定义时指定元素,系统自动分配长度,适合提前知道元素值的场景。
2.数组元素访问和遍历
2.1访问元素
- 通过索引访问,注意索引越界会抛
ArrayIndexOutOfBoundsException
。
int[] arr = {10, 20, 30};
System.out.println(arr[0]); // 输出10
arr[1] = 25; // 修改元素
2.2遍历数组
(1)普通 for
循环:
int[] nums = {1, 2, 3, 4, 5};
for (int i = 0; i < nums.length; i++) { System.out.print(nums[i] + " "); // 输出:1 2 3 4 5
}
(2)增强 for
循环 :
for (int num : nums) { System.out.print(num + " "); // 输出:1 2 3 4 5
}
3.数组常见操作
数组排序:使用 java.util.Arrays.sort()
方法(升序)
import java.util.Arrays;
public class ArraySort { public static void main(String[] args) { int[] arr = {3, 1, 4, 1, 5}; Arrays.sort(arr); System.out.println(Arrays.toString(arr)); // 输出:[1, 1, 3, 4, 5] }
}
数组复制:Arrays.copyOf()
或 System.arraycopy()
int[] original = {1, 2, 3};
int[] copy1 = Arrays.copyOf(original, 5); // 新长度5,末尾补0
int[] copy2 = new int[3];
System.arraycopy(original, 0, copy2, 0, 3); // 从original[0]复制3个到copy2[0]
二,方法
1.方法定义与调用
(1)无参数无返回值方法
public static void 方法名() { // 方法体 System.out.println("这是无参数无返回值方法");
}
(2)带参数方法
public static void 方法名(数据类型 形参1, 数据类型 形参2, ...) { // 方法体
}
(3)带返回值方法
public static 数据类型 方法名(参数列表) { // 方法体 return 返回值;
}
2.方法重载
定义:同一类中,方法名相同,参数列表(个数、类型、顺序)不同,与返回值无关
public static int sum(int a, int b) { return a + b;
}
public static double sum(double a, double b) { return a + b;
}
public static int sum(int a, int b, int c) { return a + b + c;
}
// 调用:sum(1, 2); // 调用第一个sum;sum(1.5, 2.5); // 调用第二个sum;sum(1, 2, 3); // 调用第三个sum
3.方法参数传递
(1)基本类型传递:传递数据值,形参改变不影响实参
public static void changeNum(int num) { num = 100; // 仅修改形参
}
int number = 50;
changeNum(number);
System.out.println(number); // 输出50(实参未变)
(2)引用类型(如数组)传递:传递内存地址,形参改变影响实参
public static void changeArray(int[] arr) { arr[0] = 99; // 修改数组元素
}
int[] arr = {10, 20, 30};
changeArray(arr);
System.out.println(Arrays.toString(arr)); // 输出[99, 20, 30](实参被修改)