两个基本都一样,
这里就说第一个吧.
这应该属于String的堆内存和栈内存的运行过程,一直不懂,而且总是混淆,有没有能分清的好方法。
第一个
public class Demo01{
public static void main(String args[]){
String str1 = "hello" ; // 实例化字符串对象 -- 这里不叫实例化, 只是在栈初始化一个属性,而且属于局部变量
System.out.println("fun()方法调用之前:" + str1) ;
fun(str1) ; // 调用fun()方法 -- 是值传递,不是引用传递,而str1的值不变,作用域的问题
System.out.println("fun()方法调用之后:" + str1) ; -- 打印的还是局部变量中的str1值,也就是hello
}
public static void fun(String str2){ // 此处的方法由主方法直接调用
str2 = "world" ;
}
}; |