黑马程序员技术交流社区
标题:
String.valueof(11);和String 是= ""+11;的区别
[打印本页]
作者:
z_one
时间:
2015-11-6 14:45
标题:
String.valueof(11);和String 是= ""+11;的区别
1.string.valueof("11"), "11"是字符串;String s =“” +11,11是整型;
2. string.valueof("11")调用的是:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
String s =“” +11,编译器会优化成,String s =new StringBuilder.append(“”) .append(11); 而.append(11)调用的是:
public StringBuilder append(int i) {
super.append(i);
return this;
}
super.append(i); 调用的是:
public AbstractStringBuilder append(int i) {
if (i == Integer.MIN_VALUE) {
append("-2147483648");
return this;
}
int appendedLength = (i < 0) ? stringSizeOfInt(-i) + 1
: stringSizeOfInt(i);
int spaceNeeded = count + appendedLength;
if (spaceNeeded > value.length)
expandCapacity(spaceNeeded);
Integer.getChars(i, spaceNeeded, value);
count = spaceNeeded;
return this;
}
作者:
大自然的搬运工
时间:
2015-11-6 15:00
楼主威武,看的真是够深的,,,,,我只知道string在用+连接时,系统代码优化执行StringBuilder的append方法。 楼主这是从哪里看的?推荐一下吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2