String中“==”与equal的区别
“==”:主要功能是进行数值相等判断的,如果用在了String对象上,表示的是内存地址数值的比较。
equals:是String所提供的,专门用来字符串的内容进行比较。
String string1 = "ssss";
String string2 = "ssss";
String string4 = new String("ssss");
System.out.println(string1 == string2);//true
System.out.println(string1 == string4);//false
System.out.println(string1.equals(string4));//true
String中的两种实例化:
采用直接赋值:
直接给匿名对象内容,并会在堆内存中开辟一个空间,如果内容一样,则不会在堆内存中开辟新的空间
采用构造方法:
使用了new关键字,则会在堆内存中重新开辟新的内存空间
采用构造方法则会开辟两块内存空间,会产生垃圾,不建议使用。
使用直接赋值不会产生垃圾,并且可以自动入池。