摘要:池的概念多指代人工挖的小區(qū)域代碼中同理認(rèn)為劃定的小區(qū)域既然知道了池的概念那么如何判斷在中的這個區(qū)域呢在中有兩種作用對于基本數(shù)據(jù)類型比較數(shù)值是否一致如等對于引用數(shù)據(jù)類型比較內(nèi)存中位置是否一致如等因此只討論引用數(shù)據(jù)類型中該問題池的出現(xiàn)總結(jié)對于引
池的概念多指代人工挖的小區(qū)域,代碼中同理, 認(rèn)為劃定的小區(qū)域
既然知道了池的概念,那么如何判斷在Java中的這個區(qū)域呢?
==在java中有兩種作用
對于基本數(shù)據(jù)類型比較數(shù)值是否一致, 如byte, short, int, float等
對于引用數(shù)據(jù)類型比較內(nèi)存中位置是否一致, 如Integer, String等
因此只討論引用數(shù)據(jù)類型中該問題
池的出現(xiàn)Integer
Integer num1 = new Integer(1); Integer num2 = new Integer(1); System.out.println(num1 == num2);
OUTPUT: false
StringString str1 = new String("abc"); String str2 = new String("abc"): System.out.println(str1 == str2);
OUTPUT: false
總結(jié)對于引用數(shù)據(jù)類型需要格外注意 ==的使用, java會先在常量池中找尋已存在的數(shù)據(jù), 降低常用數(shù)據(jù)的內(nèi)存占用
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75724.html
摘要:那方法區(qū)里都存著什么呢先拋結(jié)論靜態(tài)變量常量類信息構(gòu)造方法接口定義運(yùn)行時常量池存在方法區(qū)中。動態(tài)常量池運(yùn)行時常量池是方法區(qū)的一部分,是一塊內(nèi)存區(qū)域。文件常量池將在類加載后進(jìn)入方法區(qū)的運(yùn)行時常量池中存放。 一、方法區(qū)與永久代 這兩個是非常容易混淆的概念,永久代的對象放在方法區(qū)中,就會想當(dāng)然地認(rèn)為,方法區(qū)就等同于持久代的內(nèi)存區(qū)域。事實(shí)上兩者是這樣的關(guān)系: 《Java虛擬機(jī)規(guī)范》只是規(guī)定了有方...
摘要:注意運(yùn)行時常量池存在于方法區(qū)中。一個在堆中,一個在字符串常量池中。注意,是把這個對象添加到字符串常量池。內(nèi)存中有一個基本類型封裝類的常量池。需要注意的是,和這兩個類并沒有對應(yīng)的常量池。 在寫之前我們先來看幾個問題,假如你對這些問題已經(jīng)很懂了的話,那大可不用看這篇文章,如果不大懂的話,那么可以看看我的想法。 問題1: public static void main(String[] ar...
作為最基礎(chǔ)的引用數(shù)據(jù)類型,Java 設(shè)計(jì)者為 String 提供了字符串常量池以提高其性能,那么字符串常量池的具體原理是什么,我們帶著以下三個問題,去理解字符串常量池: 字符串常量池的設(shè)計(jì)意圖是什么? 字符串常量池在哪里? 如何操作字符串常量池? 字符串常量池的設(shè)計(jì)思想 字符串的分配,和其他的對象分配一樣,耗費(fèi)高昂的時間與空間代價,作為最基礎(chǔ)的數(shù)據(jù)類型,大量頻繁的創(chuàng)建字符串,極大程度地影響程...
摘要:方法就是擴(kuò)充常量池的一個方法當(dāng)一個實(shí)例調(diào)用方法時,會查找當(dāng)前常量池中是否已有相同的字符串常量,如果有就返回其引用,如果沒有就在常量池中添加對應(yīng)的字符串,并返回對應(yīng)字符串常量的引用。 常量池:在編譯被確定,并保存在.class文件中的一些數(shù)據(jù)。jvm為每個類維護(hù)一個常量池,常量池就是該類型所用到的常量的一個有序集合。在程序執(zhí)行的時候,常量池存儲在方法區(qū)中。存在于.class文件中的常量池...
摘要:為了減少在中創(chuàng)建的字符串的數(shù)量,字符串類維護(hù)了一個字符串常量池。但是當(dāng)執(zhí)行了方法后,將指向字符串常量池中的那個字符串常量。由于和都是字符串常量池中的字面量的引用,所以。究其原因,是因?yàn)槌A砍匾4娴氖且汛_定的字面量值。 String,是Java中除了基本數(shù)據(jù)類型以外,最為重要的一個類型了。很多人會認(rèn)為他比較簡單。但是和String有關(guān)的面試題有很多,下面我隨便找兩道面試題,看看你能不能...
摘要:的三種常量池此外,有三種常量池,即字符串常量池又叫全局字符串池文件常量池運(yùn)行時常量池。開始虛擬機(jī)把字符串常量池位置從永久代挪到堆,又徹底取消,把諸如之類的元數(shù)據(jù)都挪到堆之外管理。 前言 前陣子和朋友討論一個問題: 字符串常量歸常量池管理,那比如 String str = abc; abc這個對象是放在內(nèi)存中的哪個位置,是字符串常量池中還是堆? 這句代碼的abc當(dāng)然在常量池中,只有n...
閱讀 2118·2021-11-18 10:02
閱讀 2865·2021-09-04 16:41
閱讀 1161·2019-08-30 15:55
閱讀 1421·2019-08-29 17:27
閱讀 1119·2019-08-29 17:12
閱讀 2542·2019-08-29 15:38
閱讀 2867·2019-08-29 13:02
閱讀 2843·2019-08-29 12:29