java - Je ne comprends pas le code de la ligne 13. sb et str ne sont-ils pas du même type ?
漂亮男人
漂亮男人 2017-05-17 10:04:19
0
2
388
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);
    }
}
漂亮男人
漂亮男人

répondre à tous(2)
阿神
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#🎜🎜#
Peter_Zhu

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal