您的位置:首頁技術文章
文章詳情頁

java - 第13行代碼看不太懂,sb和str不是同一個類型?。?/h1>
瀏覽:106日期:2023-12-07 10:34:26

問題描述

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); }}

問題解答

回答1:

StringBuffer String

這怎么會是一個類型呢,StringBuffer在做字符串連接 + 或者輸出的時候會隱式執行toString()轉化為String

第13行是顯示的執行 sb.toString() 將sb轉換為 String

回答2:

StringBuffer :字符串緩沖區String :字符串當對字符串進行修改的時候,需要使用 StringBuffer 和 StringBuilder 類。和 String 類不同的是,StringBuffer 和 StringBuilder 類的對象能夠被多次的修改,并且不產生新的未使用對象。

StringBuilder 類在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在于 StringBuilder 的方法不是線程安全的(不能同步訪問)。

由于 StringBuilder 相較于 StringBuffer 有速度優勢,所以多數情況下建議使用 StringBuilder 類。然而在應用程序要求線程安全的情況下,則必須使用 StringBuffer 類。

標簽: java

国产综合久久一区二区三区