為什麼StringBuilder的效率要比String高?
先看一個例子:
標題
從上面的例子可以看到,StringBuilder的執行時間只有簡單字串拼接的千分之一 ,那是什麼原因造成的呢?
String在java中是不可變長的,一旦初始化就不能修改長度,簡單的字串拼接其實是建立新的String物件,再把拼接後的內容賦值給新的物件,在頻繁修改的情況下會頻繁建立物件,而StringBuilder則不會,從頭到尾只有一個例項物件,那StringBuilder是怎麼實現的呢?
其實StringBuilder在append時並不是用String儲存,而是放到一個value的char陣列中,字串是固定長度的,而陣列是可以擴容的,這樣就不需要不停建立物件了
那StringBuilder中陣列的初始長度是多少呢?擴容係數是多少呢?
陣列預設的初始長度是16,也可以根據構造方法指定
擴容係數: value.length * 2 + 2,而且只有當append是資料長度+value.count > value.length時才會擴容一次,不會每次都擴容去呼叫Arrays.copyof()
相關推薦
為什麼StringBuilder的效率要比String高?
先看一個例子: 標題 從上面的例子可以看到,StringBuilder的執行時間只有簡單字串拼接的千分之一 ,那是什麼原因造成的呢? String在java中是不可變長的,一旦初始化就不能修改長度,簡單的字串拼接其實是建立新的String物件,再把拼接後的內容賦值給新
tomcat和jdk版本相容(Tomcat版本要比jdk高)
用的tomcat是低版本的,但是用的jdk卻是高版本的,用Servlet做的專案執行都沒有問題,但是直接執行jsp卻死活都執行失敗。 最後發現是tomcat和jdk的版本問題造成的。 總結如下: tomcat v7.0-------support-------->Java EE
StringBuilder的append()效率比String的+運算子效率高太多
public static void main(String[] args) { // TODO 自動生成的方法存根 String str = ""; StringBuffer sb = new StringBuffe
python-字串的join要比+操作效率高
程式碼 #-*- coding: utf-8 -*- from time import time def plus_test(): t = time() s = '' fo
高性能網絡服務器編程:為什麽linux下epoll是最好,Netty要比NIO.2好?
系統 工作效率 lee socket 為我 handler 10g 函數 適合 基本的IO編程過程(包括網絡IO和文件IO)是,打開文件描述符(windows是handler,java是stream或channel),多路捕獲(Multiplexe,即select和poll
java 迴圈中String與StringBuilder效率探究
測試類:public class StringTest { @Test public void testString() { String str = "";
int 轉 String 的效率大比拼
先說一下我自己的實驗結論吧,int 轉 String 的三個方法(假設 x 是int 型變數): ①""+x,效率最低; ②Integer.toString( x ),效率最高; ③String.valueOf( x ),效率比②低一點比①好不少。 詳情如下: 有一
StringBuilder 比 String 快?空嘴白牙的,證據呢!
![](https://img-blog.csdnimg.cn/20200917222958655.png) 作者:小傅哥 部落格:[https://bugstack.cn](https://bugstack.cn) >沉澱、分享、成長,讓自己和他人都能有所收穫!
全面解釋java中StringBuilder、StringBuffer、String類之間的關系
() 大於等於 修飾 軟件 進行 lan lin 字符 str StringBuilder、StringBuffer、String類之間的關系 java中String、StringBuffer、StringBuilder是編程中經常使用的字符串類,在上一篇博文中我們已
外貿企業網站要不要租用高防服務器
今年上半年,我國貨物貿易進出口總值13.14萬億元,同比增長19.6%,保持了去年以來的回穩向好態勢。其中不少外貿企業通過搭建在線平臺,以線上營銷的形式實現產品銷售額的增長。外貿建站既能打造自身的品牌優勢,又能與客戶保持良好的互動,再加上成本優勢,成為近年來外貿企業積極開展國際營銷的有效方法之一。
Java 中要將 String 類型轉化為 int 類型
ava index 需要 amp con 轉換 catch div 出現 在 Java 中要將 String 類型轉化為 int 類型時,需要使用 Integer 類中的 parseInt() 方法或者 valueOf() 方法進行轉換. 例1: 1 2 3 4 5
同樣級別iOS程序員,為啥比我菜的程序員薪資都比我高?
git 公司 節奏 代碼管理 運行 面試題 穩定 財務 迷茫 作為程序員,都有一種相同的焦慮——即當一次又一次的新技術浪潮襲來,總會不由自主的拼命跟隨,總是擔心如果不緊跟新技術的潮流,將會被時代所拋棄。 害怕年齡,害怕平庸,其實只是你在現實裏的努力無法支撐起你的野心。而真正
(string 高精度) Lovekey hdu 2100
one LG return 註意 reverse others 找到 pac 密碼 Lovekey Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot
(string高精度)A + B Problem II hdu1002
ext ring stream turn out bsp bit ons OS A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe
為什麽IOS程序員工資普遍比Android高?
都在 導致 差異 來看 員工 發現 企業 國內 oid 目前最火的軟件工程師當屬Android和iOS了,但想必每一個Android工程師可能都在吐槽,為什麽IOS工程師工資普遍要比我們高?是什麽造就這樣的現象呢?下面我們通過幾組數據來詳細了解下。 首先是初級Android
同樣的時間付出,你憑什麽要比別人過得好?
備註 人的一生 寫博客 自己 博客園 畢業 它的 sdn 最好 十足的標題當,對不起!其實,我是想把最近狀態與想法分享出來,這一篇不討論技術。這一篇將沒有任何關於技術的東西,如果你有興致將其閱讀,我將非常高興。 寫博客的心態
其實win10要比win7的安全性強很多
htm 升級win10 用戶 分享圖片 空間 col 漏洞 沒有 mage 隨著win10系統的一步步更新,用戶體驗度也越來越好,更多的用戶也換了win10的系統,但還是有一部分用戶依然雷打不動的信任著win7。下面小編來分析一下win7和win10到底有著怎樣的差別,相信
為什麼使用二分查詢的速率要比按其他比例分割的查詢速率要快???
在說任意比例分割查詢之前我們先來談談黃金分割查詢與二分查詢: 在二分查詢中,我們是取中旬等於左向右和的中間值,即用等分的方法進行查詢。 那為什麼一定要等分吶?能不能進行“黃金分割”?也就是中間=左+ 0.618(右 - 左),當然中間要取整數。 我們來分析一下,假設有一段
為什麽別人的工作效率總是比你快?原來是掌握了這幾個Excel技巧
col 大小 別人 技巧 size watermark ado 高效 ade 掌握一些最基本的Excel技巧可以有效地提高工作效率。下面給大家分享4個實用的Excel的技巧,能夠幫你在工作上節省大量的時間! 快速整理表格中的數據 選中單元格數據,按“Ctrl+1”快捷鍵彈出
為什麼要選購美國高防伺服器
美國伺服器是海外最受歡迎的伺服器產品之一,這是因為美國完善成熟的網路架構,先進的機房伺服器技術,豐富的網路資源和寬鬆健全的政策。美國伺服器的優勢還體現在其使用國際頻寬,能解決租用國內伺服器大大小小網路運營商之間不相通的問題。另外,美國伺服器一般都配備大頻寬資源,價格卻比其他區域低。 美國伺服器的優勢很多,但