String 、StringBuffer 和 StringBuilder 的區別?

String

使用 String 聲明一個字符串的時候,該字符串會存放在堆中的字符串常量池中。因為在java中所有的String 都是以常量表示,且由 final 修飾,因此在線程池中它的線程是安全的 且 不可變的 。每個 String 在被創建后就不再發生任何變化。

我們在創建String的時候,它在常量池中對這些信息進行處理,如果程序中出現了大量字符串拼接、劃分等操作效率將非常低。

因此,使用場景是在少量字符串操作的時候才建議直接使用


StringBuilder

StringBuilder 沒有考慮線程安全的問題。雖然執行效率高,但是不安全所以不建議在多線程環境下對同一個 StringBuilder 對象進行操作。

因此,StringBuilder 適用于單線程環境下的大量字符串操作


StringBuffer

StringBuffer 相對于 StringBuilder 效率要低一些,但遠比 String 高。

比StringBuffer 效率低的原因:考慮到了多線程的情況,在進行字符串操作的時候 使用 synchronized 關鍵字對方法進行了同步處理。

因此,StringBuffer 適用于多線程環境下的大量字符串操作

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164124.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164124.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164124.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql按年、季度、月,統計

以下是按年、按季度和按月統計SQL查詢語句: 按年統計: SELECTds.checker,YEAR(ds.create_time) AS settleYear,SUM(ds.quantity) AS quantity,SUM(ds.approval_price) AS approvalPrice FROMdata_settle ds WHEREds.delete_flag 0AND ds.approval_sta…

漏洞盒子公益SRC

漏洞盒子公益SRC,小小地記錄一下第一個月的成果

數據中臺建設方法論

1、數倉的概念和了解--業務的痛點 產生的痛點:數據資產比較模糊、數據的質量比較低、重復建設、代碼的耦合性比較強。 2、數據倉庫中的常見的模型: 1、心型模型:中間是一張事實表,周圍都是維度表。 對于心型模型的主要的特點&a…

面向未來的自動化:擁抱機器人即服務(RaaS)

01. RaaS是什么? 對于希望實現業務流程自動化的公司來說,機器人通常是一筆巨大的資本支出。由于機器人非常昂貴,公司可能需要等待數年才能看到投資回報。正是由于這一現實,許多較小的組織無法投資機器人。 但一些機器人公司正在采…

算法通關村第十二關-青銅挑戰字符串

大家好我是蘇麟 , 今天帶來字符串專題 . 轉換成小寫字母 描述 : 給你一個字符串 s ,將該字符串中的大寫字母轉換成相同的小寫字母,返回新的字符串。 題目 : LeetCode 709.轉換成小寫字母 : 709. 轉換成小寫字母 分析 : 這個題可以先遍歷整個字符串…

Mybatis和MybatisPlus:數據庫操作工具的對比

目錄 什么是mybatis 什么是mybatisplus MyBatis-Plus:為簡化數據庫操作而生的強大工具 一、MyBatis-Plus的背景和概述 二、MyBatis-Plus的主要特點 三、如何使用MyBatis-Plus mybatis-Plus的優勢 什么是Hibernate Hibernate:Java開發者的數據持久…

光譜圖像超分 Benchmark

光譜圖像超分 Benchmark 文章目錄 光譜圖像超分 Benchmark0. pioneer工作及綜述基于深度學習的高光譜多光譜融合(updating)1. 空間光譜圖像超分 (to be updated)2. 高分辨率多光譜圖像超分(to be updated)3…

重生之我是一名程序員 39 ——C語言題目之青蛙跳臺階

哈嘍啊大家晚上好!今天給大家帶來的是C語言經典題目之青蛙跳臺階。青蛙跳臺階是一個數學問題,也是一個經典的遞歸問題。假設一只青蛙要跳上一個n級臺階,它可以每次跳1級臺階或2級臺階。問:青蛙跳上這個n級臺階總共有多少種不同的跳…

AMESim|學習記錄

此文記錄AMESim學習過程中的各種情況。 目錄 01 王佳. AUV 浮力調節系統設計及控制策略研究[D]. 天津大學, 2017.01 王佳. AUV 浮力調節系統設計及控制策略研究[D]. 天津大學, 2017. 01 王佳. AUV 浮力調節系統設計及控制策略研究[D]. 天津大學, 2017. 開始步入正文 01 王佳.…

【Leetcode合集】14. 最長公共前綴

14. 最長公共前綴 14. 最長公共前綴 代碼倉庫地址: https://github.com/slience-me/Leetcode 個人博客 :https://slienceme.xyz 編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴,返回空字符串 ""。 示例 …

【UE】用樣條線實現測距功能(下)

目錄 效果 步驟 一、實現多次測距功能 二、通過控件藍圖來進行測距 在上一篇(【UE】用樣條線實現測距功能(上))文章基礎上繼續實現多次測距和清除功能。 效果 步驟 一、實現多次測距功能 打開藍圖“BP_Spline”&#xff0c…

cherry pick的使用

https://blog.csdn.net/weixin_55229531/article/details/128726872

SPS簡單對應分析

前言: 本專欄參考教材為《SPSS22.0從入門到精通》,由于軟件版本原因,部分內容有所改變,為適應軟件版本的變化,特此創作此專欄便于大家學習。本專欄使用軟件為:SPSS25.0 本專欄所有的數據文件請點擊此鏈接下…

Git如何修改提交(commit)用戶名稱(user.name)和郵箱(user.email)

Git用戶名 Git查看用戶名 git config user.name修改Git提交用戶名 修改全局Git用戶名 git config --global user.name "xx" 修改當前服務/項目Git用戶名 git config user.name "xx"如果出現以下錯誤,解決方案如下: 錯誤案例&am…

量子計算概述

目錄 1.量子計算介紹 2.量子計算應用 3.量子計算研究機構 1.量子計算介紹 量子計算是一種遵循量子力學規律調控量子信息單元進行計算的新型計算模式。經典計算使用2進制進行運算,但2進制只有0和1兩種狀態,而量子計算除了包含0和1兩種狀…

C百題--6.輸出C

1.問題描述 輸出“C”樣式的字符 2.解決思路 1.用printf(&#xff09;逐行輸出&#xff1b; 2用循環一部分一部分輸出 3.代碼實現 #include<stdio.h> int main(){for(int i0;i<5;i){printf("*"); }printf("\n");for(int i0;i<2;i){printf…

OpenStack云計算平臺-鏡像服務

目錄 一、鏡像服務概覽 二、安裝和配置 1、先決條件 2、安全并配置組件 3、完成安裝 三、驗證操作 一、鏡像服務概覽 OpenStack鏡像服務是IaaS的核心服務&#xff0c;如同 :ref:get_started_conceptual_architecture所示。它接受磁盤鏡像或服務器鏡像API請求&#xff0c;…

Redis Stream消息隊列

什么是Stream? Stream 實際上是一個具有消息發布/訂閱功能的組件&#xff0c;也就常說的消息隊列。其實這種類似于 broker/consumer(生產者/消費者)的數據結構很常見&#xff0c;比如 RabbitMQ 消息中間件、Celery 消息中間件&#xff0c;以及 Kafka 分布式消息系統等&#x…

字符串匹配算法——KMP

有文本串aabaabaaf&#xff0c;模式串aabaaf問文本串中是否出現過模式串 暴力解法 最不用動腦子的&#xff0c;直接兩層for循環&#xff0c;逐個匹配&#xff0c;匹配到不相等的值時把文本串后移一位&#xff0c;再重新比較。這種方法的復雜度是O(mn)&#xff0c;該方法低效的…