java如何传参数
传递参数的基本方式
Java中传递参数主要通过值传递(Pass by Value)实现,无论参数是基本数据类型还是对象引用,传递的都是值的副本。
基本数据类型:传递的是变量值的副本,方法内修改不影响原变量。
void modifyValue(int x) {
x = 10;
}
int num = 5;
modifyValue(num); // num仍为5
对象引用:传递的是对象引用的副本,方法内通过引用修改对象属性会影响原对象。
class Person {
String name;
}
void modifyObject(Person p) {
p.name = "Alice";
}
Person person = new Person();
person.name = "Bob";
modifyObject(person); // person.name变为"Alice"
可变参数(Varargs)
适用于参数数量不确定的场景,语法为类型... 变量名,底层转为数组处理。
void printValues(String... values) {
for (String s : values) {
System.out.println(s);
}
}
printValues("A", "B", "C"); // 输出A, B, C
通过集合或数组传递
若需传递多个参数且类型一致,可使用集合(如List)或数组。
void processList(List<Integer> list) {
list.add(100);
}
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
processList(numbers); // numbers变为[1, 100]
使用Builder模式(复杂参数)
当参数较多时,可通过Builder模式增强可读性和灵活性。

class QueryBuilder {
private String table;
private String where;
QueryBuilder setTable(String table) { this.table = table; return this; }
QueryBuilder setWhere(String where) { this.where = where; return this; }
String build() { return "SELECT * FROM " + table + " WHERE " + where; }
}
String sql = new QueryBuilder().setTable("users").setWhere("id=1").build();
注意事项
- 基本类型与引用类型区别:基本类型传递副本,引用类型传递引用的副本(仍可修改对象内容)。
- 不可变对象(如String):方法内修改会创建新对象,原引用不变。
- 避免副作用:若需保护原对象不被修改,可传递深拷贝副本。






