JavaSE 番外篇之String(二)

来源:互联网 发布:江苏捷达软件 编辑:程序博客网 时间:2024/06/16 05:42

前面说了很多关于String一些常见的特性,细想之下觉得有遗漏在此补上

java.lang
类 String

java.lang.Object  继承者 java.lang.String
所有已实现的接口:
Serializable,CharSequence,Comparable<String>

public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence
(API)


1、String一旦创建就不允许修改;

2、使用只包含常量的字符串连接符如"aa" + "aa"创建的也是常量,编译期就能确定,已经确定存储到String Pool中.(编译时会直接优化成"aaaa",如果String Pool 中没有"aaaa",就用""号创建一个String,直接放到Pool中。

3、String str = "abc"

String str1 = str+"efg";是存储在堆中的,创建过程应该是调用了Stringbuffer 和append;

4、和Sringbuffer的区别

String类中没有修改本身的方法,而Stringbuffer中有很多

String s1 ="abcdefg"; String s2 = "123456";

string s1 = s1+s2;s1虽然指向;额"abcdefg123456" 但这是在常量池中重新创建一个字符串"abcdefg123456";此时常量池中有三个对象"abcdefg","123456","abcdefg123456";

如果经常对String进行修改的话,既浪费时间又浪费空间;

5、有关String的常见问题

1)、字符串转为字符

可以利用CharAt();

toCharArray();

2)、字符转化为字符串

String.valueOf();

3)字符串转化为字节数组

String.getbytes();

4)用字节数组构造字符串

String(byte[] b,[charest charest])


0 0
原创粉丝点击