世界最新:2.Java基本語(yǔ)法(上):變量與運(yùn)算符.md

2022-12-22 19:27:28 來(lái)源:51CTO博客

一、關(guān)鍵字和保留字

關(guān)鍵字(keyword)的定義和特點(diǎn)定義:被Java語(yǔ)言賦予了特殊含義,用做專門用途的字符串(單詞)特點(diǎn):關(guān)鍵字中所有字母都為小寫官方地址: ??https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html??Java保留字(reserved word):現(xiàn)有Java版本尚未使用,但以后版本可能會(huì)作為關(guān)鍵字使 用。自己命名標(biāo)識(shí)符時(shí)要避免使用這些保留字goto 、const

二、標(biāo)識(shí)符(Identifier)

標(biāo)識(shí)符:Java 對(duì)各種變量方法等要素命名時(shí)使用的字符序列稱為標(biāo)識(shí)符Java 對(duì)各種變量、方法和類等要素命名時(shí)使用的字符序列稱為標(biāo)識(shí)符定義合法標(biāo)識(shí)符規(guī)則:由26個(gè)英文字母大小寫,0-9 ,_或 $ 組成數(shù)字不可以開頭。不能使用 關(guān)鍵字和保留字嚴(yán)格區(qū)分大小寫,長(zhǎng)度無(wú)限制不能包含空格Java中的名稱命名規(guī)范:包名:多單詞組成時(shí)所有字母都小寫:xxxyyyzzz類名、接口名:多單詞組成時(shí),所有單詞的首字母大寫:XxxYyyZzz變量名、方法名:多單詞組成時(shí),第一個(gè)單詞首字母小寫,第二個(gè)單詞開始每個(gè) 單詞首字母大寫:xxxYyyZzz常量名:所有字母都大寫。多單詞時(shí)每個(gè)單詞用下劃線連接:XXX_YYY_ZZZ

java采用unicode字符集,因此標(biāo)識(shí)符也可以使用漢字聲明,但是不建議使用。

三、變量

變量的概念:內(nèi)存中的一個(gè)存儲(chǔ)區(qū)域該區(qū)域的數(shù)據(jù)可以在同一類型范圍內(nèi)不斷變化變量是程序中最基本的存儲(chǔ)單元。包含變量類型、變量名和存儲(chǔ)的值使用變量注意:Java中每個(gè)變量必須先聲明,后使用使用變量名來(lái)訪問這塊區(qū)域的數(shù)據(jù)變量的作用域:其定義所在的一對(duì){ }內(nèi)
1.變量的分類-按數(shù)據(jù)類型
對(duì)于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型(強(qiáng)類型語(yǔ)言),在內(nèi)存中分 配了不同大小的內(nèi)存空間。
2.變量的分類-按聲明的位置的不同
在方法體外,類體內(nèi)聲明的變量稱為成員變量。在方法體內(nèi)部聲明的變量稱為局部變量。

注意:二者在初始化值方面的異同: 同:都有生命周期 異:局部變量除形參外,需顯式初始化。


(相關(guān)資料圖)

3.整數(shù)類型:byte、short、int、long
java的整型常量默認(rèn)為 int 型,聲明long型常量須后加‘l’或‘L‘java程序中變量通常聲明為int型,除非不足以表示較大的數(shù),才使用long

bit: 計(jì)算機(jī)中的最小存儲(chǔ)單位。byte:計(jì)算機(jī)中基本存儲(chǔ)單元。

4.浮點(diǎn)類型:float、double
浮點(diǎn)型常量有兩種表示形式:十進(jìn)制數(shù)形式:如:5.12 512.0f .512 (必須有小數(shù)點(diǎn))科學(xué)計(jì)數(shù)法形式:如:5.12e2 512E2 100E-2科學(xué)計(jì)數(shù)法形式:如:5.12e2 512E2 100E-2double:雙精度,精度是float的兩倍。通常采用此類型。Java 的浮點(diǎn)型常量默認(rèn)為double型,聲明float型常量,須后加‘f’或‘F’。
5.字符類型:char 和編碼
char 型數(shù)據(jù)用來(lái)表示通常意義上“字符”(2字節(jié))Java中的所有字符都使用Unicode編碼,故一個(gè)字符可以存儲(chǔ)一個(gè)字母,一個(gè)漢字,或其他書面語(yǔ)的一個(gè)字符。字符型變量的三種表現(xiàn)形式:字符常量是用單引號(hào)(‘ ’)括起來(lái)的單個(gè)字符。例如:char c1 = "a"; char c2 = "中"; char c3 = "9";Java中還允許使用轉(zhuǎn)義字符‘\’來(lái)將其后的字符轉(zhuǎn)變?yōu)樘厥庾址统A俊?例如:char c3 = ‘\n’; // "\n"表示換行符直接使用 Unicode 值來(lái)表示字符型常量:‘\uXXXX’。其中,XXXX代表 一個(gè)十六進(jìn)制整數(shù)。如:\u000a 表示 \n。char類型是可以進(jìn)行運(yùn)算的。因?yàn)樗紝?duì)應(yīng)有Unicode碼。

轉(zhuǎn)義字符

說(shuō)明

轉(zhuǎn)義字符

說(shuō)明

\b

退格符

??\"??

雙引號(hào)

\n

換行符

??\"??

單引號(hào)

\r

回車符

??\\??

反斜線

\t

制表符

了解:ASCII 碼了解: Unicode 編碼一種編碼,將世界上所有的符號(hào)都納入其中。每一個(gè)符號(hào)都給予一個(gè)獨(dú)一 無(wú)二的編碼,使用 Unicode 沒有亂碼的問題。了解: UTF-8
6.布爾類型:boolean
boolean類型數(shù)據(jù)只允許取值true和false,無(wú)null。不可以使用0或非 0 的整數(shù)替代false和true,這點(diǎn)和C語(yǔ)言不同。Java虛擬機(jī)中沒有任何供boolean值專用的字節(jié)碼指令,Java語(yǔ)言表達(dá)所操作的 boolean值,在編譯之后都使用java虛擬機(jī)中的int數(shù)據(jù)類型來(lái)代替:true用1表示,false 用0表示。———《java虛擬機(jī)規(guī)范 8版》
7.基本數(shù)據(jù)類型轉(zhuǎn)換
自動(dòng)類型轉(zhuǎn)換:容量小的類型自動(dòng)轉(zhuǎn)換為容量大的數(shù)據(jù)類型。數(shù)據(jù)類型按容 量大小排序?yàn)椋河卸喾N類型的數(shù)據(jù)混合運(yùn)算時(shí),系統(tǒng)首先自動(dòng)將所有數(shù)據(jù)轉(zhuǎn)換成容量最大的 那種數(shù)據(jù)類型,然后再進(jìn)行計(jì)算。byte,short,char之間不會(huì)相互轉(zhuǎn)換,他們?nèi)咴谟?jì)算時(shí)首先轉(zhuǎn)換為int類型。當(dāng)把任何基本數(shù)據(jù)類型的值和字符串(String)進(jìn)行連接運(yùn)算時(shí)(+),基本數(shù)據(jù)類 型的值將自動(dòng)轉(zhuǎn)化為字符串(String)類型。
8.字符串類型:String

String不是基本數(shù)據(jù)類型,屬于引用數(shù)據(jù)類型

9.強(qiáng)制類型轉(zhuǎn)換
自動(dòng)類型轉(zhuǎn)換的逆過程,將容量大的數(shù)據(jù)類型轉(zhuǎn)換為容量小的數(shù)據(jù)類型。使 用時(shí)要加上強(qiáng)制轉(zhuǎn)換符:(),但可能造成精度降低或溢出,格外要注意。boolean類型不可以轉(zhuǎn)換為其它的數(shù)據(jù)類型。

10.關(guān)于進(jìn)制

二進(jìn)制(binary):0,1 ,滿2進(jìn)1.以0b0B開頭。十進(jìn)制(decimal):0-9 ,滿10進(jìn)1。八進(jìn)制(octal):0-7 ,滿8進(jìn)1. 以數(shù)字0開頭表示。十六進(jìn)制(hex):0-9及A-F,滿16進(jìn)1. 以0x0X開頭表示。此處的A-F不區(qū)分大小寫。如:0x21AF +1= 0X21B0

11.二進(jìn)制

Java整數(shù)常量默認(rèn)是int類型,當(dāng)用二進(jìn)制定義整數(shù)時(shí),其第32位是符號(hào)位; 當(dāng)是long類型時(shí),二進(jìn)制默認(rèn)占64位,第64位是符號(hào)位二進(jìn)制的整數(shù)有如下三種形式:原碼:直接將一個(gè)數(shù)值換成二進(jìn)制數(shù)。最高位是符號(hào)位負(fù)數(shù)的反碼:是對(duì)原碼按位取反,只是最高位(符號(hào)位)確定為1。負(fù)數(shù)的補(bǔ)碼:其反碼加1。

四、運(yùn)算符

算術(shù)運(yùn)算符賦值運(yùn)算符比較運(yùn)算符(關(guān)系運(yùn)算符)邏輯運(yùn)算符位運(yùn)算符三元運(yùn)算符“&”和“&&”的區(qū)別:?jiǎn)?時(shí),左邊無(wú)論真假,右邊都進(jìn)行運(yùn)算;雙&時(shí),如果左邊為真,右邊參與運(yùn)算,如果左邊為假,那么右邊不參與運(yùn)算。

練習(xí)題

1.Java的內(nèi)存管理之垃圾回收(了解)

分配:由JVM自動(dòng)為其分配相應(yīng)的內(nèi)存空間

釋放:由JVM提供垃圾回收機(jī)制自動(dòng)的釋放內(nèi)存空間

垃圾回收機(jī)制(GC:Garbage Collection):將垃圾對(duì)象所占用的堆內(nèi)存進(jìn)行回收。Java的垃圾回收機(jī)制是JVM提供的能力,由單獨(dú)的系統(tǒng)級(jí)垃圾回收線程在空閑時(shí)間以不定時(shí)的方式動(dòng)態(tài)回收。

\垃圾對(duì)象\:不再被任何引用指向的對(duì)象。

2.在程序中是否可以通知垃圾回收機(jī)制過來(lái)回收垃圾?

能,通過調(diào)用System.gc();或Runtime.getRuntime().gc();

再問:調(diào)用了System.gc();或Runtime.getRuntime().gc();后是立刻執(zhí)行垃圾回收嗎?

不是,該調(diào)用并不會(huì)立刻啟動(dòng)垃圾回收機(jī)制開始回收,但會(huì)加快垃圾回收機(jī)制的運(yùn)行。

3.構(gòu)造器Constructor是否可被override

構(gòu)造器Constructor不能被繼承,因此不能重寫Override,但可以被重載Overload

4. Anonymous Inner Class (匿名內(nèi)部類) 是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)

匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能extends(繼承) 其它類,但一個(gè)內(nèi)部類可以作為一個(gè)接口,由另一個(gè)內(nèi)部類實(shí)現(xiàn)

5. Static Nested Class 和 Inner Class的不同

Nested Class (一般是C++的說(shuō)法),Inner Class (一般是JAVA的說(shuō)法)。

Java內(nèi)部類與C++嵌套類最大的不同就在于是否有指向外部的引用上。

注: 靜態(tài)內(nèi)部類(Inner Class)意味著

1創(chuàng)建一個(gè)static內(nèi)部類的對(duì)象,不需要一個(gè)外部類對(duì)象,2不能從一個(gè)static內(nèi)部類的一個(gè)對(duì)象訪問一個(gè)外部類對(duì)象

6.簡(jiǎn)單工廠模式
敘述工廠模式的設(shè)計(jì)理念

有一個(gè)交通工具接口類Vehicles,有work接口,有Horse類和Boat類分別實(shí)現(xiàn)Vehicles,創(chuàng)建交通工具工廠類,有兩個(gè)方法分別獲得交通工具Horse和Boat;有Person類,有name和Vehicles屬性,在構(gòu)造器中賦值,實(shí)例化“唐僧”,一般情況下用Horse作為交通工具,遇到大河時(shí)用Boat作為交通工具。

有一個(gè)農(nóng)場(chǎng)公司,專門向市場(chǎng)銷售各類水果,主要包括下列水果:葡萄 Grape,草莓 Stuawberry,蘋果 Apple;有一個(gè)Fruit接口,包含grow生長(zhǎng),harvest收獲和plant方法,葡萄、草莓和蘋果都實(shí)現(xiàn)了這個(gè)接口;有一個(gè)農(nóng)場(chǎng)園丁類FruitGardener,具有采摘水果的方法getFruit(String fruitName);這時(shí)有人來(lái)果園玩,和園丁說(shuō)介紹一下你的各種水果(創(chuàng)建一個(gè)People類進(jìn)行測(cè)試,分別通過農(nóng)場(chǎng)園丁類得到各種水果)。

有一個(gè)顯示器接口Graphoscope,具有display方法,有兩個(gè)類:臺(tái)式顯示器和液晶顯示器都實(shí)現(xiàn)顯示器接口,有一個(gè)顯示器生產(chǎn)廠家能夠生產(chǎn)這兩種顯示器;有Computer類,具有Graphoscope屬性,生產(chǎn)兩臺(tái)電腦,分別配置臺(tái)式顯示器和液晶顯示器。

標(biāo)簽: 垃圾回收 數(shù)據(jù)類型 交通工具

上一篇:世界視訊!Python爬蟲-第一章-4-基礎(chǔ)語(yǔ)法
下一篇:【世界速看料】#yyds干貨盤點(diǎn)# 名企真題專題: 棋子翻轉(zhuǎn)