天天看点

字符串

string 类

string 类对应的包 java.lang.object àjava.lang.string

java.lang.string 类 final 修饰,不可继承

<b>两种创建string</b><b>对象方式</b>

string str =”hello string ”;

string str1 = new string(“hello string”)

char c[]= {‘h’,’e’,’l’,’l’,’o’}; 等效于

string str2 = new string(“hello”);

每一个字符串都一个常量,是不可改变的 即使使用 + 号链接,还是会创建常量对象的

第一种创建方式,在str =”hello string”; 后面默认调用intern() 方法

第二种创建方式默认不会调用次方法,所以每次一次创建就意味着新的对象产生,也可以自行调用, intern() 方法

因为string 类中的对象是存放在常量池中,所以调用intern()方法在常量池中寻找是合理的

string 类 覆写了object 中的equlas 方法

在使用string 对象的时候应该考虑对象是否为null

操作string 对象的 所有方法,在java se 帮助文档中参阅

                stringbuffer与stringbuilder类

在java.lang.object类中 存在两个类,第一个是stringbuffer 类、和stringbuilder 类、stringbuilder 是在jdk1.5之后才出现的,他们两个最大的区别就是一个stringbuffer 对象在多线程中使用往往是最安全的,因为在每次使用对象的时候,都会先去判断当前对象是否正在使用中,在java中叫判断锁。而stringbuilder 在使用对象的时候不会去判断当前是否在使用对象,所以在多线程中会出现bug ,在多线程中建议使用stringbuffer ,如果在多线程中使用stringbuilder的话,则我们就要为对象进行加锁。详细信息请参考java.lang.stringbuilder 中的源代码 ,如果是单线程的话,建议使用stringbuilder,因为stringbuilder 在操作的时候不需要去判断当前对象是否处于操纵状态