标签:
String源码学习
通过声明如下代码来控制需要序列化的field
private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0];
Java中的char都是以unicode编码来保存字符的,占用2个字节。
concat
将两个字符串连接为一个,通过调用两次System.arrayCopy来高效完成,第一次生成一个包含两个string长度的字符数组并将自身拷贝进去,然后将第二个string拷贝到剩下的部分中。
replace(char,char)
replace的实现可以很简单,先直接复制一个,然后逐个替换掉出现的字符即可。但是作者并没有这么实现,而是充分考虑了性能。
基于上面的两个考虑,实现先判断了两个入参是否相同,如果不同,那么先尝试去寻找这个待替换的字符串,如果找到了,这时才会new一个新的字符数组将内容拷贝过去。
不得不说,对性能的敏锐和态度,很能看出一个程序员的水准。
match
输入一个正则表达式,判断是否和这个字符串匹配。
replaceAll
将字符串中所有匹配输入正则表达式的部分替换为第二个参数
split
根据给定的序列将字符串分割,可以指定最多分割多少份。
format
类似C语言的格式化语法,参考java.util.Formatter
valueOf
return (obj == null) ? "null" : obj.toString();
标签:
原文地址:http://www.cnblogs.com/humc/p/5205442.html