String a = "abc" ,直接在常量池中构建 "abc"对象,将该对象的值赋值给a,,String b = new String("abc");需要在创建对象,在堆内存中开辟空间,, 开辟完空间之后,需要在常量池中构建"abc"对象,将该对象的地址值存储到堆内存的空间中,然后将堆内存中的地址值赋值给b,.相当于创建了两个对象,一个在堆中,一个在常量池中.
这题是考的String类那一块,老师刚讲过,
String a = "abc"; 这是一个建立了一个“abc”对象,直接把地址值给a
String b = new String("abc");这里建立了两个对象,一个是new String对象,一个是“abc”对象,b只是指向new String对象
比较a==b是比较的地址值,肯定不同的