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
問題描述
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 類。
