/**
* 堆内存(heap):保存每一个对象的属性,使用一个对象时,一定需要一个对应堆内存的指向,而堆内存空间的开辟需要用关键字 *new,每一个对象在刚刚实例化后,里面的属性都是其对应数据类型的默认值,一块堆内存可以被多个栈内存指向
* 栈内存(stack):保存的是一块堆内存的空间地址值,一个栈内存只能保存一个堆内存的空间地址值。
*/
String str = "";//此时并未new对象,但会直接入池保存,并且同样会开辟一块内存空间
str.equals("");//true
String str2 = new String();//使用一个对象时一定要确保对应的堆内存的指向,而堆内存需要关键字new,每个对象被实例化后都有其默认的数据默认值,一块堆内存可以被多个栈内存所指向,也就数关系的引用
str2.equals("")//true String默认是null
new String().equals("")//true 匿名对象,在堆内存开辟一个新的内存空间,因为它没有把空间地址值给任何变量,所以只会被调用一次,当做实参传递,而后等待被GC回收