摘要:閱讀本文約分鐘變量有兩種主數(shù)據(jù)類型和引用。主數(shù)據(jù)類型用來保存基本類型的值,包括整數(shù),布爾和浮點(diǎn)數(shù)等,而對象引用保存的是對象的引用。而在中,主數(shù)據(jù)類型也有不用的大小與名稱。
閱讀本文約“2.3分鐘”
變量有兩種:primitive主數(shù)據(jù)類型和引用。
Java注重類型。它不會讓你做出把長頸鹿類型變量裝進(jìn)兔子類型變量中這種詭異又危險(xiǎn)的舉動——如果有人對長頸鹿調(diào)用“跳躍”這個方法會發(fā)生什么悲劇?并且它也不會讓你將浮點(diǎn)數(shù)類型變量放進(jìn)整數(shù)類型的變量中,除非你先跟編譯器確認(rèn)過數(shù)字可以損失掉精確度。
編譯器會指出大部分的問題:
Rabbit happoer = new Giraffe();
謝天謝地,這樣的程序過不了編譯器這關(guān)
為了讓類型安全能夠發(fā)揮作用,你必須聲明所有變量的類型,指定它是個int類型或是個Dog類型,變量有兩種口味:清涼的primitive主數(shù)據(jù)類型和香辣的對象引用。primitive主數(shù)據(jù)類型用來保存基本類型的值,包括整數(shù),布爾和浮點(diǎn)數(shù)等,而對象引用保存的是對象的引用。
你可以把Java的變量想成是杯子。咖啡杯、茶杯、裝滿啤酒的泡沫跟魚缸一樣大的巨無霸杯等等。
變量就像是被子,是一種容器,承裝某些事務(wù)。
primitive主數(shù)據(jù)類型如同咖啡館的被子,他們有不同的大小,而每種大小都有一個名稱,像是“小杯”,“大杯”,“重量杯”等。
而在java中,primitive主數(shù)據(jù)類型也有不用的大小與名稱。當(dāng)你在Java中聲明變量的時候,必須指定它的類型,類似:long-64、int-32、short-16、byte-8
要確保變量能存下所保存的值,不然會溢出。
我們可以根據(jù)以下規(guī)則來幫助類、方法或變量命名(真正的規(guī)則在實(shí)際上更為復(fù)雜,但這些規(guī)則就能夠保證安全):
——名稱必須以字母、下劃線(_)或$符號開頭,不能用數(shù)字開頭
——除了第一個字符以外,后面就可以用數(shù)字。反正不要用在第一個字符就行。
——只要符合上述兩條規(guī)則,你就可以隨意地命名,但還要要避開Java的保留字。
事實(shí)上沒有對象變量這樣的東西存在
只有引用(reference)到對象的變量
對象引用變量保存的是存取對象的方法
它并不是對象的容器,而不是類似指向?qū)ο蟮闹羔槨;蛘呖梢哉f是地址。但在Java中我們不會也不該知道引用變量中實(shí)際裝載的是什么,它只是用來代表單一的對象。只有Java虛擬機(jī)才會知道如何引用來取得該對象。
Java注重類型,一旦數(shù)組被聲明出來,你就只能裝入所聲明類型的元素。
變量有兩種Lprimitive主數(shù)據(jù)類型和引用
變量的聲明必須有類型和名稱
primitive主數(shù)據(jù)類型變量值是該值的字節(jié)所表示的
引用變量的值代表位于堆之對象的存取方法
引用變量如同遙控器,對引用變量使用圓點(diǎn)運(yùn)算符可以如同按下遙控器按鈕般地存取它的方法或?qū)嵗兞?/p>
沒有引用到任何對象的引用變量的值為null值
數(shù)組一定是個對象,不管所聲明的元素是否為primitive主數(shù)據(jù)類型,并且沒有primitive主數(shù)據(jù)類型的數(shù)組,只有裝載primitive主數(shù)據(jù)類型的數(shù)組。
本文已轉(zhuǎn)載個人技術(shù)公眾號:UncleCatMySelf
歡迎留言討論與點(diǎn)贊
上一篇推薦:【Java貓說】類與對象的那些事
下一篇推薦:【Java貓說】Java多線程之內(nèi)存可見性(上篇)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71655.html
摘要:我們來看看實(shí)例變量與局部變量之間的差別實(shí)例變量是聲明在類內(nèi)而不是方法中。局部變量在使用前必須初始化。局部變量沒有默認(rèn)值,如果在變量被初始化前就要使用的話,編譯器會顯示錯誤。 閱讀本文約1.8分鐘 實(shí)例變量永遠(yuǎn)都會有默認(rèn)值,如果你沒有明確的賦值給實(shí)例變量,或者沒有調(diào)用setter,實(shí)例變量還是會有值! integers 0 floating points 0.0 boolean...
摘要:貓說多線程之內(nèi)存可見性下篇?dú)g迎你留言討論屬于你的見解,畢竟每個人的味蕾都不一樣,這杯咖啡有吸引到你嗎好像又是一個槽糕的比喻本文已轉(zhuǎn)載個人技術(shù)公眾號歡迎留言討論與點(diǎn)贊上一篇推薦貓說主數(shù)據(jù)類型和引用下一篇推薦貓說多線程之內(nèi)存可見性下篇 閱讀本文約3分鐘 本文大致講述兩種線程實(shí)現(xiàn)的可見性,或許你已經(jīng)提前想到了,那說明你的基礎(chǔ)很好,我們要聊聊synchronized實(shí)現(xiàn)可見性與volatil...
摘要:我可不可以忽略返回值并未要求一定要處理返回值。你可以調(diào)用返回非類型的方法而不必理會返回值,這代表你要的是方法的行為而不是返回值,你可以不指派返回值。 閱讀本文約1.2分鐘 1、如果想要傳入的參數(shù)是對象而不是primitive主數(shù)據(jù)類型會怎樣? 在Java中所傳遞的所有東西都是值,但此值是變量所攜帶的值。還有,引用對象的變量所攜帶的是遠(yuǎn)程控制而不是對象本身,若你對方法傳入?yún)?shù),實(shí)際上傳...
摘要:也可以這么說,對象就好像通訊簿中的一筆數(shù)據(jù)。對象有已知的事物,并能執(zhí)行工作。對象本身已知道的事物成為實(shí)例變量,它代表對象的狀態(tài)。對象可執(zhí)行的動作稱為方法,它代表對象的行為。 閱讀本文約2.1分鐘。 當(dāng)你在設(shè)計(jì)類時,要記得對象時靠類的模型塑造出來的,你可以這樣看: ——對象是已知事物 ——對象會執(zhí)行的動作 對象本身已知的事物稱為實(shí)例變量,它們代表對象的狀態(tài)(數(shù)據(jù)),且該類型的每一個對象...
閱讀 3695·2021-11-25 09:43
閱讀 2655·2021-11-25 09:43
閱讀 3854·2021-11-24 09:38
閱讀 703·2021-11-18 10:02
閱讀 2246·2021-09-22 15:53
閱讀 3004·2019-08-30 15:44
閱讀 2781·2019-08-30 14:01
閱讀 2766·2019-08-29 15:15