public class API_Boolean {
public static void main(String[] args) {
// 第一次操作
String str = "aaa";
String newStr = test(str);
System.out.println(str); // "aaa"
// 第二次操作
String a = "xxx";
a = a + "yyy";
System.out.println(a); // "xxxyyy"
}
public static String test(String s) {
s = s + "bbb";
return s;
}
相关问题
- Delete Messages from a Topic in Apache Kafka
- Jackson Deserialization not calling deserialize on
- How to maintain order of key-value in DataFrame sa
- StackExchange API - Deserialize Date in JSON Respo
- Difference between Types.INTEGER and Types.NULL in
把 String newStr = test(str);
改成 str = test(str);
你的本意是第一次应该输出newStr,误写成str,test方法并未改变main方法的str值,因为test方法参数不是引用类型
String属于值传递,所以调用test()方法后str的值未改变,第二次是直接在当前函数中操作赋值,值会改变
照这个逻辑,每次调用方法,我的参数都可能被修改?还要ref,out关键字干嘛?
请将第一句输出改成: System.out.println(newStr);
String是引用类型,只是编译器对其做了特殊处理。