国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

Java整數(shù)池。為什么?

瀏覽:111日期:2024-04-27 11:33:10
如何解決Java整數(shù)池。為什么??

它被稱為Flyweight模式,用于最小化內(nèi)存使用。

這些數(shù)字很可能會(huì)被重復(fù)使用,并且類似autoBox的類型Integer是不可變的(請(qǐng)注意,這樣做不僅是針對(duì)Integer)。緩存它們可以使實(shí)例不多,并且也減少了GC(垃圾收集)的工作。

JLS在5.1.7中對(duì)此進(jìn)行了介紹。裝箱轉(zhuǎn)換專門通過(guò)說(shuō):

如果裝箱的值p為true,false,字節(jié)或 u0000到u007f范圍內(nèi)的char或-128到127(含)之間的整數(shù)或短數(shù),則令r1和r2為p的任何兩次拳擊轉(zhuǎn)換。r1 == r2總是這樣。

理想情況下,將給定的原始值p裝箱將始終產(chǎn)生相同的參考。實(shí)際上,使用現(xiàn)有的實(shí)現(xiàn)技術(shù)可能不可行。以上規(guī)則是務(wù)實(shí)的妥協(xié)。上面的最后一句要求始終將某些通用值裝在無(wú)法區(qū)分的對(duì)象中。該實(shí)現(xiàn)可以懶惰地或急切地緩存它們。對(duì)于其他值,此公式不允許對(duì)程序員方面的帶框值的身份進(jìn)行任何假設(shè)。這將允許(但不要求)共享部分或全部這些引用。

這樣可以確保在最常見的情況下,行為將是理想的,而不會(huì)造成不必要的性能損失,尤其是在小型設(shè)備上。例如,較少內(nèi)存限制的實(shí)現(xiàn)可能會(huì)緩存所有char和short值,以及-32K到+32K范圍內(nèi)的int和long值。

解決方法

我到處都讀到過(guò),當(dāng)您在Java中定義介于-128到127之間的Integer時(shí),它不會(huì)創(chuàng)建新對(duì)象,而是返回已經(jīng)創(chuàng)建的對(duì)象。

除了讓新手程序員比較Integer對(duì)象==以查看它們是否具有相同的數(shù)字外,我看不到這樣做的任何意義,但是我認(rèn)為這很糟糕,因?yàn)榇_保他們認(rèn)為可以將任何Integer對(duì)象與進(jìn)行比較==,并且還在教學(xué)在任何編程語(yǔ)言中都不好的做法:將兩個(gè)“不同”對(duì)象的內(nèi)容與進(jìn)行比較==。

這樣做有其他原因嗎?還是在設(shè)計(jì)語(yǔ)言(以我的觀點(diǎn))(如JavaScript中的可選分號(hào))時(shí)只是一個(gè)錯(cuò)誤的決定?

編輯:我在這里看到他們解釋行為:為什么Integer常量池的行為在127發(fā)生變化?

我在問(wèn)為什么他們?cè)O(shè)計(jì)它具有這種行為,而不是為什么會(huì)發(fā)生這種行為。

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 日韩一级特黄毛片在线看 | 久久99国产亚洲精品 | 国产一区二区三区在线免费观看 | 99久久综合 | 日韩国产成人精品视频人 | 久色视频 | 亚洲欧美精品成人久久91 | 国产一区二区三区日韩欧美 | 久久精品视频99 | caoporen在线视频入口 | 亚洲男人的天堂久久香蕉 | 三级欧美在线 | 女人扒开双腿让男人捅 | 国产黄色美女 | 欧美日韩一区二区在线 | 成人影院免费看 | 91影视永久福利免费观看 | 99爱视频精品免视看 | 国产三级精品久久三级国专区 | 天天摸天天爽视频69视频 | 亚洲综合国产一区二区三区 | 国产美女精品在线 | 玖玖视频精品 | 九色porny真实丨国产18 | 免费播放欧美毛片欧美a | 91啦丨国产丨| 免费一级欧美片片线观看 | 欧美另类视频videosbest18 | 草草影院第一页yycccom | 免费一级在线观看 | bt天堂国产亚洲欧美在线 | 免费观看黄色毛片 | 中文字幕亚洲一区二区三区 | 国产aⅴ精品一区二区三区久久 | 国内精品七七久久影院 | 色青青草原桃花久久综合 | 亚洲免费中文 | 亚洲一区精品在线 | 久久久久久久久久综合情日本 | 三级伦理网站 | aaaaaaa毛片 |