String類詳解(1)

首先String是一個類。 

1,實例化String類方法。

1)直接賦值:String name="haha";

2)通過關鍵字:String name=new String("haha");

?

2,String類的數據比較。

首先回顧一下,基礎數據的比較使用"=="比較。

public class StringDemo04{public static void main(String args[]){String str1 = "hello" ;                    // 直接賦值String str2 = new String("hello") ;        // 通過new賦值String str3 = str2 ;                    // 傳遞引用,共用一個堆地址空間。System.out.println("str1 == str2 --> " + (str1==str2)) ;    // falseSystem.out.println("str1 == str3 --> " + (str1==str3)) ;    // falseSystem.out.println("str2 == str3 --> " + (str2==str3)) ;    // true
    }
};

現在使用的判斷相等是判斷地址空間相等,判斷的值是地址值。

如果要想判斷其內存是否相等,則必須要使用String類中提供的equals()方法完成。

此方法使用如下:

public class StringDemo05{public static void main(String args[]){String str1 = "hello" ;                    // 直接賦值String str2 = new String("hello") ;        // 通過new賦值String str3 = str2 ;                    // 傳遞引用System.out.println("str1 equals str2 --> " + (str1.equals(str2))) ;    // trueSystem.out.println("str1 equals str3 --> " + (str1.equals(str3))) ;    // trueSystem.out.println("str2 equals str3 --> " + (str2.equals(str3))) ;    // true
    }
};

結論:String兩種比較方式:

1)一種是“==”比較的是地址值。

2)一種使用equals()完成,比較的是具體的內容,比較常用。

?

3,兩種實例化的區別。

字符串的特征:

1)一個字符串就是String的匿名對象。(即沒有分配棧內存空間)

public class StringDemo06{public static void main(String args[]){System.out.println("hello".equals("hello")) ;}
};

了解此后,實際之前操作:

String name="hehe";

就表示將一個堆內存空間指給了棧內存空間。

只有掌握了這一點后,才能分析出使用哪種方式實例化更合適。

public class StringDemo07{public static void main(String args[]){String str1 = "hello" ;                    // 直接賦值String str2 = "hello" ;                    // 直接賦值String str3 = "hello" ;                    // 直接賦值System.out.println("str1 == str2 --> " + (str1==str2)) ;    // trueSystem.out.println("str1 == str3 --> " + (str1==str3)) ;    // trueSystem.out.println("str2 == str3 --> " + (str2==str3)) ;    // true
    }
};

這里沒有用equals()方法,但是都是ture。

以上三個的內存地址都一樣,

因為三個對象指向同一個堆內存空間,所有使用直接賦值能夠節省內存空間。

而使用new String()方式。

public class StringDemo08{public static void main(String args[]){String str1 = new String("hello") ;    }
};

使用直接賦值方式只要一個空間即可,而new String()則會開辟兩個地址空間。所以最好使用直接賦值。

?

2)字符串的內容不可改變。

這是一個重要特征。

public class StringDemo09{public static void main(String args[]){String str = "hello" ;        // 聲明字符串str = str + " world!!!"    ;    // 修改字符串System.out.println("str = " + str) ;}
};

這里字符串對象是改變了,但是字符串并沒有改變。

實際上字符串內容的改變,改變的只是內存地址的引用關系。

所以在開發中要避免以下情況出現。

public class StringDemo10{public static void main(String args[]){String str1 = "LiXingHua" ;        // 聲明字符串對象for(int i=0;i<100;i++){            // 循環修改內容str1 += i ;                    // 字符串的引用不斷改變
        }System.out.println(str1) ;}
};

但是這樣的操作,要斷開連接100次才能完成。這種操作性能很低,應避免使用。

轉載于:https://www.cnblogs.com/alsf/p/5513750.html

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

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

相關文章

第六章 計算機網絡與i教案,大學計算機基礎教案第6章計算機網絡基礎與應用.docx...

廣東第二師范學院計算機科學系教案課程名稱計算機基礎I課程代碼111012003課程類型公必√□ 專必□ 專選□ 公選□授課方式講授□ 實踐□案例討論□ 上機√□考核方式考試□√ 考查□上機□√ 論文□教學總學時數16學分數1學時分配課堂講授 2 學時&#xff1b;實踐課 14 學時教材…

分享性能優化問題

談談性能優化問題 代碼層面&#xff1a;避免使用css表達式&#xff0c;避免使用高級選擇器&#xff0c;通配選擇器。 緩存利用&#xff1a;緩存Ajax&#xff0c;使用CDN&#xff0c;使用外部js和css文件以便緩存&#xff0c;添加Expires頭&#xff0c;服務端配置Etag&#xff0…

使用Scala,Play和Akka連接到RabbitMQ(AMQP)

在本文中&#xff0c;我們將研究如何從Scala連接到RabbitMQ&#xff0c;以便可以從應用程序中支持AMQP協議。 在此示例中&#xff0c;我將使用Play Framework 2.0作為容器&#xff08;有關更多信息&#xff0c;請參閱我在該主題上的其他文章 &#xff09;在其中運行應用程序&am…

阿爾法貝塔閥原理_圖總結 - 阿爾法個貝塔 - 博客園

一.思維導圖二.概念筆記圖的存儲結構1. 鄰接矩陣定義&#xff1a;設圖G有n (n大于等于1) 個頂點&#xff0c;則鄰接矩陣是一個n階方陣。當矩陣中的 [i,j] !0(下標從1開始) ,代表其對應的第i個頂點與第j個頂點是連接的特點無向圖的鄰接矩陣是對稱矩陣&#xff0c;n個頂點的無向圖…

WebApi Post 后臺無法獲取參數的解決方案

事件回放&#xff1a; 之前一段時間&#xff0c;公司里前端用的Angularjs 發送http請求也是用的ng的組件&#xff0c;后臺是.Net的WebApi 前端 var data {PArgs: {PageIndex: 0,PageSize: 8,RowsCount: 0} };$http.post("/Api/Test/ABC", data).success(function (d…

南京大學計算機系周小莉,周會群

媒體報道&#xff1a;南京大學周會群&#xff1a;用計算機聰明地做實驗Q《中國教育網絡》A周會群Q&#xff1a;南京大學的高性能計算中心非常特殊&#xff0c;分布在物理&#xff0c;化學、天文、地球科學四個不同的學科中&#xff0c;為什么采取這種模式&#xff1f;A&#xf…

不要慫,就是GAN (生成式對抗網絡) (五):無約束條件的 GAN 代碼與網絡的 Graph...

GAN 這個領域發展太快&#xff0c;日新月異&#xff0c;各種 GAN 層出不窮&#xff0c;前幾天看到一篇關于 Wasserstein GAN 的文章&#xff0c;講的很好&#xff0c;在此把它分享出來一起學習&#xff1a;https://zhuanlan.zhihu.com/p/25071913。相比 Wasserstein GAN &#…

用于MyBatis CRUD操作的Spring MVC 3控制器

到目前為止&#xff0c;我們已經為域類“ User ”創建了CRUD數據庫服務&#xff0c;并且還將MyBatis配置與Spring Configuration文件集成在一起。 接下來&#xff0c;我們將使用Spring MVC創建一個網頁&#xff0c;以使用MyBatis CRUD服務對數據庫執行操作。 使用MyBatis 3創建…

2pin接口耳機_拆解報告:雷柏首款真無線耳機XS200

-----我愛音頻網拆解報告第185篇-----雷柏是一家歷史悠久的鼠標和鍵盤廠商&#xff0c;截至目前&#xff0c;雷柏(rapoo)總共出了四款耳機&#xff0c;此前曾推出過三款藍牙耳機&#xff0c; 分別是S500 藍牙立體聲麥克風耳機&#xff0c;S200 藍牙立體聲麥克風耳機&#xff0c…

html表單中陰影,html5中input表單加邊框,陰影效果.doc

文檔介紹&#xff1a;CSS:input:focus{border-color:#99;}獲取焦點時改變顏色focus能同時改變寬度長度背景色…….form,p(margin-bottom:30px;margin-left:20px;).shadow,.one,.two,.three,.four,.five,.six( height:50px; width:280px; border:C;).shadow( -moz-box-shadow:C;…

帶有GSON和抽象類的JSON

經過多年使用org.json庫在Java中支持JSON數據交換格式后&#xff0c;我已切換到Google Gson 。 org.json是一個較低級的庫&#xff0c;因此您必須創建JSONObject&#xff0c;JSONArray&#xff0c;JSONString等…并執行其他低級工作。 Gson簡化了這項工作。 它提供了簡單的toJs…

深入理解javascript原型和閉包(3)——prototype原型

轉載&#xff0c;原文地址http://www.cnblogs.com/wangfupeng1988/p/3978131.html 既typeof之后的另一位老朋友&#xff01; prototype也是我們的老朋友&#xff0c;即使不了解的人&#xff0c;也應該都聽過它的大名。如果它還是您的新朋友&#xff0c;我估計您也是javascript的…

python 溫度 符號_Python通過小實例入門學習---1.0(溫度轉換)

1.安裝Python 3 下載地址: Welcome to Python.org?www.python.org 2.“溫度轉換”實例:攝氏度--->華氏度 / 華氏度--->攝氏度 TempConvert.py TempStr = input("請輸入帶有符號的溫度值:") if TempStr[-1] in ["f","F"]:C = (eval(Tem…

mysql 修改root密碼

1.找到配置文件my.ini &#xff0c;然后將其打開&#xff0c;可以選擇用記事本打開 C:\Program Files (x86)\MySQL\MySQL Server 5.0 2.打開后&#xff0c;搜索mysqld關鍵字&#xff0c;找到后&#xff0c;在mysqld下面添加skip-grant-tables&#xff0c;保存退出。 PS&#x…

聯想計算機CDROM啟動,聯想電腦光驅啟動問題?

1、開機按del鍵或f2進入bios設置(不同主板按鍵不一樣&#xff0c;一般是DEL&#xff0c;也可能是F2&#xff0c;可以參考下主板說明)&#xff0c;將計算機的啟動模式調成從光盤啟動。也就是從cdrom啟動&#xff0c;根據主板的不同&#xff0c;bios設置有所差異(一般是&#xff…

沒有J2EE容器的JNDI和JPA

我們希望通過盡可能簡單的設置來測試一些JPA代碼。 計劃僅使用Java和Maven&#xff0c;不使用應用程序服務器或其他J2EE容器。 我們的JPA配置需要兩件事才能成功運行&#xff1a; 數據庫來存儲數據&#xff0c; JNDI訪問數據庫。 這篇文章分為兩個部分。 第一部分顯示了如何…

string 大小寫轉換

STL的algorithm庫確實給我們提供了這樣的便利&#xff0c;使用模板函數transform可以輕松解決這個問題&#xff0c;開發人員只需要提供一個函數對象&#xff0c;例如將char轉成大寫的toupper函數或者小寫的函數tolower函數。 transform原型&#xff1a; 1 #include <string&…

linux服務器上svn的log_如何在 Centos 8 / RHEL 8 上安裝和配置 VNC 服務器 | Linux 中國...

在 Centos 8 和 RHEL 8 系統中&#xff0c;默認未安裝 VNC 服務器&#xff0c;它需要手動安裝。在本文中&#xff0c;我們將通過簡單的分步指南&#xff0c;介紹如何在 Centos 8 / RHEL 8 上安裝 VNC 服務器。-- Pradeep KumarVNC(虛擬網絡計算Virtual Network Computing)服務器…

怎么把網頁保存到本地計算機,在IE瀏覽器中,將網頁保存到本地計算機中,若只需保存其中的文字、超鏈接和表格信息,應該選擇的保存類型為( )...

2.(2017高一上東臺月考)閱讀下面一段資料&#xff0c;判斷在給出的幾種說法中不正確的是( )資料&#xff1a;IP電話與傳統電話IP電話是按國際互聯網協議規定的網絡技術內容開通的電話業務&#xff0c;中文翻譯為網絡電話或互聯網電話&#xff0c;它是利用國際互聯網Inetrnet為…

html_博客博主

csdn: 工匠若水 http://blog.csdn.net/yanbober yunama: IT藍豹&#xff1a;http://www.itlanbao.com/&#xff1b; http://ask.dcloud.net.cn/docs/; 博客園&#xff1a; https://www.cnblogs.com/guweiwei/category/965437.html轉載于:https://www.cnblogs.com/awkflf11/p/55…