在Java语言中将字符串作为对象来处理,可以通过java.lang包来创建字符串对象(这点不同于c语言),在Java中用String str来声明。
创建一个字符串主要有两种方法:

用new创建一个String类的对象

String(char[]) 如:char a[]={“g”,”o”,”o”,”d”};
String str=new String(a);
如:String str=new String(“good”);

String (char a[],int offset,int length)
其中offset表示开始截取字符串的位置,length表示截取字符串的长度(注意不是结束位置)
如:char a[]={“g”,”o”,”o”,”d”};
String str=new String(a,2,4);

直接引用常量池中的字符串常量

如:String str1,str2;
str1=”good”;
str2=”hello world”;

下面对比以下两种方法的不同:
String str1=new String(“good”);
String str2=new String(“good”);
String str3=”good”;
String str4=”good”;
由于str3和str4都是直接引用常量池中的字符串常量”good”的,因此str3和str4的地址是相同的,具有相同的实体;但str3和str4是通过new来创建的两个String类对象,所以str3和str4的地址不相同,即使它们的内容相同。下面用实例来说明:
image.pngimage.png
说明:使用”==”比较运算符时,是比较地址的,而地址又包括纯地址和内容。