java面试题: StringBuffer a=new StringBuffer("A"); StringBuffer b=new StringBuffer("B"); operate

题目: System.out.println(a+","+b); 的值为什么

class Client_port{ 
	 public static void main(String[] args){ 
		   StringBuffer a=new StringBuffer("A"); 
		   StringBuffer b=new StringBuffer("B"); 
		   operate(a,b); 
		   System.out.println("a为"+a);
		   System.out.println("b为"+b);
		   System.out.println(a+","+b); 
		} 
		public static void operate(StringBuffer x, StringBuffer y){ 
		    x.append(y); 
		   
		    y=x; 
		    System.out.println("y为"+y);
		} 
	    } 

结果:

看到这个答案是疑惑的,应该为AB,AB,查阅资料后这是引用类型。下面解释:

a指向A,b指向B,

operate():x指向A,y指向B----------------调用方法:x指向AB,y指向了X为AB

之后:a指向的值变成了AB,b指向的还是B

发布了233 篇原创文章 · 获赞 20 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_42565135/article/details/102922549