Java面向对象编程 -9.3

字符串常量
字符串常量是String类的匿名函数
现在已经清楚了String类的基本操作形式,但是需要做出一个明确的定义,在程序的开发之中任何的一个整数都是int类型,任意的小数默认都是double类型,但是对于字符串而言,首先程序之中不会提供字符串这样的基本数据类型,那么可以提供的只是String类,所以任何使用“”定义的字符串常量实际上描述的都是String类的匿名对象。

所谓的String类对象的直接赋值直接描述的是,将一个匿名对象设置一个具体的名字。
匿名对象是String实例化对象,实例化对象可以调用equals()方法。

//观察匿名对象
public class name3 {
	public static void main(String args[]){
		String str= null;
		System.out.println("ms".equals(str));
	}
}

此时可以发现字符串对象可以明确调用equals()方法实现对象相等的判断,所以可以得出结论:程序中的确没有字符串常量这种基本类型,有的只是String类的匿名对象。

关于对象相等判断的小技巧:
在以后进项项目开发的时候,如果现在某些数据是由用户输入,并且要求这些数据为一个指定内容的情况下建议将字符串写在前面。


equals()方法里面提供有一个可以回避null的判断,所以如果将字符串常量写在前面,那么调用equals()方法的时候不会出现“NullPointerException”,字符串是一个匿名对象,匿名对象一定是开辟好堆内存空间的对象,不会为空,写在后面可能会造成空指针异常。

原文地址:https://www.cnblogs.com/sakura579/p/12504823.html