java中字符串的比較 在java中為什么String字符串可以作為對象來管理?
在java中為什么String字符串可以作為對象來管理?據(jù)我們所知,Java中創(chuàng)建字符串(對象)的方法很多:[2]直接定義字符串常量3]通過實例化字符串類來創(chuàng)建字符串對象Java中的字符串可以直接作為
在java中為什么String字符串可以作為對象來管理?
據(jù)我們所知,Java中創(chuàng)建字符串(對象)的方法很多:[2]直接定義字符串常量
3]通過實例化字符串類來創(chuàng)建字符串對象
Java中的字符串可以直接作為對象操作。原則是什么?
例如:
1,literal quantity of string,string constant pool
Java中字符串的literal quantity是一對用雙引號括起來的字符串,如“Chinese”。
字符串常量是常量池。當(dāng)string STR=“string”時,編譯器將檢查在不朽生成中是否有對常量的引用。如果存在引用,編譯器將直接將地址分配給堆棧。如果沒有引用,編譯器將首先在不朽生成中打開一個內(nèi)存空間,然后將地址分配給堆棧指針。
也就是說,字符串對象的引用仍然存儲在字符串常量池中。
2. 實例化string對象
該方法根據(jù)string對象重新創(chuàng)建一個string對象,在堆內(nèi)存中添加新的內(nèi)存塊后,將指針賦給堆棧指針。
Java中string的用法?
String a=“ABC”
此時,已為String類型的變量分配內(nèi)存地址[即堆],然后重新分配相同的變量。引用類型變量的內(nèi)存地址指向相同的內(nèi)存地址,因此重新分配時,內(nèi)存中的值會發(fā)生變化。例如:string a=“BCD”此時,內(nèi)存中的值變成了BCD
在Java中,string不再是基本的數(shù)據(jù)類型!String是一個封裝類!但是沒有對應(yīng)的基元類型
!Java提供兩種不同的類型:引用類型和原始類型(或內(nèi)置類型)。Int是Java的原始數(shù)據(jù)類型,integer是Java為Int提供的封裝類,Java為每個基元類型提供封裝類。
Primitive type封裝類Boolean Boolean character byte shortshort int integer long floatfloat doubledouble]引用類型和Primitive類型的行為完全不同,它們具有不同的語義。參考型與原始型有著不同的特點和用法。它們包括:大小和速度、存儲此類型的數(shù)據(jù)結(jié)構(gòu)的類型,以及將引用類型和原始類型用作類的實例數(shù)據(jù)時指定的默認值。對象引用實例變量的默認值為null,而基元類型實例變量的默認值與其類型相關(guān)。