欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年07月10日 08:30:41   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇基于String變量的兩種創(chuàng)建方式(詳解)。小編覺得挺不錯(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ū)的字符串常量池中沒有存儲(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ì)開辟一個(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)文章

  • Springboot事務(wù)失效的原因及解決辦法詳解

    Springboot事務(wù)失效的原因及解決辦法詳解

    這篇文章主要介紹了Springboot事務(wù)失效的原因及解決辦法詳解,spring中的事務(wù)是依賴AOP的,AOP是通過(guò)動(dòng)態(tài)代理實(shí)現(xiàn)的,只有通過(guò)代理類訪問(wèn)的方法才能被攔截,而addMultiFile直接內(nèi)部調(diào)用了addFile方法,所以addFile中的事務(wù)就不會(huì)生效
    2023-10-10
  • Java并發(fā)編程中使用Executors類創(chuàng)建和管理線程的用法

    Java并發(fā)編程中使用Executors類創(chuàng)建和管理線程的用法

    這篇文章主要介紹了Java并發(fā)編程中使用Executors類創(chuàng)建和管理線程的用法,文中舉了用其啟動(dòng)線程和設(shè)置線程優(yōu)先級(jí)的例子,需要的朋友可以參考下
    2016-03-03
  • 基于Java中Math類的常用函數(shù)總結(jié)

    基于Java中Math類的常用函數(shù)總結(jié)

    下面小編就為大家?guī)?lái)一篇基于Java中Math類的常用函數(shù)總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • Java并發(fā)編程之ReentrantLock實(shí)現(xiàn)原理及源碼剖析

    Java并發(fā)編程之ReentrantLock實(shí)現(xiàn)原理及源碼剖析

    ReentrantLock 是常用的鎖,相對(duì)于Synchronized ,lock鎖更人性化,閱讀性更強(qiáng),文中將會(huì)詳細(xì)的說(shuō)明,請(qǐng)君往下閱讀
    2021-09-09
  • IntelliJ IDEA2021.1 配置大全(超詳細(xì)教程)

    IntelliJ IDEA2021.1 配置大全(超詳細(xì)教程)

    這篇文章主要介紹了IntelliJ IDEA2021.1 配置大全(超詳細(xì)教程),需要的朋友可以參考下
    2021-04-04
  • JAVA十大排序算法之冒泡排序詳解

    JAVA十大排序算法之冒泡排序詳解

    這篇文章主要介紹了java中的冒泡排序,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 安裝IDEA和配置Maven的步驟詳解

    安裝IDEA和配置Maven的步驟詳解

    這篇文章主要介紹了安裝IDEA和配置Maven的步驟詳解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 關(guān)于maven打包時(shí)的報(bào)錯(cuò): Return code is: 501 , ReasonPhrase:HTTPS Required

    關(guān)于maven打包時(shí)的報(bào)錯(cuò): Return code is: 501 , ReasonPhrase:HTTPS Requ

    這篇文章主要介紹了關(guān)于maven打包時(shí)的報(bào)錯(cuò): Return code is: 501 , ReasonPhrase:HTTPS Required,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java的函數(shù)方法詳解(含漢諾塔問(wèn)題)

    Java的函數(shù)方法詳解(含漢諾塔問(wèn)題)

    漢諾塔問(wèn)題是一個(gè)經(jīng)典的遞歸問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Java函數(shù)方法(含漢諾塔問(wèn)題)的相關(guān)資料,文中通過(guò)圖文以及代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Java虛擬機(jī)JVM性能優(yōu)化(二):編譯器

    Java虛擬機(jī)JVM性能優(yōu)化(二):編譯器

    這篇文章主要介紹了Java虛擬機(jī)JVM性能優(yōu)化(二):編譯器,本文先是講解了不同種類的編譯器,并對(duì)客戶端編譯,服務(wù)器端編譯器和多層編譯的運(yùn)行性能進(jìn)行了對(duì)比,然后給出了幾種常見的JVM優(yōu)化方法,需要的朋友可以參考下
    2014-09-09

最新評(píng)論