最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于String變量的兩種創(chuàng)建方式(詳解)

 更新時(shí)間:2017年07月10日 08:30:41   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇基于String變量的兩種創(chuàng)建方式(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在java中,有兩種創(chuàng)建String類型變量的方式:

String str01="abc";//第一種方式
String str02=new String("abc");//第二種方式

第一種方式創(chuàng)建String變量時(shí),首先查找JVM方法區(qū)的字符串常量池是否存在存放"abc"的地址,如果存在,則將該變量指向這個(gè)地址,不存在,則在方法區(qū)創(chuàng)建一個(gè)存放字面值"abc"的地址。

第二種方式創(chuàng)建String變量時(shí),在堆中創(chuàng)建一個(gè)存放"abc"的對(duì)象,使變量str02指向堆中的對(duì)象。

根據(jù)上面的創(chuàng)建方式,觀察下面的示例:

String str01 = "abc";
String str02 = "abc";
String str03 = new String("abc");
String str04 = new String("abc");
System.out.println("str01==str02:" + (str01 == str02));
System.out.println("str03==str04:" + (str03 == str04));
System.out.println("str01==str03:" + (str01 == str03));

分析:

1、在創(chuàng)建str01時(shí),方法區(qū)的字符串常量池中沒(méi)有存儲(chǔ)"abc"的地址,就在常量池中創(chuàng)建一個(gè)存放"abc"的地址,使變量str01指向該地址。創(chuàng)建str02時(shí),字符串常量池已存在存放"abc"的地址,將str02變量指向該地址,此時(shí)str01與str02指向同一內(nèi)存地址,所以"str01==str02"為true。

2、使用new關(guān)鍵字創(chuàng)建對(duì)象時(shí),每一次都會(huì)在堆中創(chuàng)建一個(gè)新的對(duì)象,所以str03與str04指向?qū)ο蟮牡刂凡煌?str03==str04"為false。

3、str01指向方法區(qū),str03指向堆,所以"str01==str03"為false。

String對(duì)象被設(shè)計(jì)成不可改變的對(duì)象,即String對(duì)象所包含的字面值發(fā)生改變時(shí),會(huì)開(kāi)辟一個(gè)新的地址,創(chuàng)建一個(gè)新的對(duì)象,原地址不變。

String str01 = "abc";
String str02 = "abc";
str01="def";

在方法區(qū)的字符串常量池中建立一個(gè)新的存儲(chǔ)"def"的地址,str01指向該地址,str02的指向不變。

以上這篇基于String變量的兩種創(chuàng)建方式(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

昌邑市| 方正县| 富民县| 曲沃县| 普陀区| 陈巴尔虎旗| 武义县| 敦化市| 门源| 彰化市| 密山市| 共和县| 延长县| 天台县| 永胜县| 盘山县| 孝昌县| 靖江市| 南澳县| 乌鲁木齐县| 河西区| 金溪县| 雷波县| 赞皇县| 盐城市| 许昌县| 石棉县| 靖边县| 察隅县| 彩票| 睢宁县| 嵊州市| 凤台县| 全南县| 楚雄市| 贡觉县| 曲靖市| 安顺市| 龙川县| 普安县| 灌阳县|