A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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;
     }

1 个回复

倒序浏览
楼主威武,看的真是够深的,,,,,我只知道string在用+连接时,系统代码优化执行StringBuilder的append方法。    楼主这是从哪里看的?推荐一下吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马