【作者前言】:13年入圈千绪,分享些本人工作中遇到的點點滴滴那些事兒例诀,17年剛開始寫博客随抠,高手勿噴!以分享交流為主繁涂,歡迎各路豪杰點評改進(jìn)拱她!
[1]
??知識點內(nèi)容
??1. 變量 [2]
變量:程序中的基本存儲單元,其定義包括變量名扔罪、變量類型和作用域幾個部分
存儲數(shù)據(jù)的容器
計算機(jī)中的數(shù)據(jù) :二進(jìn)制數(shù)
??2.為什么要進(jìn)行數(shù)據(jù)類型的劃分秉沼?[3]
不同的變量有不同的用途
,例如,可以用變量來表示年齡唬复,或者用變量來表示成績矗积。而年齡只能是整數(shù),而成績卻可能出現(xiàn)小數(shù)敞咧;
如果不把數(shù)據(jù)劃分為不同的類型棘捣,那么就沒有辦法區(qū)分出數(shù)據(jù)之間的差別;
計算機(jī)可以根據(jù)不同的數(shù)據(jù)類型休建,把數(shù)據(jù)“合理”地存放到內(nèi)存中乍恐;
計算機(jī)從內(nèi)存中讀取數(shù)據(jù)時,也可以根據(jù)其數(shù)據(jù)類型就能確認(rèn)取到的數(shù)據(jù)的特征测砂,從而正確地去處理茵烈;
??3.數(shù)據(jù)類型樹 [4]
Java語言是強(qiáng)類型語言,任何一個變量或常量在Java中必須有確定的數(shù)據(jù)類型砌些;
Java語言的數(shù)據(jù)類型有兩種呜投,即基本數(shù)據(jù)類型和引用類型
image.png
??4.內(nèi)存介紹(了解,后面內(nèi)容會詳細(xì)說明寄症,特征記住)
[5]
數(shù)據(jù)都是存放在內(nèi)存中
宙彪,了解Java內(nèi)存的基本結(jié)構(gòu)有助于深入理解數(shù)據(jù)類型;
Java內(nèi)存大體可以分為堆有巧、棧释漆、常量池、方法區(qū)
image.png
先“粗略”了解基本區(qū)別:基本數(shù)據(jù)類型存儲在棧中;引用類型存儲在堆中蕉毯;
以上的“基本區(qū)別”可以稍加細(xì)化:
在函數(shù)(方法)中定義的基本數(shù)據(jù)類型變量存儲在棧中婴谱;
引用類型實例的引用(reference)也是存儲在棧中;
引用類型實例的成員變量逊笆,存儲在堆中;
??5. 如何定義變量 [6]
數(shù)據(jù)類型+變量名稱;
變量賦值:變量名稱 = 值; a=10; 將10這個值賦值給變量a
可以定義并賦值
數(shù)據(jù)類型 變量名稱= 值;
用“=”可以為任何一種基本數(shù)據(jù)類型的變量賦值岂傲;
賦值時主要不要超過表示范圍难裆,否則將出現(xiàn)編譯錯誤參考基本數(shù)據(jù)類型范圍
char類型使用’’引用單個字符賦值;也可以使用非負(fù)整數(shù)進(jìn)行賦值镊掖;
??6. 基本數(shù)據(jù)類型 [7]
Java語言中的基本數(shù)據(jù)類型可以分為數(shù)值型乃戈、字符型、布爾型三大類亩进,具體包含8個類型症虑;
每種具體類型使用一個關(guān)鍵字表示;
image.png
byte:字節(jié)型
short:短整型
int:整型
long:長整型
float:單精度浮點型
double:雙精度浮點型
char:字符型
boolean:布爾型 true false
每種數(shù)據(jù)類型在內(nèi)存中占有不同的長度归薛;
計算機(jī)存儲設(shè)備的最小信息單元叫“位(bit)
”谍憔,又稱之為“比特位”匪蝙;
連續(xù)的8個位成為1個“字節(jié)(byte)
”;
操作系統(tǒng)分配內(nèi)存最少1個字節(jié)习贫,即8 個位逛球,而不是1個位;
長度越長沈条,所表示的范圍就越大需忿;
??7. 基本數(shù)據(jù)類型 默認(rèn)值 [8]
每種具體類型都有不同的默認(rèn)值;
當(dāng)沒有為一個屬性變量賦值時蜡歹,會根據(jù)類型為其賦值為默認(rèn)值屋厘;
注意:char的默認(rèn)值是\u0000
,等同于一個空字符月而;boolean的默認(rèn)值是false
image.png
??8. 基本數(shù)據(jù)類型之間的相互轉(zhuǎn)換 [9]
不同的基本數(shù)據(jù)類型之間可以進(jìn)行轉(zhuǎn)換汗洒;
從表示范圍小的類型轉(zhuǎn)換為表示范圍大的類型,可以直接轉(zhuǎn)換父款,稱為隱式轉(zhuǎn)換溢谤;
從表示范圍大的類型轉(zhuǎn)換為表示范圍小的類型,需要
強(qiáng)制轉(zhuǎn)換憨攒,稱為顯式轉(zhuǎn)換世杀;
int i=20;
byte b=(byte)i;
雖然類型之間可以進(jìn)行強(qiáng)制的隱式轉(zhuǎn)換,但是也需要有一定的前提肝集;
數(shù)值類型和boolean類型之間就不能轉(zhuǎn)換瞻坝;強(qiáng)制也不可以;
小數(shù)默認(rèn)是double類型杏瞻;
使用f/F后綴顯式表示float類型所刀;使用d/D后綴顯式使用double類型;
float f=20.5F;
double d=20.5d;
boolean型的只有
true
和false
兩個值
??9. 比較運(yùn)算符 [10]
==
--- 是否相等
!=
--- 是否不等于
>
--- 大于
<
--- 小于
>=
--- 大于等于
<=
--- 小于等于
Java 轉(zhuǎn)換成二進(jìn)制進(jìn)行計算
double d1=1.0d;
float d2=1.0f;
System.out.println("d1==d2 "+(d1==d2)); // true
System.out.println("d1!=d2 "+(d1!=d2));
System.out.println("d1>d2 "+(d1>d2));
System.out.println("d1<d2 "+(d1<d2));
//---------------------------------------------------------
double d3=0.3d;
float d4=0.3f;
System.out.println("d3==d4 "+(d3==d4));
System.out.println("d3!=d4 "+(d3!=d4));
System.out.println("d3>d4 "+(d3>d4));
System.out.println("d3<d4 "+(d3<d4)); //true