`
huang552
  • 浏览: 99505 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java基础

阅读更多

  

 

  String a = new String("Y");
  String b = a;
  System.out.println("a:"+a+"   b:"+b);
  a = "N";
  System.out.println("a:"+a+"   b:"+b);
  a = new String("N");
  System.out.println("a:"+a+"   b:"+b);
  
  输出
  a:Y   b:Y
  a:N   b:Y
  a:N   b:Y
  说明:a和b指向了同一地址,当a改变时只是重新指向了新的地址,所以当a改变时b没有跟着变

 

 

 

  card a = new card("Y");
  card b = a;
  System.out.println("a:"+a.getNumber()+"   b:"+b.getNumber());
  a.setNumber("N");
  System.out.println("a:"+a.getNumber()+"   b:"+b.getNumber());
  
  输出
  a:Y   b:Y
  a:N   b:N


  说明:实例a和实例b是指向了同一对象地址,card b = a 其实是把a指向的地址赋值给了b实例,当a对象改变时b对象也会跟着变
  

 

Vector<String> a = new Vector<String>();
  Vector<String> b = a;
  a.add("123");
  b.add("456");
  a = null;
  System.out.println(b == null);
  System.out.println(b.get(0));

 

输出

false
123

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics