欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java基础

程序员文章站 2022-03-07 23:21:55
...

  

 

  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

 

 

相关标签: Java