Les performances entre la Chaîne.format et StringBuilder

Pour concaténer String nous utilisons souvent StringBuilder au lieu de String + String, mais aussi, nous pouvons faire la même chose avec String.format qui retourne une chaîne formatée par endroit donné, le format et les arguments.

Exemples:

Concaténer la chaîne avec StringBuilder

String concatenateStringWithStringBuilder(String name, String lName, String nick) {
    final StringBuilder sb = new StringBuilder("Contact {");
    sb.append(", name='").append(name)
      .append(", lastName='").append(lName)
      .append(", nickName='").append(nick)
      .append('}');
    return sb.toString();
}

Concaténer la chaîne avec StringFormat:

String concatenateStringWithStringFormat(String name, String lName, String nick) {
    return String.format("Contact {name=%s, lastName=%s, nickName=%s}", name, lName, nick);
}

De performance, est String.Format aussi efficace que StringBuilder? Lequel est le mieux pour concaténer des chaînes et pourquoi?

Mise à JOUR

J'ai vérifié la même question, mais ne pas répondre à ma question. Jusqu'à présent j'ai utilisé StringBuilder pour concaténer des chaînes, dois-je le suivre? Ou dois-je utiliser String.format? la question est de savoir lequel est le mieux et pourquoi?

Un rapide benchmark ne prendra pas trop de temps
Double Possible de dois-je utiliser Java de la Chaîne.format() si la performance est-elle importante?
Une troisième option: return "Contact {name=" + name + ", lastName=" + lName + ", nickName=" + nick + '}'; Ce serait de créer le même bytecode que d'utiliser StringBuilder et est tout aussi lisible que l'aide de la Chaîne.Format.
voir ce dois-je utiliser Java de la Chaîne.format() si la performance est-elle importante?
À moins que votre méthode est appelée milliers de fois par seconde, vous ne remarquerez une différence dans la performance. Vous ne devez pas utiliser StringBuilder ou StringBuffer, tout simplement parce qu'ils sont beaucoup moins lisible. Je voudrais utiliser des chaînes de caractères.format, car il fait très clairement ce que votre chaîne finale est destiné à ressembler.

OriginalL'auteur JUAN CALVOPINA M | 2017-05-22