❶ true,false,null是java關鍵字嗎它們在內存中究竟是以什麼值來存儲
樓上的請注意了,一個對象賦值成null再被調用會不出空指針異常么?請考慮清楚,別誤導人家!
作為關鍵字true,false,null都分別代表不同的含義。
"位"是內存中作為存儲數據的基本單位,而我們又通常說,一個位元組是8位,也就是 1byte = 8bit。
因為內存中,"位"是使用0和1來表示的,所以作為關鍵字,true的值在內存中就表示1,false在內存中就是表示0。
但是這里不要和整數(int)中的0和1相比,他們佔用的內存空間是不一樣的。一個int型的變數,佔用的內存空間是4個位元組,也就是4 * 8 = 32位,與true和false佔用的內存空間是不同的。
而作為關鍵字null,解釋起來就更是麻煩了。
當一個對象被聲明時(Object o;),這個對象會以一個整數的位元組數,只在內存堆棧(stack)中開辟一個內存指針。例如,我們使用Object o = new Object();實例化一個對象,那麼在內存中的運行則是:在內存堆棧(stack)中開辟一個4個位元組的指針,然後在內存堆區(heap)開辟這個對象所要存儲的數據並初始化,然後在將之前在stack中的內存指針中賦上在heap中開辟的空間的首地址。
而如果Object o;沒有進行實例化,則不可能使用o的引用。這時為了方便使用,則出現了null關鍵字。null關鍵字的意義也就是一個用來初始化對象的空引用。
❷ java浜岀駭錛歯ull鍒板簳綆椾笉綆梛ava鍏抽敭瀛楋紵
涓嶆槸鍏抽敭瀛椼
true錛宖alse錛 null 閮戒笉鏄銆
null is a literal, in the same sense that false, 10, and '\n'
are literals. It's not a "keyword", technically, but it is a character
string that is treated specially by the compiler if the compiler
encounters it in a java source file.
So, no, you cannot name a variable "null". The lexical analyzer will decide that it is not an identifier.