java中的string是什么_什么是String

f129eb988f65b35b30c985da0cea0df5.png

2017-07-28

String和StringBuf

String name=new String("HuangWeiFeng");

System。out。println(name+"is my name");

看似已經很精簡了,其實并非如此。為了生成二進制的代碼,要進行如下的步驟和操作:

(1) 生成新的字符串 new String(STR_1);

(2) 復制該字符串;

(3) 加載字符串常量"HuangWeiFeng"(STR_2);

(4) 調用字符串的構架器(Constructor);

(5) 保存該字符串到數組中(從位置0開始);

(6) 從java。 io。PrintStream類中得到靜態的out變量;

(7) 生成新的字符...全部

String name=new String("HuangWeiFeng");

System。out。println(name+"is my name");

看似已經很精簡了,其實并非如此。為了生成二進制的代碼,要進行如下的步驟和操作:

(1) 生成新的字符串 new String(STR_1);

(2) 復制該字符串;

(3) 加載字符串常量"HuangWeiFeng"(STR_2);

(4) 調用字符串的構架器(Constructor);

(5) 保存該字符串到數組中(從位置0開始);

(6) 從java。

io。PrintStream類中得到靜態的out變量;

(7) 生成新的字符串緩沖變量new StringBuffer(STR_BUF_1);

(8) 復制該字符串緩沖變量;

(9) 調用字符串緩沖的構架器(Constructor);

(10) 保存該字符串緩沖到數組中(從位置1開始);

(11) 以STR_1為參數,調用字符串緩沖(StringBuffer)類中的append方法;

(12) 加載字符串常量"is my name"(STR_3);

(13) 以STR_3為參數,調用字符串緩沖(StringBuffer)類中的append方法;

(14) 對于STR_BUF_1執行toString命令;

(15) 調用out變量中的println方法,輸出結果。

由此可以看出,這兩行簡單的代碼,就生成了STR_1,STR_2,STR_3,STR_4和STR_BUF_1五個對象變量。這些生成的類的實例一般都存放在堆中。堆要對所有類的超類,類的實例進行初始化,同時還要調用類極其每個超類的構架器。

而這些操作都是非常消耗系統資源的。因此,對對象的生成進行限制,是完全有必要的。

經修改,上面的代碼可以用如下的代碼來替換。

StringBuffer name=new StringBuffer("HuangWeiFeng");

System。

out。println(name。append("is my name。")。toString());

系統將進行如下的操作:

(1) 生成新的字符串緩沖變量new StringBuffer(STR_BUF_1);

(2) 復制該字符串緩沖變量;

(3) 加載字符串常量"HuangWeiFeng"(STR_1);

(4) 調用字符串緩沖的構架器(Constructor);

(5) 保存該字符串緩沖到數組中(從位置1開始);

(6) 從java。

io。PrintStream類中得到靜態的out變量;

(7) 加載STR_BUF_1;

(8) 加載字符串常量"is my name"(STR_2);

(9) 以STR_2為參數,調用字符串緩沖(StringBuffer)實例中的append方法;

(10) 對于STR_BUF_1執行toString命令(STR_3);

(11)調用out變量中的println方法,輸出結果。

由此可以看出,經過改進后的代碼只生成了四個對象變量:STR_1,STR_2,STR_3和STR_BUF_1。你可能覺得少生成一個對象不會對程序的性能有很大的提高。但下面的代碼段2的執行速度將是代碼段1的2倍。

因為代碼段1生成了八個對象,而代碼段2只生成了四個對象。

代碼段1:

String name= new StringBuffer("HuangWeiFeng");

name+="is my";

name+="name";

代碼段2:

StringBuffer name=new StringBuffer("HuangWeiFeng");

name。

append("is my");

name。append("name。")。toString();。收起

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

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

相關文章

詳解華為與三星專利之爭 律師稱可能會打持久戰

華為技術有限公司(下稱“華為”)起訴三星,在近期中國企業起訴外企的“潮流”中掀起不小的漩渦。 “叫好聲”認為,這是已經擁有專利積累的中國企業在國際舞臺上的一次“實力亮相”,這件事本身就是中國制造業的勝利;“陰謀論者”認為…

租金 預測_如何預測租金并優化租賃期限,從而節省資金

租金 預測by Zhen Liu劉震 如何預測租金并優化租賃期限,從而節省資金 (How to Predict Rent and Optimize Your Lease Duration So You Can Save Money) In my last post, we talked about how to pick the best month to sign the lease based on seasonality. No…

java system load_關于java的System.load 和 System.loadLibrary

關于兩者的區別(參見http://blog.csdn.net/ring0hx/article/details/3242245)System.load 參數為庫文件的絕對路徑,可以是任意路徑。System.loadLibrary方法load的為相對路徑,即在java.library.path定義下的lib文件,文件名會更具不同的系統實…

東進技術南亞創捷

深圳市東進技術在其海外市場拓展中取得又一驕人戰績,于四月下旬與印度One97通信公司簽訂了長期戰略合作協議,One97將全面采用東進的全系列產品。同時簽訂的一期采購計劃,總裝機端口數約3萬線。該合約主要涉及東進技術的領先主打產品——Keygo…

如何在5分鐘內通過身份驗證構建RESTful API —全部從命令行(第1部分)

by Niharika Singh由Niharika Singh 如何在5分鐘內通過身份驗證構建RESTful API —全部從命令行(第1部分) (How to Build a RESTful API with Authentication in 5 minutes — all from your command line (Part 1)) If the title of this article excites you, then my frien…

MD5與SHA1

一、MD5 MD5消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以產生出一個128位(16字節)的散列值(hash value),用于確保信…

java基本類型的默認值及其取值范圍

轉載于:https://www.cnblogs.com/billyu/p/5843845.html

tair client java_TFS(Taobao File System)Java Client 使用經驗

TFS Java客戶端的說明tfs-client-java版本選擇:---------------------------------------tfs-client-java的版本有:release-2.0.0/tfs-with-large-2.1.1/tfs-client-java-2.1.3/release-2.2.2/release-2.2.3/release-2.2.4/release-2.2.6/最終我選用了tf…

Nutanix公布財報數據 準備IPO前表現搶眼

Nutanix已經向美國證券交易委員會提交了修訂的S-1 IPO文件,其中的數據顯示,Nutanix憑借著強力增長的業務為IPO做好了準備。 Nutanix公布財報數據 準備IPO前表現搶眼 Nutanix CEO Dheeraj Pandey Nutanix最新的財報數據無論從環比和同比收入增長方面看起來…

DevExpress WinForms使用教程:圖表控件 - 內置深入查詢

【DevExpress WinForms v18.2下載】在最新發布的DevExpress WinForms v18.2中,DevExpress WinForms和ASP.NET圖表控件引入嵌套系列模板的概念,是您能在不編寫自定義代碼的情況下深入查詢圖表。 Chart控件的嵌入式痕跡導航元素顯示導航層次結構中各個數據…

serverless 構建_使用Serverless,StepFunctions和StackStorm Exchange構建社區注冊應用程序-Episode…...

serverless 構建by Dmitri Zimine由Dmitri Zimine 使用Serverless,StepFunctions和StackStorm Exchange構建社區注冊應用程序-第3集 (Building a community sign-up app with Serverless, StepFunctions, and StackStorm Exchange — Episode 3) Build a real-worl…

AlfaLaval公司采用低速通風技術冷卻數據中心

日前,瑞典熱交換專家AlfaLaval公司推出了遵循低速通風原則的一系列數據中心冷卻解決方案,其方案需要大量的風扇,而使空氣以相當慢的速度流動,取得了與計算機機房空調(CRAC)一樣有效的制冷效果。 該公司表示…

java pdf 首頁 縮略圖_Java中將上傳的文件首頁生成縮略圖(先將上傳的文件轉成pdf,然后將pdf轉成jpg)...

1、首先將上傳的非jpg,pdf格式的文件轉成pdf,這個是采用OpenOffice進行轉的,具體代碼如下:private void officeToPdf(){OpenOfficeConnection connection new SocketOpenOfficeConnection(8100);try {connection.connect();} cat…

1.2 如何在visual studio 中建立C#程序

這一節簡單介紹一下怎么在visual studio 2015中建立第一個C#程序,我使用的是2015版的visual studio,不同版本可能有一些差異,不過大體上是相同的,這些信息僅供新手參考,大牛請自動跳過。 首先雙擊visual studio 2015的…

javascript在html中的延遲與異步

1.相同點:延遲與異步都會同時加載script 2.不同點:延遲是script加載完成后,待HTML執行完畢后,才會接著執行script; 異步是script加載完成后,接著就執行該程序,HTML等到script完全執行完畢后&…

三星全速進軍物聯網 所有產品都將內置互聯功能

韓媒報道,近日消息傳出,三星電子的家電部門,當前生產的產品都將內建Wi-Fi。相關高層表示,此種做法可替更先進的功能預作準備,因為家電壽命較長,至少可用五年。目前為止,三星家電只有部分具備Wi-…

2d手機游戲開發_我的手機游戲如何在2周內獲得365K應用商店下載(以及為什么我退出獨立游戲開發公司…...

2d手機游戲開發by William Kwan關冠偉 我的手機游戲如何在2周內獲得365K應用商店下載(以及為什么以后我退出獨立游戲開發者) (How My Mobile Game Got 365K App Store Downloads in 2 Weeks (And Why I Quit Indie Game Dev Afterwards)) I’m not a successful game develope…

Python ValueError: IO operation on closed file

ValueError IO operation on closed file表示處理了已經被關閉的數據,在python 中 with語句的上下文會幫助處理,也就是說,當python的處理代碼不對齊的時候會出現這種情況。例子如下: header那一行,突出,也就…

java面向字符的輸入流_詳細解讀Java編程中面向字符的輸入流

字符流是針對字符數據的特點進行過優化的,因而提供一些面向字符的有用特性,字符流的源或目標通常是文本文件。 Reader和Writer是java.io包中所有字符流的父類。由于它們都是抽象類,所以應使用它們的子類來創建實體對象,利用對象來…

任務信號量

在實際任務間的通信中,一個或多個任務發送一個信號量或者消息給另一個任務是比常見的,而一個任務給多個任務發送信號量和消息相對比較少。前面所講的信號量和消息隊列均是單獨的內核對象,是獨立于任務存在的。這兩章要講述的任務信號量和任務…