String 與 StringBuilder 區別與用法

outside_default.png

String

用final修飾,實際上是不可更改的。我們平常用的“+”來連接,實際執行過程中是將原字符串連接之后生成新的對象重新賦值給這個名字的字符串。

@Testpublic void myStrTest(){String s = "str_s";System.out.println(s);String ss = s.toUpperCase();System.out.println(s);System.out.println(ss);}str_s
STR_S
str_s復制代碼

當使用 string + string 操作時。相當于 多次創建string對象,影響效率 java編譯器會根據 string + 操作的具體情況,將string 類型的對象 轉化成 StringBuilder 對象進行相加。StringBuilder 的 append 方法不會創建String 的實例對象

當簡單的string相加時候 編譯器會能夠進行有效的轉化,當我們使用循環 來對Stirng 的對象進行累加時候,編譯器會創建多個StringBuilder來進相加,會影響性能,

StringBuilder

動態創建的,可以在同一字符串上進行動態修改。

常用的append 方法,當字符串循環累計時候,推薦使用StringBuilder的append方法,在通過同String ()方法返回String類型

StringBuilder stringBuilder = new StringBuilder("string");System.out.println(stringBuilder);stringBuilder.insert(1,"ss");System.out.println(stringBuilder);stringBuilder.replace(1,3,"bb");System.out.println(stringBuilder);stringBuilder.substring(3);System.out.println(stringBuilder);stringBuilder.append("hahhah");String str = stringBuilder.toString();System.out.println(str);string
ssstring
sbbtring
sbbtring
sbbtringhahhah

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

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

相關文章

防跳墻訪問

出現場景: 1. 沒有登錄,也能訪問網頁 2. 沒有相關權限,也能訪問對應的控制器和方法 解決方案: 定義一個CommonController,其他控制器繼承CommonController,在CommonController中定義初始化方法_initialize 注:這里用的是tp3.2框架,如果我們直接在Commo…

windows編譯libevent時報告“缺少print_winsock_errors.obj”的解決

一、綜述 Libevent 是一個用C語言編寫的、輕量級的開源高性能事件通知庫。 在libevent官網(http://libevent.org)下載源碼包,在Windows平臺編譯時,會報缺少“print_winsock_errors.obj”的錯誤。 二、原因及解決 經檢查,這是因為源碼包中缺少…

7.python之正則表達式re模塊

一.正則表達式中常用元字符的復習。通配符系列.(點)匹配任意一個除換行符以外的字符。*(星號)用來匹配*星號前面的字符或者一組字符0到無窮次。可以寫為0(加號)匹配加號前面的一個字符或者一組字符1到無窮次。可以寫為1?(問號)匹配問號前面的一個字符或者一組字符0到1次。可以…

C# WPF開源控件庫HandyControl用法舉例

概述HandyControl是一款免費開源的WPF控件庫,Github可以獲取到源代碼,相關的示例代碼也在github上能獲取到,但是沒有詳細的中文說明文檔,對于新手而言使用起來還是會有一些困擾,網上也很難搜到相關的用法示例&#xff…

nginx服務器,訪問時顯示目錄,不直接顯示index.php

一、效果 二、解決方案 修改網站配置文件,添加如下代碼: autoindex on; autoindex_exact_size off; autoindex_localtime on; 修改后的網站配置文件如下: server {listen 80;server_name test.haveyb.com;charset utf-8;error_log …

復選框checked 選中后不顯示打鉤

復選框checked 選中后不顯示打鉤 checkbox屬性checked"checked"已有,但復選框卻不顯示打鉤的原因 復選框綁定了click事件,點一次選中,再點擊取消選中, 第一次,可以正常顯示選中和取消,但當再去選…

dotnet7 aot編譯實戰

原文地址:https://www.cnblogs.com/kewei/p/16722674.html0 起因這段日子看到dotnet7-rc1發布,我對NativeAot功能比較感興趣,如果aot成功,這意味了我們的dotnet程序在防破解的上直接指數級提高。我隨手使用asp.netcore-7.0模板創建…

實現ModelDriver接口的功能(轉)

ModelDriver接口 來自com.opensymphony.xwork2.ModelDriven。是xwork-2.1.2-750.jar包的東西。 下面是源碼&#xff1a; package com.opensymphony.xwork2; public abstract interface ModelDriven<T> { public abstract T getModel(); } 該接口只有一個getModel()方法…

Git的使用(推薦命令行模式)

一 使用 git版本控制已經逐漸取代cvs,svn等版本控制,對于一名程序員來說,使用git同樣是一門必備的功課.1. 倉庫初始化查看文件.如果有.git文件夾,說明創建本地倉庫成功(.git是隱藏文件夾)2. 修改用戶名和郵箱本地配置:注: 在全局配置與本地配置都存在用戶名時,本地配置優先級更…

.NET MAUI 環境配置技巧

關于 .NET MAUI 國內?伙伴在配置 .NET MAUI 的時候&#xff0c;遇到不少問題。希望通過本教程&#xff0c;給到大家?些指引。01基礎組件部分.NET SDK 安裝建議安裝最新的 .NET SDK下載地址 https://dotnet.microsoft.com/download/dotnet/6.0安裝 .NET MAUI安裝 .NET MAUI 成…

Linux中一些常用的很巧妙的命令

當你想要使用上一個命令的最后一個參數&#xff0c;&#xff08;上一個命令的最后一個參數很長&#xff09;&#xff0c;可以使用 esc .      (是esc 點&#xff09; !$ 引用上一個命令的最后一個參數 對命令行的編輯快捷方式&#xff1a; Ctr…

android 8種對話框(Dialog)使用方法匯總

本文為作者原創&#xff0c;轉載請注明出處&#xff1a;http://www.cnblogs.com/gzdaijie/p/5222191.html 目錄 1.寫在前面2.代碼示例2.1 普通Dialog&#xff08;圖1與圖2&#xff09;2.2 列表Dialog&#xff08;圖3&#xff09;2.3 單選Dialog&#xff08;圖4&#xff09;2.4 …

使用layui的layer組件做彈出層

官方文檔地址: http://www.layui.com/doc/modules/layer.html 本例演示效果: 當點擊申請提現時,出現申請提現框,并根據用戶輸入進行一些判斷,給出友好提示,比如: 代碼實現: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&q…

C#之表達式樹使用

目的遇到一個場景需要接收一個表的列來進行動態排序&#xff0c;比如我想根據CreateTime進行正序排序&#xff0c;加上我使用的ORM框架是EFCore&#xff0c;那么我一下子就想到應該使用OrderBy&#xff0c;然后接收一個要排序的列query.OrderBy("CreateTime")但是這樣…

實現一個基于相等性比較的 GroupBy

實現一個基于相等性比較的 GroupByIntro在我們的系統里有些數據可能會有問題&#xff0c;數據源頭不在我們這里&#xff0c;數據不好修復&#xff0c;在做 GroupBy 的時候就會很痛苦&#xff0c;默認的 group by 會依賴于 HashCode &#xff0c;而某些場景下 HashCode 可能并不…

win7系統下載 ghost win7 Sp1 64位純凈3月版

win7系統下載 ghost win7 Sp1 64位純凈3月版 軟件名稱: Ghost Win7 Sp1 64位純凈3月版軟件語言: 簡體中文軟件大小: 5.25大小: GB發布日期: 2017-03-21文件名稱: ZJY_Ghost_win 7_X64_CJ201703.GHOM D 5: EB16DCD608A5CCFE34B58…

CrossPHP框架的常用操作

1. 在視圖控制器中使用$this->res()方法來生成資源文件的絕對路徑$this->res(css/style.css);生成的連接為http://youdomain.com/static/css/style.css2. 生成指定app名稱的連接$this->appUrl()第一個參數為基礎url, 第二個參數為app名稱, 第三個參數為 控制器:方法 第…

WPF-07 Style之觸發器

觸發器能夠在改變屬性值的時候&#xff0c;根據值變化執行操作&#xff0c;在不需要創建一個新的控件的情況下&#xff0c;可以動態的改變控件的外觀&#xff0c;當條件滿足時&#xff0c;觸發器可以改變任何屬性的值&#xff0c;觸發器通常定義在Style中&#xff0c;在窗體的根…

jdk自帶常用命令行工具使用

轉自&#xff1a;http://blog.csdn.net/winwill2012/article/details/46364923jps命令使用jps命令類似于Linux下的ps命令&#xff0c;用于列出當前正在運行的所有Java進程。基本用法直接運行不加任何參數就能列出所有java進程的pid和類的短名稱。例如&#xff1a;常用參數-q參數…

crossphp框架中,在模板中加載其他模板

這里說我自己做的項目的應用場景 要求是用layui框架的layer組件,實現彈出層效果,用原聲PHP無疑很容易做到,但是如果應用到crossphp框架流程就會非常麻煩 這里簡單講一下大致的步驟: 1. 在一個模板文件中應用layui的layer組件實現彈出框 index.tpl.php2. 從我們自己定義的路徑上…