成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

淺談java中String相關(guān)問題

原文:https://blog.csdn.net/qq_41268447/article/details/96759597    首先我們先說一下java堆內(nèi)存和棧內(nèi)存 java中八個(gè)基本數(shù)據(jù)類型就是值類型,存放在棧內(nèi)存中;引用類型存放在堆內(nèi)存中。  然后我們再看一看兩種不同比較字符串的方法 (1)equals比較兩個(gè)String對(duì)象的值是否相等  String str1 = "hello quanjizhu"; String str2 =str1+"haha"; String str3 = new String("hello quanjizhu");  System.out.println(str1.equals(str2)); //false System.out.println(str1.equals(str3)); //true   (2)= =:比較兩個(gè)String對(duì)象的指向的內(nèi)存地址是否相等  String str1 = "hello quanjizhu"; String str2 =str1+"haha"; String str3 = new String("hello quanjizhu");  System.out.println(str1==str2);//false   System.out.println(str1==str3); //false  3.String 創(chuàng)建  String str1 = new String("abc");    Stirng str2 = "abc";  1 2 前者str1的創(chuàng)建會(huì)直接在堆中創(chuàng)建一個(gè)String對(duì)象,然后將該對(duì)象的引用返回給用戶,注意前者jvm不會(huì)自己將字符串放入常量池中,除非運(yùn)用intern方法。 后者jvm會(huì)現(xiàn)在常量池中尋找是否有該常量,如果有則返回給用戶,沒有則會(huì)先創(chuàng)建一個(gè)常量放入常量池中,然后再堆中創(chuàng)建一個(gè)對(duì)象指向這個(gè)常量,最后返回給用戶 下面舉個(gè)例子吧     String str1 = new String("abc"); //jvm 在堆上創(chuàng)建一個(gè)String對(duì)象      //jvm 在strings pool中找不到值為“abc”的字符串,因此    //在堆上創(chuàng)建一個(gè)String對(duì)象,并將該對(duì)象的引用加入至常量池中    //此時(shí)堆上有兩個(gè)String  str1  str2 對(duì)象   Stirng str2 = "abc";      if(str1 == str2){            System.out.println("str1 == str2");    }else{            System.out.println("str1 != str2");      //打印結(jié)果是 str1 != str2,因?yàn)樗鼈兪嵌焉蟽蓚€(gè)不同的對(duì)象    再舉個(gè)例子  String str1 = new String("abc"); //jvm 在堆上創(chuàng)建一個(gè)String對(duì)象     str1 = str1.intern(); //將abc放入常量池中 //此時(shí),jvm發(fā)現(xiàn)strings pool中已有“abc”對(duì)象了 //因此直接返回str1指向的對(duì)象給str2,也就是說str2和str1引用著同一個(gè)對(duì)象,   //此時(shí),堆上的有效對(duì)象只有一個(gè)。   Stirng str2 = "abc";      if(str1 == str2){            System.out.println("str1 == str2");    }else{            System.out.println("str1 != str2");    }     //打印結(jié)果是 str1 == str2    4.字符串的串接 因?yàn)榇嬖诔A砍刂械某A恳唤?jīng)創(chuàng)建后不可以改變,但是出現(xiàn)串接的操作會(huì)改變字符串的內(nèi)容和長度,這不就矛盾了么,所以再出現(xiàn)串接時(shí),java會(huì)自己new一個(gè)新的對(duì)象一步步的存儲(chǔ)內(nèi)容,但是這樣做又非常麻煩啊,畢竟需要一步步的new對(duì)象,存對(duì)象。所以java又提供了StringBuffer/SringBulider類,他在做串接的時(shí)候改變的是內(nèi)部的值,而不會(huì)new對(duì)象。

成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元葉集做網(wǎng)站,已為上家服務(wù),為葉集各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

網(wǎng)站名稱:淺談java中String相關(guān)問題
URL標(biāo)題:http://jinyejixie.com/article26/jjphjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、小程序開發(fā)、全網(wǎng)營銷推廣、外貿(mào)網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
额济纳旗| 化德县| 宁强县| 共和县| 鹤峰县| 滨海县| 孟村| 平安县| 天水市| 吉木萨尔县| 海安县| 万安县| 翼城县| 麻栗坡县| 金堂县| 林甸县| 雷山县| 海门市| 德令哈市| 鄱阳县| 台湾省| 阳新县| 垣曲县| 松溪县| 紫金县| 新竹市| 柏乡县| 青阳县| 辰溪县| 县级市| 乌苏市| 肃宁县| 屯留县| 沁水县| 山西省| 太保市| 屏东市| 剑阁县| 应城市| 土默特左旗| 福海县|