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

*****************************
第三个结果没看明白
*****************************
 
 

posted on 2011-12-01 11:34  wangbokun  阅读(208)  评论(0编辑  收藏  举报

导航