【面试重点难点】
字符串是在开发中用得比较多的一种数据类型,字符串类型【String】是Java提供的,我们直接使用即可,我们之前定义的Person等等自定义的类型,里面的方法和属性也是我们自己定义。但是String类是我们在安装jdk开发工具的时候就已经给我们提供了现成的String类,而且该类也有了自己的方法和属性,我们只需要直接使用即可。String(字符串类型)不属于基本数据类型,是属于引用类型的数据。
要实例化一个字符串有几种方式呢?
直接声明字符串【字面量创建字符对象】,使用构造方法。
直接赋值的方式
public class Hello {
public static void main(String[] args) {
//直接声明字符串对象(直接赋值方式创建了一个字符串对象)
String str= "abcd";
//如果能调用str中的方法,表示该对象存在;如果该对象不存在,则调用其方法会出现一个空指向异常。
System.out.println(str.length());
}
}
空指针异常
在主方法中调用一个不存在的对象的方法,就会出现空指向异常,这个异常会在以后学习中和开发中部伴随着你。
使用构造方法创建字符串对象
构造方法分为有参构造和无参构造,字符串也有自己的构造方法。
public class Hello {
public static void main(String[] args) {
//直接声明字符串对象(直接赋值方式创建了一个字符串对象)
String str1= "abcd";
//如果能调用str中的方法,表示该对象存在;如果该对象不存在,则调用其方法会出现一个空指向异常。
String str2=new String("abcd");
String str3=new String(str1);
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str1==str2);
System.out.println(str1.equals(str2));
}
}
使用了构造方法来创建字符串,但是上面的输出结果为什么一个是false一个是true。
总结:
1.字符串的概念(不是基本数据类型)
2.可以直接使用赋值的方式创建字符串对象
3.可以使用String类的构造方法创建字符串对象