字符串

一、字符串

字符串对象一旦被初始化就不会被改变。

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中处理大量数据的时候,一般都优先考虑使用容器。

原文地址:https://www.cnblogs.com/jsddj/p/7638148.html