String
this关键字最大的作用就是让类中的一个方法,访问该类中的另一个方法或属性,
例如:有一个Dog类, 这个dog对象的run方法丈调用他的jump方法。
实例化String对象
public class Student {
public static void main(String [] args) {
// String name="wbk";
String name=new String("wbk");
System.out.println("姓名:"+name);
}
}
而两次运行的结果是一样的,
姓名:wbk
2.string的内容的比较
对于基本数据类型可以通过“==”进行内容得比较,比较简单,但是如果要比较两个字符串是否相等就有一些不同了,
例子:
public class StringDemo04 {
public static void main(String [] args) {
String str1="hello";
String str2=new String("hello");
String str3=str2;
System.out.println("str1 == str2----->"+(str1==str2));
System.out.println("str2 == str3----->"+(str2==str3));
System.out.println("str1 == str3----->"+(str1==str3));
}
}
结果:
str1 == str2----->false
str2 == str3----->true
str1 == str3----->false
虽然str1和str2的值都是hello相同,但是他们在对内存中存在的空间却不相同
,所以结果是false。
那怎么比较呢?
使用equals方法对String的内容进行比较,如下:
public class StringDemo05 {
public static void main(String [] args) {
String str1="hello";
String str2=new String("hello");
String str3=str2;
System.out.println("str1 == str2----->"+(str1.equals(str2)));
System.out.println("str2 == str3----->"+(str2.equals(str3)));
System.out.println("str1 == str3----->"+(str2.equals(str3)));
}
}
结果:
str1 == str2----->true
str2 == str3----->true
str1 == str3----->true
equals()方法是将内容进行比较,所以返回结果都为true,
3.String两种实例化方式的区别:
①.一种是通过直接赋值的方式,
②.是使用标准的new调用构造方法完成实例化
一个字符串就是一个String类的匿名对象,匿名对象就是已经开辟了对内存空间的并可以直接使用的对象。
public class StringDemo05 {
public static void main(String [] args) {
String str1="hello";
// String str2=new String("hello");
String str2="hello";
String str3="hello";
System.out.println("str1 == str2----->"+(str1.equals(str2)));
System.out.println("str2 == str3----->"+(str2.equals(str3)));
System.out.println("str1 == str3----->"+(str2.equals(str3)));
System.out.println("str1 == str2----->"+(str1==str2));
System.out.println("str2 == str3----->"+(str2==str3));
System.out.println("str1 == str3----->"+(str2==str3));
}
}
结果:
str1 == str2----->true
str2 == str3----->true
str1 == str3----->true
str1 == str2----->true
str2 == str3----->true
str1 == str3----->true

*****************************************************************************************
提示: 在java中会提供一个字符串池来保存全部内容。
对于String 的以上操作,在java中成为共享设计,这种设计思路是,在java中形成一个对象池,在这个对象池中保存多个对象,心实例化的对象如果已经在池中定义了,则不再重新定义,而从池中直接取出继续使用。String就是因为采用了这样的设计,所以当内容重复时,会将对象指向已存在的实力空间。
*****************************************************************************************

此图不解释.....

1.字符串与字符数组的转换
例子:
public class StringAPIDemo01 {
public static void main(String[] args) {
String str1 = "hello";
char c[] = str1.toCharArray(); // 将字符串变为字符数组
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + "\t");
}
System.out.println("");
String str2 = new String(c); //将全部字符数组变为String
String str3 = new String(c, 0, 3); //将部分字符数组变为String
System.out.println(str2);
System.out.println(str3);
}
}
结果:
h e l l o
hello
hel
浙公网安备 33010602011771号