什么是优缺点字符串加运算符和字符串构建器追加?

问题描述 投票:0回答:1

我有硬编码的SQL查询,它使用字符串+运算符进行字符串连接,我即将用StringBuilder替换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());
java stringbuilder
1个回答
1
投票

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

因此,通常,当您必须在循环中连接数据时(例如性能很重要),您只能手动使用StringBuilder。

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

© www.soinside.com 2019 - 2024. All rights reserved.