一、字符串
字符串对象一旦被初始化就不会被改变。
string s="abc";
string s1="abc";
字符串常量被放在字符串常量池中,所以s和s1的地址是相同的,都指向字符串常量池中的“abc”。
但是:
string s="abc";
String s1=new String("abc");
上述语句中,s和s1却不相等,因为s1指向的是堆地址。
s.equals(s1)是相同的,因为字符串的equals方法比较的是字符串内容是否相同。
字节数组转成字符串:
byte [] a={97,65,66,67};
String s=new String(a);
将字符数组转成字符串:
char[] ch={'a','b','c','d'};
String s=new String(ch);
将字符串变成字符数组:
char [] ch=s.toCharArray();
将字符串变成字节数组:
byte []=s.getBytes();
字符串对象的比较不能用<等符号,而要用compareTo()方法。
stringBuffer是字符串缓冲区,用于存储数据的容器。
特点:
1.长度可变
2.用于存储不同数据类型
在jdk1.5之后,出现了和StringBuffer功能一模一样的对象StringBuilder,不同之处为:
StringBuffer是线程同步的,通常用于多线程。
而StringBuilder是线程不同步的,其效率高,经常用于单线程。
StringBuffer和StringBuilder都是存放字符串的容器,在Java中处理大量数据的时候,一般都优先考虑使用容器。