字符串加上运算符和stringbuilder的优点和缺点是什么?

时间:2019-04-03 03:26:35

标签: java stringbuilder

我有使用String +运算符进行字符串连接的硬编码SQL查询,我将用StringBuilder append替换String +运算符,我只需要比较两种方法的优缺点。

示例代码:

   insertStat = CMSCon.prepareStatement("INSERT INTO PROFILE"
                + " (PROFILECODE,DESCR,CTYPE,"
                + " STAT,CR,AMOUNT,PERCENTAGE,COMB,CMETHOD,"
                + " LASTUPDATEDUSER,LASTUPDATEDTIME,CREATEDTIME)"
                + " VALUES (?,?,?,?,?,?,?,?,?,?,SYSDATE,SYSDATE)");

将被类似这样的东西

 StringBuilder sb = new StringBuilder();
        insertStat = CMSCon.prepareStatement(sb.append("INSERT INTO PROFILE")
                .append(" (PROFILECODE,DESCR,CTYPE,")
                .append(" STAT,CR,AMOUNT,PERCENTAGE,COMB,CMETHOD,")
                .append(" LASTUPDATEDUSER,LASTUPDATEDTIME,CREATEDTIME)")
             .append((?,?,?,?,?,?,?,?,?,?,SYSDATE,SYSDATE)").toString());

1 个答案:

答案 0 :(得分:0)

无论如何,编译器都会将String +转换为对StringBuilder的调用。因此,在您的示例中,最后没有性能差异,因为最终的字节码应该几乎相同(您可能希望使用javap来检查自己)。

因此,通常,例如,当您必须在循环中连接数据时(与性能有关),通常仅手动使用StringBuilder。

否则,您倾向于使用代码的“更好的可读性”,这是您最经常(并非总是)使用String +实现的。