日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java的string存放位置的疑惑

瀏覽:175日期:2023-12-12 11:40:08

問(wèn)題描述

有一道題是這樣的:

new String('aaa')創(chuàng)建了幾個(gè)對(duì)象? 答案是創(chuàng)建一個(gè)或2個(gè),理由是如果常量區(qū)中存在了aaa變量,則只在堆中創(chuàng)建一個(gè);如果常量區(qū)不存在aaa變量,則分別在常量區(qū)和堆中各創(chuàng)建一個(gè)。

但我實(shí)際測(cè)試的結(jié)果卻不符:

String s1 = new String('aaa');String s2 = 'aaa';System.out.println(s1 == s2); //false

如果說(shuō)new String('aaa')在堆中和常量區(qū)中都創(chuàng)建了對(duì)象,那么為什么s2不直接復(fù)用s1的常量池的引用呢?

補(bǔ)充:發(fā)現(xiàn)自己想錯(cuò)了,s1應(yīng)該指向的堆中的元素,而s2指向的是常量池中的,所以兩者不相等是對(duì)的,那有沒(méi)有辦法測(cè)試測(cè)試出new String('aaa')也同時(shí)在常量池中創(chuàng)建對(duì)象了呢?

又或者String s3 = 'aa'.concat('a'); 請(qǐng)問(wèn)這個(gè)s3是指向堆中還是指向常量池的,它能否復(fù)用常量池中的變量呢?

問(wèn)題解答

回答1:

String s1 = new String('aaa'); String s2 = 'aaa'; System.out.println(s1 == s2); //false System.out.println(s1.intern() == s2); //true

當(dāng)一個(gè)String實(shí)例調(diào)用intern()方法時(shí),會(huì)查找常量池中是否有相同的字符串常量,如果有,則返回其的引用,如果沒(méi)有,則在常量池中增加一個(gè)等于str的字符串并返回它的引用,由于s2已經(jīng)在常量池中,所以s1.intern()不會(huì)再創(chuàng)建,而是直接引用同一個(gè)'aaa'。

如果這個(gè)還不夠明顯,那么我們就來(lái)試驗(yàn),

public class Cons { public static void main(String[] args) throws InterruptedException {String s1 = new String('vv'); }}

然后命令行

java的string存放位置的疑惑

注意常量池有 VV

回答2:問(wèn)題一:

String a = “aaa”,會(huì)在常量池中創(chuàng)建對(duì)象,如果常量池中存在同樣的對(duì)象,那a就直接指向該對(duì)象。而 String a = new String('aaa'),若常量池中存在,則不在常量池中創(chuàng)建,只在堆中創(chuàng)建。

String a = new String('aaa');String b = new String('aaa');System.out.println(a == b);//比較兩者堆中的引用返回falseSystem.out.println(a.intern() == b.intern());//比較兩者常量池中的引用,返回true問(wèn)題二:

從源碼中找答案String s3 = 'aa'.concat('a'); 其實(shí)就相當(dāng)于 String s3 = new String('aaa'),會(huì)在堆中創(chuàng)建對(duì)象。

public String concat(String str) { int otherLen = str.length(); if (otherLen == 0) {return this; } int len = value.length; char buf[] = Arrays.copyOf(value, len + otherLen); str.getChars(buf, len); return new String(buf, true);}回答3:

String不是每次賦值都重新創(chuàng)建一個(gè)String對(duì)象實(shí)例嗎?所以才會(huì)有StringBuilder呀。

回答4:

按照面向?qū)ο蟮乃枷耄袥](méi)有同時(shí)在常量池創(chuàng)建對(duì)象,可能String自己最清楚,嗯,他有一個(gè)intern()方法。

回答5:

前面幾位的回答已經(jīng)非常好了,我補(bǔ)充一句,我們經(jīng)常說(shuō)的“把字符串放到常量池”是指把字符串的引用放到字符串常量池(String Pool,本質(zhì)是一個(gè)哈希表)中,字符串本身還是放在堆上的。

回答6:

// new一次就是在堆中創(chuàng)建一個(gè)新的對(duì)象。不new的話aaa直接在字符串常量中取值;// String s2 = 'aaa'; 先在內(nèi)存中尋找aaa,如果有,則將aaa的內(nèi)存首地址指向了s1, 如果沒(méi)有則在堆中中創(chuàng)建一個(gè)新的對(duì)象。// String s1 = new String('aaa');// // 不管'aaa'在內(nèi)存中是否存在,都會(huì)在堆中開(kāi)辟新空間,將字符串'aaa'的內(nèi)存首地址指向s1。String a = 'aaa';// aaa在常量池中創(chuàng)建一個(gè)對(duì)象,將內(nèi)存首地址指向了aString b = 'aaa';// 直接aaa已經(jīng)存在的內(nèi)存首地址指向b。String c = new String('aaa');// 不管存在與否,在堆中創(chuàng)建1個(gè)空間,內(nèi)存首地址與常量池中的地址完全不同System.out.println(a==b);// trueSystem.out.println(a==c);// false

標(biāo)簽: java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
蜜桃久久久久| 国产精品s色| 亚洲国产成人精品女人| 亚洲免费观看| 日韩一区二区三区高清在线观看| 亚洲一区二区三区四区电影| 7777精品| 黑人精品一区| 久久国产99| 久久国内精品自在自线400部| 精品一区二区三区视频在线播放| 国产一区丝袜| 伊人久久成人| 国产精品一区亚洲| 日韩视频网站在线观看| 亚洲深夜福利| 国产精品久久亚洲不卡| 亚洲一级少妇| 亚洲精品高潮| 精品国产网站| 亚洲资源av| 国产丝袜一区| 99久久久久国产精品| 欧美一区二区三区久久精品| 91精品亚洲| 国产麻豆一区| 欧美美女一区| 久久久精品区| 热久久国产精品| 水蜜桃精品av一区二区| 亚洲精品第一| 私拍精品福利视频在线一区| 欧美一区二区三区久久| 99精品在线观看| 久久精品av麻豆的观看方式| 91精品综合| 日本亚洲欧洲无免费码在线| 五月天av在线| 久久国产生活片100| 91九色精品| 另类欧美日韩国产在线| 精品在线播放| 狠狠久久婷婷| 精品国产一区二区三区性色av| 亚洲一区二区三区高清| 国产一区二区三区不卡视频网站 | 欧美aa国产视频| 久久国产免费看| 午夜日韩福利| 精品国产欧美日韩一区二区三区| 美女网站久久| 欧美成a人免费观看久久| 欧美亚洲人成在线| 亚洲综合精品四区| 久久精品主播| 精品久久视频| 国产精品手机在线播放| 免费看日韩精品| 久久久久久久久99精品大| 麻豆一区在线| 91伊人久久| 久久aⅴ国产紧身牛仔裤| 成人亚洲一区二区| 国产探花在线精品| 日韩在线观看中文字幕| 美女国产一区| 亚洲精品国产偷自在线观看| 国产精品专区免费| 国产精品成人3p一区二区三区| 亚洲人成高清| 久色成人在线| 午夜欧美精品| 色婷婷久久久| 国产精品s色| 欧美日本不卡高清| 亚洲精品伊人| 亚洲综合图色| 婷婷精品进入| 欧美.日韩.国产.一区.二区 | 久久伊人国产| 国产精品久久亚洲不卡| 欧美一区自拍| 日韩高清在线不卡| 日韩免费精品| 日韩有码av| 亚洲精品日本| 亚洲精品第一| 日本午夜免费一区二区| 日韩亚洲精品在线观看| 亚洲一区二区三区高清| av不卡在线看| 国产亚洲毛片| 欧美日韩一二三四| 久久国产影院| 久久精品亚洲人成影院 | 免费不卡中文字幕在线| 国产一在线精品一区在线观看| 久久久精品久久久久久96| 日韩精品一区二区三区免费观看| 午夜精品成人av| 日韩一区二区三区免费| 国产激情综合| 国产一区二区三区91| 日产精品一区二区| 亚洲欧洲美洲av| 天堂中文av在线资源库| 日韩不卡视频在线观看| 99久久久久| 欧美日韩国产欧| 国产精品日韩| 四虎精品永久免费| 91精品国产自产精品男人的天堂| 国产精品香蕉| 成人三级高清视频在线看| 日本不卡免费高清视频在线| 日韩一区自拍| 欧美日韩视频| 亚洲人成在线影院| 国产精品片aa在线观看| 国精品产品一区| 婷婷精品视频| 玖玖精品视频| 国产欧美日韩精品高清二区综合区 | 香蕉久久精品| 日韩专区在线视频| 日韩中文字幕亚洲一区二区va在线| 亚洲18在线| 欧美aaaaaa午夜精品| 中文字幕在线高清| 亚洲欧洲一区二区天堂久久| 亚洲三级网站| 国产极品模特精品一二| 中文字幕成在线观看| 日韩午夜黄色| 国产欧美高清视频在线| 麻豆mv在线观看| 国产精品7m凸凹视频分类| 一区二区国产在线| 久久不见久久见中文字幕免费| 国产资源在线观看入口av| 久久久成人网| 日韩欧美中文字幕在线视频| 欧美精品1区| 日本少妇一区| 蜜臀精品一区二区三区在线观看| 国产精品毛片视频| 欧美成人基地 | 91麻豆国产自产在线观看亚洲| av一区二区高清| 欧美视频久久| 精品亚洲美女网站| 亚洲一区导航| 精品日本视频| 国产精品老牛| 久久一区视频| 欧美专区18| 精品三级av| 久久成人一区| 国产成人a视频高清在线观看| 亚洲视频播放| 国产suv精品一区| 亚洲最新av| 成人国产精品一区二区免费麻豆| 亚洲一区二区三区高清| 精品国产亚洲日本| 久久夜色精品| 久久99国产精品视频| 在线亚洲欧美| 成人在线黄色| 日韩欧美中文字幕一区二区三区| caoporn视频在线| 综合国产在线| 不卡一二三区| 青草国产精品| 中文精品视频| 国产白浆在线免费观看| 91精品国产自产在线丝袜啪| 国产精品88久久久久久| 国产一区二区视频在线看| 亚洲精品黄色| 激情综合网站| 国产一区二区久久久久| 亚洲精品系列| 欧美亚洲在线日韩| 国产精品久久久久久久久久齐齐| 日韩视频中文| 日韩欧美1区| 国产精品magnet| 免费观看在线综合| 日韩精品一区二区三区免费观影 | 欧美日韩国产v| 国产精品色在线网站| 国产一区91| 欧美sss在线视频| 精品不卡一区| 国产精品亚洲片在线播放| 亚洲丝袜美腿一区| 99国产精品久久久久久久成人热 | 在线精品亚洲| 亚洲精品网址|