0 3

Java String.format性能如何0

Java String.format性能如何?

問題補充:String format = "%s %s";
String str1 = "str1";
String str2 = "str2";
System.out.println(String.format(format,str1,str2));

System.out.println(str1 + " " + str2 );
String.format雖然書寫方便,但是不知道其組合字符串是不是像str1+str2 拼接字符串的方式?相對于拼接字符串,String.format 性能更好還是更差
 
2012年9月01日 13:39

4個答案 按時間排序 按投票排序

0 0

我看上面回復廢話都很多,就一句話,性能很差。
如果有空可以查看下源碼,如果想性能高還是按照自己的特性去實現吧

2014年7月22日 11:05
0 0

1、你說的性能 是和 誰 進行比較?

2、在大部分時間我們注重的是簡單和易用性,性能可以在后期優化;

3、String.format內部:

public static String format(String format, Object ... args) {
	return new Formatter().format(format, args).toString();
}


內部new了一個java.util.Formatter來委托處理,顯然靜態方法的說法站不住腳。

Formatter借鑒了C語言的printf,提供格式化字符串的解釋程序。 以下來自JDK文檔
引用
printf 風格的格式字符串的解釋程序。此類提供了對布局對齊和排列的支持,以及對數值、字符串和日期/時間數據的常規格式和特定于語言環境的輸出的支持。支持諸如 byte、BigDecimal 和 Calendar 等常見 Java 類型。任意用戶類型的受限格式化定制都是通過 Formattable 接口提供的。


比如小數點后保留兩位
   Formatter.format("¥%.2f", 12.333);
格式化年月日
   Formatter.format("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", new Date())
等等。。。

重點在于提供格式化解釋程序。

2012年9月01日 18:27
0 0

靜態方法在程序開始時生成內存,實例方法也就是new Object().方法在程序運行中生成內存,
所以靜態方法可以直接調用,實例方法要先成生實例,通過實例調用方法,靜態速度很快,但是多了會占內存。
任何語言都是對內存和磁盤的操作,至于是否面向對象,只是軟件層的問題,底層都是一樣的,只是實現方法不同。
靜態內存是連續的,因為是在程序開始時就生成了,而實例申請的是離散的空間,所以當然沒有靜態方法快,
而且靜態內存是有限制的,太多了程序會啟動不了。

2012年9月01日 13:44
0 0

靜態方法String.format();效率應該比的對象.方法高

2012年9月01日 13:42
Global site tag (gtag.js) - Google Analytics 开心农场种蔬菜赚钱 正规理财平台排行榜前十名 新11选5前三走势图山西 福彩玩法规则和玩法 云南11选5技巧稳赚 快播急速赛车手 福建快3预测推荐号码今天 黑龙江11选五任选开奖 海南4+1app 贵州11选519号开奖结果 股票趋势技术分析txt 山东11运夺金开奖结果 快乐双彩走势图双色球带坐标 安徽快3彩票软件 北京股票融资合作 2020适合投资的理财方式 秒速飞艇二期计划