Java基礎(chǔ)學(xué)習(xí)之關(guān)鍵字和變量數(shù)據(jù)類型的那些事
一. 關(guān)鍵字
Java中的關(guān)鍵字是由特定的單詞組成,單詞全為小寫字母,每個(gè)都有特殊的含義,其實(shí)Java關(guān)鍵字也就那幾十個(gè),這個(gè)不需要背,以后都會(huì)知曉:
將以上關(guān)鍵字分類大概是這樣的:
tips:
值得注意的是goto,以前的時(shí)候還在用,現(xiàn)在作為Java的保留字,已經(jīng)不用了,但是還是存在的,保留下來而已。
Java中需要我們自定義的名字叫做標(biāo)識(shí)符。比如方法名,類名等都是需要我們自己定義。唯一注意的就是標(biāo)識(shí)符的命名規(guī)則:
一個(gè)合法的標(biāo)識(shí)符只能由數(shù)字,字母,下劃線,$組成,不能有其它符號(hào),開頭不能以數(shù)字開頭,嚴(yán)格區(qū)分字母的大小寫,并且不能有空格,不可使用關(guān)鍵字,但是可以包含關(guān)鍵字。
二. 變量
2.1 變量的定義
變量就是可以變化的量,是內(nèi)存當(dāng)中的一小塊存儲(chǔ)數(shù)據(jù)的區(qū)域空間,用來存儲(chǔ)數(shù)據(jù)的。
這塊區(qū)域空間會(huì)進(jìn)行相同數(shù)據(jù)類型范圍內(nèi)的變化,此外變量也是程序中最小的存儲(chǔ)單元。它包含數(shù)據(jù)類型,變量名稱以及變量的值。
使用變量的幾點(diǎn)注意事項(xiàng):
- Java中的變量必須先聲明后使用。
- 使用變量名去訪問這塊區(qū)域數(shù)據(jù)。
- 變量的作用域作用在{}中,且只在其中有效。
- 同一個(gè)作用域內(nèi),變量名不可重復(fù)定義。
什么是變量的作用域?
作用域呢,就是描述變量的有效作用范圍,只要是在這個(gè)范圍里面變量就是可以被訪問的。
變量的作用域只需要記住一句話就行了:出了大括號(hào){}就不起作用了。
2.2 變量的分類
1. 按照數(shù)據(jù)類型分類
程序中需要處理許多數(shù)據(jù),每一個(gè)數(shù)據(jù)都有它所屬的數(shù)據(jù)類型,,對(duì)于不同數(shù)據(jù)都有其對(duì)應(yīng)的數(shù)據(jù)類型,就是在內(nèi)存中分配了所對(duì)應(yīng)大小的內(nèi)存空間。
并且不同數(shù)據(jù)所開辟的內(nèi)存大小也會(huì)不一樣。按照數(shù)據(jù)類型分類,Java可以分為基本數(shù)據(jù)類型與引用數(shù)據(jù)類型。
基本數(shù)據(jù)類型有八種,分三大類,數(shù)值型(包括整型與浮點(diǎn)型),字符型與布爾型,它們是:
byte,short,int,long,float,double,char,boolean
注意
:字符串類型不是基本的數(shù)據(jù)類型,是屬于引用數(shù)據(jù)類型比如“1”,字符類型使用單引號(hào)’a’。
整數(shù)類型byte,short,int,long使用
在Java變量的定義是這樣的:數(shù)據(jù)類型 變量名 = 字面值,Java中的整型常量默認(rèn)類型是int類型的,在聲明long型時(shí)需要在常量后面加入L或者小寫的l。
它們的區(qū)別就是所占的字節(jié)不同,也就是表示的范圍也是不同的,范圍如下:
變量聲明,只要在范圍內(nèi)都是可以的:
/** * @author 爪哇斗羅(javaDouLuo) * @date 2022/7/2 */ public class Demo02 { public static void main(String[] args) { // 變量聲明,只要在范圍內(nèi)都是可以的 byte b = 127; short s = 123; int i = 199; long l = 21L; } }
浮點(diǎn)型float,double使用
浮點(diǎn)型就是帶小數(shù)點(diǎn)的,但是兩者的精度有限float屬于單精度,所以精度難以滿足需求,double屬于雙精度,精度要比float要高。
Java中聲明浮點(diǎn)類型的數(shù)據(jù)時(shí)float數(shù)據(jù)類型后需要加入f
浮點(diǎn)數(shù)精度問題
在使用浮點(diǎn)數(shù)的時(shí)候可能會(huì)導(dǎo)致精度的丟失,比如這段代碼:
public class DataType { public static void main(String[] args) { //浮點(diǎn)數(shù)精度丟失 float f1 = 221342423242434f; float f2 = f1 + 1; System.out.println(f1 == f2);//true }
發(fā)現(xiàn)結(jié)果為true
,所以在實(shí)際開發(fā)中不要使用浮點(diǎn)數(shù)進(jìn)行運(yùn)算操作,最標(biāo)準(zhǔn)的話是使用BigDecimal
對(duì)象類型進(jìn)行運(yùn)算。
boolean類型
關(guān)于布爾類型,只有true和false兩個(gè)值,通常是作為程序判斷的標(biāo)志。
什么是字節(jié)
了解字節(jié)之前看看什么是二進(jìn)制,現(xiàn)在的計(jì)算機(jī)只會(huì)識(shí)別二進(jìn)制指令,也就是0與1。
只認(rèn)識(shí)01010101011101010....這種的,計(jì)算機(jī)識(shí)別0與1的時(shí)候是通過底層交流電的開閉來告訴辨別指令的。
所謂的1個(gè)字節(jié)占8個(gè)比特位(1byte=8bit)而一個(gè)比特位存放的就是0或者1。
1Byte = 8bit
1KB =1024Byte
1MB = 1024KB
1G = 1024MB
1T = 1024G
基本數(shù)據(jù)類型的轉(zhuǎn)換
基本數(shù)據(jù)類型之間的轉(zhuǎn)換分為顯式轉(zhuǎn)換
和隱式轉(zhuǎn)換
,布爾類型不可進(jìn)行類型的轉(zhuǎn)換。
?
- 范圍從低到高為隱式轉(zhuǎn)換,反之需要顯式轉(zhuǎn)換。
- 轉(zhuǎn)換時(shí)應(yīng)該注意精度問題。
- byte short char需要進(jìn)行顯式轉(zhuǎn)換。
public static void main(String[] args) { int a = 128; byte i = (byte)a; System.out.println(i); }
這段代碼輸出結(jié)果是-128
,因?yàn)樵谵D(zhuǎn)換時(shí)要注意到內(nèi)存溢出的問題,因?yàn)?strong>128
已經(jīng)超過byte
所表示的范圍。
三. 字符編碼
因?yàn)橛?jì)算機(jī)只認(rèn)識(shí)二進(jìn)制數(shù)據(jù),但是我們?nèi)粘V姓f的語言比如漢字,英語等。這些計(jì)算機(jī)并不會(huì)認(rèn)識(shí),它們之間也沒有任何轉(zhuǎn)換的關(guān)系。
為了讓計(jì)算機(jī)能夠識(shí)別現(xiàn)實(shí)中的文字,于是人為的將現(xiàn)實(shí)中的文字與二進(jìn)制的關(guān)系所對(duì)應(yīng)起來。
根據(jù)某種格式進(jìn)行編碼,這種對(duì)照轉(zhuǎn)換關(guān)系就是字符編碼。
比如最初只支持英文,所以最先出現(xiàn)的字符編碼就是ASCII碼。比如’a’對(duì)應(yīng)的字符編碼是97,對(duì)應(yīng)的二進(jìn)制就是【01100001】,'A’對(duì)應(yīng)的是65,'0’對(duì)應(yīng)的是48。
將字符’a’通過ASCII進(jìn)行解碼變?yōu)椤?1100001】,反之就是編碼。當(dāng)解碼與編碼使用的是不是統(tǒng)一的編碼對(duì)照表就會(huì)出現(xiàn)亂碼。
Java中的char
基本數(shù)據(jù)類型,它占了兩個(gè)字節(jié),只能存儲(chǔ)一個(gè)漢字或者一個(gè)數(shù)字,不管存的是什么其實(shí)底層本質(zhì)就是數(shù)字。
也就是說char
與數(shù)值之間可以進(jìn)行常量之間的運(yùn)算,就是表示字符的時(shí)候運(yùn)算的是ASCII對(duì)應(yīng)的值。
public class DataType { public static void main(String[] args) { char a = '1'; char b = '國'; char c = 'A' + 1; char d = 'a'; System.out.println(a);//1 System.out.println(b);// 國 System.out.println((int)b);// 22269 System.out.println((int)c);// 66 System.out.println((int)d);//97 } }
補(bǔ)充:變量的聲明和初始化
測(cè)試變量的定義
1. 變量的聲明和賦值格式: 數(shù)據(jù)類型 變量名 = 變量值
2. 注意點(diǎn):
① java是強(qiáng)類型的語言,聲明的每個(gè)變量,一定要指名其變量類型。
② 變量一定需要在賦值之后才可以使用
③ 變量需要先聲明,后賦值。
④ 變量都有其作用域,超出作用域范圍后,就失效。
⑤ 在同一個(gè)作用域范圍內(nèi),不可以定義同名的變量
class VariableTest { ?? ?public static void main(String[] args) { ?? ??? ?//myNumber = 1; ?? ??? ?//變量的聲明 ?? ??? ?int myNumber; ?? ??? ?//變量的賦值 ?? ??? ?myNumber = 1; ?? ??? ?//變量的聲明和賦值同時(shí)進(jìn)行 ?? ??? ?int count = 2; ?? ??? ?System.out.println(myNumber + 1); ?? ??? ?//編譯不通過 ?? ??? ?//System.out.println(age); ?? ??? ?//編譯不通過:在同一個(gè)作用域范圍內(nèi),不可以定義同名的變量 ?? ??? ?//int count = 3; ?? ??? ?count = 3;//重新賦值 ?? ??? ?System.out.println(count); ?? ??? ?int age = 20; ?? ??? ?System.out.println(age); ?? ?} ?? ?public void method(){ ?? ??? ?int age = 10; ?? ??? ?System.out.println(age); ?? ?} }
總結(jié)
到此這篇關(guān)于Java基礎(chǔ)學(xué)習(xí)之關(guān)鍵字和變量數(shù)據(jù)類型的文章就介紹到這了,更多相關(guān)Java關(guān)鍵字和變量數(shù)據(jù)類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Cloud學(xué)習(xí)教程之DiscoveryClient的深入探究
這篇文章主要給大家介紹了關(guān)于Spring Cloud學(xué)習(xí)教程之DiscoveryClient的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04springboot整合jquery和bootstrap框架過程圖解
這篇文章主要介紹了springboot整合jquery和bootstrap框架過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12mybatis打印的sql日志不寫入到log文件的問題及解決
這篇文章主要介紹了mybatis打印的sql日志不寫入到log文件的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08RestTemplate如何通過HTTP?Basic?Auth認(rèn)證示例說明
這篇文章主要為大家介紹了RestTemplate如何通過HTTP?Basic?Auth認(rèn)證的示例說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03IntelliJ IDEA(2020.2)的下載、安裝步驟詳細(xì)教程
這篇文章主要介紹了IntelliJ IDEA(2020.2)的下載、安裝步驟詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08