StringBuilder 作业
Topic sourceStringBuilder 的默认容量 为 (16bytes + 初始化参数bytes)
如果其容量发生了溢出,则会双倍增幅当前容量 int newCapacity = (value.length + 1) * 2
,并以此创建新容器
sb.capacity() 可用于查看当前容量
sb.length() 可用于查看当前有效字符长度
StringBuilder sb = new StringBuilder(64);
sb.append("INSERT INTO %s (%s) VALUES (%s)");
这样修改就不会发生溢出并重新创容器的过程
- 1
Junes_99994
static String buildInsertSql(String table, String[] fields) {
StringBuilder sb = new StringBuilder("INSERT INTO %s (%s) VALUES (%s)");
String[] insertStr = new String[]{table,String.join(", ", fields),String.join(", ", fields).replaceAll("\\w+", "?")};
int index = sb.indexOf("%s");
for(String str :insertStr){
sb.replace(index,index+2,str);
index = sb.indexOf("%s", index + 1);
}
return new String(sb);//sb.toString();
}
StringBuilder 相当于可变的String ,StringBuffer 除用于多线程同步以外和StringBuilder 没区别