久久久久久AV无码免费看大片,亚洲一区精品人人爽人人躁,国产成人片无码免费爱线观看,亚洲AV成人无码精品网站,为什么晚上搞的时候要盖被子

Java--string是引用數(shù)據(jù)類型嗎?

時間:2022-03-17 11:21:20 類型:JAVA
字號:    

string是引用數(shù)據(jù)類型嗎?答案是肯定的。??8個基本類型是值類型,其他都是引用??!


在Java中,數(shù)組和String字符串都不是基本數(shù)據(jù)類型,它們被當(dāng)作類來處理,是引用數(shù)據(jù)類型。

引用類型(reference type)指向一個對象,不是原始值,指向?qū)ο蟮淖兞渴且米兞俊?/p>


在java里面除去基本數(shù)據(jù)類型的其它類型都是引用數(shù)據(jù)類型,自己定義的class類都是引用類型,可以像基本類型一樣使用。

在java編程語言中,用類的一個類型聲明的變量被指定為引用類型,這是因為它正在引用一個非原始類型,這對賦值具有重要的意義。如下代碼:

int x = 5;

int y = x;

String s = "Hello";

String t = s;

四個變量被創(chuàng)建:兩個原始類型 int 和兩個引用類型String。x的值是5,而這個值被復(fù)制到y(tǒng);x和y是兩個獨立的變量且其中任何一個的進(jìn)一步的變化都不對另外一個構(gòu)成影響。至于變量s和t,只有一個String對象存在,它包含了文本"Hello",s和t均引用這個單一個對象。如果將變量t重新定義為t="World";則新的對象World被創(chuàng)建,而t引用這個對象。


“在Java里面參數(shù)傳遞都是按值傳遞”這句話的意思是:按值傳遞是傳遞的值的拷貝,按引用傳遞其實傳遞的是引用的地址值,所以統(tǒng)稱按值傳遞。


舉例:


為什么String str="scce";

String str2="scce";

str==str2返回true而String str2=new String("scce"); str==str2返回false


String str="scce"; //這是在靜態(tài)數(shù)據(jù)區(qū)創(chuàng)建了一個對象

String str2="scce"; //創(chuàng)建靜態(tài)數(shù)據(jù)對象是先在靜態(tài)數(shù)據(jù)區(qū)查,如果存在則不創(chuàng)建新的,保證靜態(tài)數(shù)據(jù)區(qū)中的數(shù)據(jù)只有一份,


str==str2返回true //指向同一個對象

String str2=new String("scce"); str==str2返回false //在堆中創(chuàng)建一個對象,引用值當(dāng)然不同


<