编程基础知识

1.equals和==:比较两个字符串要用equals,因为字符串是对象类型,equals比较两个对象的内容。

==:可用于比较基本类型和引用类型。比较基本类型时,比较的是值是否相等;比较引用类型的时候比较的是两个对象的内存地址,即对象的引用(比较在堆中的物理地址或在栈中的内容是否相同)(不同对象内存地址不同)。

String a = "abc";
String b = "abc";
String aa = new String("abc");
String bb = new String("abc");
System.out.println(a==b);
System.out.println(aa==bb);
System.out.println(a.equals(b));

  结果:true,false,true

 String直接赋值,a,b的引用是一样的,这是java中为了节省内存空间,String b = "abc";给b赋值时会在内存中查找有没有“abc”,有的话就让b指向那个地址。

String aa = new String("abc");这个创建对象方式赋值,就会有两个地址存放对象。

你可能感兴趣的:(编程)