字符串常量是String类的匿名对象
在一个程序开发中,任何一个整数都是int型,任意小数默认都是double,但是对于字符串而言,首先程序之中不会提供有字符串这样的基本数据类型,可以提供的只是一个String类,所以任何使""定义的字符串实际上描述的都是一个String类的匿名对象。
String str = “abcd”;所谓的String类对象的直接赋值直接描述的是将一个匿名对象设置一个具体的引用名字。
class test{
public static void main(String args[]){
String str = "mldn";
System.out.println("mldn".equals(str));//ture
}
}
字符串常量可以明确的调用equals()方法实现对象相等比较
结论:程序中的确没有字符串常量,有的只是String类的匿名对象 。
关于对象相等判断得小技巧:
在以后进行项目开发的时候,如果在某些数据是有用户输入,并且要求这些数据为一个指定内容的情况下,建议将字符串的常量写在前面。
equals()方法里面提供有一个回避null的判断,所以如果将字符串常量写在前面,name调用equals()方法的时候永远都不可以能出现“NulllPointerException”,字符串是一个匿名对象,匿名对象一定是一个开好堆内存的对象。
版权声明:本文为weixin_46245201原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。