public class zuoye6 {
public static void main(String []args){
String []s={"1","2"};
mb(s);
System.out.println(s[0]+s[1]);
}
public static void mb(String s[]){
if(s.length<2){
return;
}
String t=s[0];
s[0]=s[1];
s[1]=t;
}
}
这道题答案为21,怎么回事啊,怎么解释,看了一晚的值传递和引用传递,解释不了啊!跟这个有什么区别啊
public class zuoye6 {
public static void mb(String x,String y){
x.concat(y);
y=x;
}
public static void main(String[] args) {
String a="A";
String b="B";
mb(a,b);
System.out.println(a+"."+b);
}
}
public static void main(String []args){
String []s={"1","2"};
mb(s);
System.out.println(s[0]+s[1]);
}
public static void mb(String s[]){
if(s.length<2){
return;
}
String t=s[0];
s[0]=s[1];
s[1]=t;
}
}
这道题答案为21,怎么回事啊,怎么解释,看了一晚的值传递和引用传递,解释不了啊!跟这个有什么区别啊
public class zuoye6 {
public static void mb(String x,String y){
x.concat(y);
y=x;
}
public static void main(String[] args) {
String a="A";
String b="B";
mb(a,b);
System.out.println(a+"."+b);
}
}
解决方案 »
- tif转pdf,Java heap space如何处理
- for(File f:fileList)是什么意思?
- JFreeChart画股票均线图,如何添加具体数值?
- 通过Java得到的时间与操作系统时间不一致,如何修改Java虚拟机时间?
- scjp的问题
- java生成的md5怎么同c#生成的md5值不一样????
- 转码问题 包含Unicode 转 UTF-8 请进
- 怎样在TextArea中插入表情图片??(如QQ)给分30哦!
- 請問如何用java實現將一個文件複製到另外一個地方呢﹖謝謝﹗
- Java实现单链表的操作,求大神解答!!!
- 求推荐一本JAVA经典工具书,基础知识讲的详细,又有深度的!
- java简单调用
第二个里面的x.concat(y) 没有改变main函数当中a b的字符串引用指向对象的值,因为mb方法传入的是不可变类String的形式参数
mb(s);
s 是数组 ,所以 mb(s)穿进去的是s的指针 ,即s的存放的内存地址的首地址 ,而 mb()中对s做改变 ,也就是对s做改变 ;2、String 是类类型 ,int byte short double float char boolean这些才是 基本类型 ,基本类型参数,传递进去的是 那个值的一份拷贝 , 而 类类型或数组 ,传递进去的是他们在内存中存放的内存地址指针,个人理解是这样,不知道对不对
String 类 是值传递~~源对象不可改变
数组 是引用传递~~会改变