java语言是按照值传递还是引用传递的

2024-11-05 20:40:54
推荐回答(2个)
回答1:

(1):“在Java里面参数传递都是按值传递”这句话的意思是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。
(2):在Java里面只有基本类型和按照下面这种定义方式的String是按值传递,其它的都是按引用传递。就是直接使用双引号定义字符串方式:String str = “Java私塾”;

回答2:

String i = "123";
String j = i;
i = "234";
System.out.println(i); //====> 234
System.out.println(j);//====> 123
基本类型是值传递,j的值不随着i的改变而改变所以是值传递。
StringBuffer sb = new StringBuffer();
sb.append("asd");
StringBuffer sb1 = sb;
sb.delete(0,sb.length());
sb.append("wer");
System.out.println(sb);//====> wer
System.out.println(sb1);//====> wer
对象之间是引用传递,sb1的字符串随sb的变化而变化,是因为两个的值是相同的引用。