欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java_String和StringBuffer區(qū)別分析

 更新時間:2013年04月14日 10:45:46   作者:  
JAVA平臺提供了兩個類:String和StringBuffer,它們可以儲存和操作字符串,即包含多個字符的字符數(shù)據(jù)。這個String類提供了數(shù)值不可改變的字符串。

而這個StringBuffer類提供的字符串進行修改。當你知道字符數(shù)據(jù)要改變的時候你就可以使用StringBuffer。典型地,你可以使用StringBuffers來動態(tài)構造字符數(shù)據(jù)。

在java中有3個類來負責字符的操作。

1.Character 是進行單個字符操作的,

2.String 對一串字符進行操作。不可變類。

3.StringBuffer 也是對一串字符進行操作,但是可變類。

String:
是對象不是原始類型.
為不可變對象,一旦被創(chuàng)建,就不能修改它的值.
對于已經存在的String對象的修改都是重新創(chuàng)建一個新的對象,然后把新的值保存進去.
String 是final類,即不能被繼承.

StringBuffer:
是一個可變對象,當對他進行修改的時候不會像String那樣重新建立對象
它只能通過構造函數(shù)來建立,
StringBuffer sb = new StringBuffer();
note:不能通過付值符號對他進行付值.
sb = "welcome to here!";//error
對象被建立以后,在內存中就會分配內存空間,并初始保存一個null.向StringBuffer
中付值的時候可以通過它的append方法.
sb.append("hello");

以上為摘抄,網(wǎng)上常見的,以下為自己添加的見解:

地址不可更改,長度和內容可改。append()方法是追加,超過預留內存時,內存翻倍。

效率比較:StringBuffer比String高。因為StringBuffer有預留空間一直追加,只是對一個對象進行操作。而String是不能被修改的,只能重復的去創(chuàng)建對象來實現(xiàn)修改。——如果頻繁的對字符串進行追加、替換、修改、插入、刪除操作,最好使用StringBuffer。如果必須用String可以使用StringBuffer調用toString()來轉換成String即可。

復制代碼 代碼如下:

public static void main(String[] args) {
         String a="";
         long begin=System.currentTimeMillis();
         for (int i = 0; i <10000; i++) {
             a+=i;
         }
         long end=System.currentTimeMillis();
         System.out.println("String運行時間:"+(end-begin));
         System.out.println("-----------------");
         StringBuffer b=new StringBuffer();
         long begin2=System.currentTimeMillis();
         for (int i = 0; i <10000; i++) {
             b.append(i);
         }
         long end2=System.currentTimeMillis();
         System.out.println("StringBuffer運行時間:"+(end2-begin2));
     }

我的機子比較垃圾,執(zhí)行下來結果是

String運行時間:164593
-----------------
StringBuffer運行時間:31

而且String有contains方法,而StringBuffer沒有。contains是包含的意思,這里可以在回憶下contains方法

復制代碼 代碼如下:

 public static void main(String[] args) {
         String a="abc";
         boolean str=a.contains("b");
         System.out.println(str);
     }

執(zhí)行結果為

true

相關文章

  • SpringBoot配置主從數(shù)據(jù)庫實現(xiàn)讀寫分離

    SpringBoot配置主從數(shù)據(jù)庫實現(xiàn)讀寫分離

    現(xiàn)在的 Web 應用大都是讀多寫少,本文主要介紹了SpringBoot配置主從數(shù)據(jù)庫實現(xiàn)讀寫分離,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • 微服務下springboot?多模塊打包使用詳解

    微服務下springboot?多模塊打包使用詳解

    這篇文章主要介紹了springboot多模塊打包使用詳解,牽涉到很多與maven相關的技術點,比如maven的版本管理,依賴傳遞,父子模塊繼承,以及maven打包插件等眾多的內容相互交織在一起,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • SpringBoot 請求參數(shù)忽略大小寫的實例

    SpringBoot 請求參數(shù)忽略大小寫的實例

    這篇文章主要介紹了SpringBoot 請求參數(shù)忽略大小寫的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Java的反射機制---動態(tài)調用對象的簡單方法

    Java的反射機制---動態(tài)調用對象的簡單方法

    下面小編就為大家?guī)硪黄狫ava的反射機制---動態(tài)調用對象的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • Spring?Boot項目如何使用Maven打包并帶上依賴

    Spring?Boot項目如何使用Maven打包并帶上依賴

    在這篇博客中,介紹如何使用Maven將Spring?Boot項目及其依賴項打包成一個可執(zhí)行的jar文件。我們將使用Spring?Boot的spring-boot-maven-plugin插件來完成這個任務,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • Java手機號碼工具類示例詳解(判斷運營商、獲取歸屬地)

    Java手機號碼工具類示例詳解(判斷運營商、獲取歸屬地)

    這篇文章主要介紹了Java手機號碼工具類示例詳解,通過手機號碼來判斷運營商獲取歸屬地,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • JAVA實現(xiàn)通用日志記錄方法

    JAVA實現(xiàn)通用日志記錄方法

    本篇文章主要介紹了JAVA實現(xiàn)通用日志記錄方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java中使用websocket實現(xiàn)在線聊天功能

    Java中使用websocket實現(xiàn)在線聊天功能

    這篇文章主要介紹了Java中使用websocket實現(xiàn)在線聊天功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-02-02
  • SpringBoot之Controller的使用詳解

    SpringBoot之Controller的使用詳解

    本篇文章主要介紹了SpringBoot之Controller的使用詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-08-08
  • Java如果在try里面執(zhí)行return還會不會執(zhí)行finally

    Java如果在try里面執(zhí)行return還會不會執(zhí)行finally

    這篇文章主要介紹了Java如果在try里面執(zhí)行return,那么還會不會執(zhí)行finally,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01

最新評論