Maison  >  Questions et réponses  >  le corps du texte

java - Je ne comprends pas le code de la ligne 13. sb et str ne sont-ils pas du même type ?

public class TestStringBuffer{
    public static void main(String[] args){
        StringBuffer sb = new StringBuffer();
        sb.append("abc");
        sb.append("123");
        System.out.println("sb = " + sb); 
        sb.insert(3, "--"); 
        System.out.println("sb = " + sb); 
        sb.delete(2,6); 
        System.out.println("sb = " + sb);
        sb.reverse();
        System.out.println("sb = " + sb); 
        String str = sb.toString();  // 13行
        System.out.printf("str = " + str);
    }
}
漂亮男人漂亮男人2712 Il y a quelques jours346

répondre à tous(2)je répondrai

  • 阿神

    阿神2017-05-17 10:06:19

    StringBuffer 
    String

    Comment cela peut-il être un type ? StringBuffer sera implicite lors de la concaténation de chaînes + ou de la sortie Exécutez toString() à convertir en StringStringBuffer在做字符串连接 + 或者输出的时候
    会隐式执行toString()转化为String

    第13行是显示的执行 sb.toString()sb转换为 String

    La ligne 13 est l'exécution affichée de sb.toString() pour convertir sb en String#🎜🎜#

    répondre
    0
  • 天蓬老师

    天蓬老师2017-05-17 10:06:19

    StringBuffer : String buffer
    String : String
    Lorsque modifiez en une chaîne, vous devez utiliser StringBuffer et la classe StringBuilder.
    Différents de la classe String, les objets des classes StringBuffer et StringBuilder peuvent être modifiés plusieurs fois sans générer de nouveaux objets inutilisés .

    La classe StringBuilder a été proposée dans Java 5. La plus grande différence entre elle et StringBuffer est que les méthodes de StringBuilder ne sont pas thread-safe (ne sont pas accessibles de manière synchrone).

    Étant donné que StringBuilder a un avantage en termes de vitesse par rapport à StringBuffer, il est recommandé d'utiliser la classe StringBuilder dans la plupart des cas. Cependant, dans les cas où l'application nécessite une sécurité des threads, la classe StringBuffer doit être utilisée.

    répondre
    0
  • Annulerrépondre