java 基本类型 引用类型_Java中的基本类型和引用类型变量的区别
基本類型:
基本類型自然不用說(shuō)了,它的值就是一個(gè)數(shù)字,一個(gè)字符或一個(gè)布爾值。
引用類型:
是一個(gè)對(duì)象類型,值是什么呢?它的值是指向內(nèi)存空間的引用,就是地址,所指向的內(nèi)存中保存著變量所表示的一個(gè)值或一組值。
舉例說(shuō)明:
int? a;
a=250; //聲明變量a的同時(shí),系統(tǒng)給a分配了空間。
引用類型就不是了,只給變量分配了引用空間,數(shù)據(jù)空間沒(méi)有分配,因?yàn)檎l(shuí)都不知道數(shù)據(jù)是什么,整數(shù),字符?我們看一個(gè)錯(cuò)誤的例子:
MyDate today;
today.day = 4; //發(fā)生錯(cuò)誤,因?yàn)閠oday對(duì)象的數(shù)據(jù)空間未分配。
那我們?cè)趺唇o它賦值?引用類型變量在聲明后必須通過(guò)實(shí)例化開(kāi)辟數(shù)據(jù)空間,才能對(duì)變量所指向的對(duì)象進(jìn)行訪問(wèn)。舉個(gè)例子:
MyDate today;??????????? //將變量分配一個(gè)保存引用的空間
today = new MyDate();???? //這句話是2步,首先執(zhí)行new MyDate(),給today變量開(kāi)辟數(shù)據(jù)空間,然后再執(zhí)行賦值操作
//引用變量賦值
MyDate a,b;??????????????????? //在內(nèi)存開(kāi)辟兩個(gè)引用空間
a? =? new MyDate();??? ?//開(kāi)辟M(fèi)yDate對(duì)象的數(shù)據(jù)空間,并把該空間的首地址賦給a
b? =? a;????????????????????????????? ?//將a存儲(chǔ)空間中的地址寫(xiě)到b的存儲(chǔ)空間中
如下圖示
引用傳遞 和 值傳遞
引用類型:除了在函數(shù)傳值的時(shí)候是"引用傳遞",在任何用"="向?qū)ο笞兞抠x值的時(shí)候都是"引用傳遞"。
值傳遞:基本類型的傳遞都屬于值傳遞,和C語(yǔ)言一樣,當(dāng)把Java的基本數(shù)據(jù)類型(如 int,char,double等)作為入口參數(shù)傳給函數(shù)體的時(shí)候,傳入的參數(shù)在函數(shù)體內(nèi)部變成了局部變量,這個(gè)局部變量是輸入?yún)?shù)的一個(gè)拷貝,所有的函 數(shù)體內(nèi)部的操作都是針對(duì)這個(gè)拷貝的操作,函數(shù)執(zhí)行結(jié)束后,這個(gè)局部變量也就完成了它的使命,它影響不到作為輸入?yún)?shù)的變量。這種方式的參數(shù)傳遞被稱為"值 傳遞"。
總結(jié)
以上是生活随笔為你收集整理的java 基本类型 引用类型_Java中的基本类型和引用类型变量的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 个人信用卡多有什么风险 你不可不看
- 下一篇: java 抽象类对象_Java基础___