J2SE第六章——常用类(一)String类

1.字符串相关类 String StringBuffer

         1.1 String

                   本质:字符数组

                   特点:不可变的字符数组java.lang.String

                   1.1.1 String 类的由来

public final class String() {
	private final char value[];

	public String() {
		this.value = new char[0];
	}

	public String(char[],int offset,int count) {
		//用一个字符数组从offset项开始的count个字符序列创建一个String对象		
	}


	main() {
		String s1 = new String();	<=========> String s1 = "";
		char[] c2 ={'h','l','l','o'};
		String s2 = new String(c2);=============本质
		// 字符:单引号引起来的单个字符
		// 字符串:双引号引起来的字符序列=====字符数组
	}
}


1.1.2字符串的创建

                            方式: (不考虑使用字符数组的方式)

                                     方式一:通过构造函数

                                               定义变量:Strings1;

                                               创建对象:s1 = newString("abc"); //"abc"<==>{'a','b','c'}

                                                                   s1 = new String({'a','b','c'});

                                     方式二:

                                               Strings1;

                                               s1= "abc";  

 

                                     方式一和方式二,内存解析完全不同,但最后指向的字符串常量是一样的

 

                                     main(){

                                               Strings1 = "abc";  字符串常量abc 占据内存的地址赋值给s1

                                               Strings2 = new String("abc");

                                               内存解析:

                                                javac 编译class 类的加载load (特定资源初始化--静态变量+字符串常量:数据区)

                                     }

public class Test {
	public static void main(String[] args) {
		String s1 = "hello";
		String s2 = "world";
		String s3 = "hello";
		System.out.println(s1==s3);  //true

		s1 = new String("hello");
		s2 = new String("hello");
		System.out.println(s1==s2); //false;
		System.out.println(s1.equals(s2)); 
		//String类重写了从Obje类继承的equals方法,
		//重写规则:当且仅当两个字符串表示相同的字符序列时候,结果为true

		char[] c ={'s','u','n',' ','j','a','v','a'};
		String s4 = new String(c);
		String s5 = new String(c,4,4);  //java
	}
}



你可能感兴趣的:(J2SE第六章——常用类(一)String类)