java--面对对象之String类

一、 String类的概述 

    查阅API中的String类的描述,发现String 类代表字符串。继续查阅API发现说字符串是常量;它们的值在创建之后不能更改,这是什么意思呢?其实就是说一旦这个字符串确定了,那么就会在内存区域中就生成了这个字符串。字符串本身不能改变,但str变量中记录的地址值是可以改变的。字符串的本质是一个字符的数组。

    继续查API发现,字符串有大量的重载的构造方法。通过String类的构造方法可以完成字符串对象的创建,那么,通过使用双引号的方式创建对象与new的方式创建对象,有什么不同呢?看如下程序与图解:

String s3 = "abc";
String s4 = new String("abc");
System.out.println(s3==s4);//false
System.out.println(s3.equals(s4));//true,

//因为String重写了equals方法,建立了字符串自己的判断相同的依据(通过字符串对象中的字符来判断)

注意:s3和s4的创建方式有什么不同呢?

 s3创建,在内存中只有一个对象。这个对象在字符串常量池中

 s4创建,在内存中有两个对象。一个new的对象在堆中,一个字符串本身对象,在字符串常量池中

二、String类构造方法

    构造方法是用来完成String对象的创建,下图中给出了一部分构造方法需要在API中找到,并能够使用下列构造方法创建对象。

猜你喜欢

转载自www.cnblogs.com/-dashu/p/9396927.html