Java基礎(chǔ)筆記2019-10-06

Java版本:

1、Java ME(Java Micro Edition):開發(fā)移動(dòng)應(yīng)用和嵌入式應(yīng)用。
2、Java SE(Java Standard Edition):開發(fā)桌面應(yīng)用。
3、Java EE(Java Enterprise Edition):開發(fā)Web應(yīng)用。


Java類之間的繼承只支持單一繼承,不支持多繼承。

Java支持類與接口之間的多繼承,即一個(gè)類可以繼承(實(shí)現(xiàn)implements)多個(gè)接口。


Java是體系中立的:

Java程序(.java文件)通過JVM中的java編譯器編譯成字節(jié)碼文件(.java文件)再通過解釋器和JIT(Java即時(shí)編譯器)解釋成本地機(jī)器碼文件執(zhí)行,實(shí)現(xiàn)跨平臺(tái)運(yùn)行,即Java程序的一次編譯,到處運(yùn)行。



Java語言是動(dòng)態(tài)的:

Java語言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動(dòng)態(tài)變化的環(huán)境。通過反射的方式(Class.forName("類名稱")),Java程序需要的類能夠動(dòng)態(tài)地被載入到運(yùn)行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類。這也有利于軟件的升級(jí)。另外,Java中的類有一個(gè)運(yùn)行時(shí)刻的表示,能進(jìn)行運(yùn)行時(shí)刻的類型檢查。


一些特殊的關(guān)鍵字:

abstract:
1.修飾類時(shí),這個(gè)類稱為抽象類,抽象類不能實(shí)例化對(duì)象,因此必須被繼承才能使用。
2.修飾方法時(shí),該方法稱為抽象方法,抽象方法沒有函數(shù)體,成員函數(shù)為抽象方法的類必須是抽象方法。

final:
1.修飾變量時(shí),該變量初始化后就不能再改變。
2.修飾類時(shí),該類不能被繼承。
3.修飾方法時(shí),該方法不能被重寫。

synchronize:修飾一段代碼塊,該代碼塊同一時(shí)間只能被一個(gè)線程訪問。

volatile:在多線程環(huán)境下,某個(gè)共享變量如果被其中一個(gè)線程給修改了,其他線程能夠立即知道這個(gè)共享變量已經(jīng)被修改了,當(dāng)其他線程要讀取這個(gè)變量的時(shí)候,最終會(huì)去內(nèi)存中讀取,而不是從自己的工作空間中讀取,這稱為可見性。例如當(dāng)線程1對(duì)t進(jìn)行了加1操作并把數(shù)據(jù)寫回到主存之后,線程2就會(huì)知道它自己工作空間內(nèi)的t已經(jīng)被修改了,當(dāng)它要執(zhí)行加1操作之后,就會(huì)去主存中讀取。這樣,兩邊的數(shù)據(jù)就能一致了。假如一個(gè)變量被聲明為volatile,那么這個(gè)變量就具有了可見性的性質(zhì)了。這就是volatile關(guān)鍵的作用之一了。詳見:https://www.cnblogs.com/kubidemanong/p/9505944.html


Java數(shù)據(jù)類型:

一、八大內(nèi)置數(shù)據(jù)類型:
byte:
包裝類:Byte
位數(shù):8位(8個(gè)二進(jìn)制位,下同)
范圍:有符號(hào),-2^7 ~ 2^7-1

short:
包裝類:Short
位數(shù):16位
范圍:有符號(hào),-2^15 ~ 2^15-1

int:
包裝類:Integer
位數(shù):32位
范圍:有符號(hào),-2^31 ~ 2^31-1

long:
包裝類:Long
位數(shù):64位
范圍:有符號(hào),-2^63 ~ 2^63-1

float:
包裝類:Float
位數(shù):32位
默認(rèn)值:0.0f,單精度

double:
包裝類:Double
位數(shù):64位
默認(rèn)值:0.0d,雙精度

char:
包裝類:Character
位數(shù):16位

boolean:
位數(shù):1位

二、引用數(shù)據(jù)類型:
類的實(shí)例,對(duì)象和數(shù)組都是引用數(shù)據(jù)類型,所有引用數(shù)據(jù)類型默認(rèn)值都是null。


String類是不可改變的,所以你一旦創(chuàng)建了String對(duì)象,那它的值就無法改變了。 如果需要對(duì)字符串做很多修改,那么應(yīng)該選擇使用StringBuffer & StringBuilder 類。


StringBuilder相較于SringBuffer類有速度優(yōu)勢(shì),多數(shù)情況下使用StringBuilder類,但是它不是線程安全的,所以在要求線程安全的情況下需使用StringBuffer類。


方法重寫(Override)和重載(Overload)的區(qū)別:


Java反射機(jī)制

定義:
在運(yùn)行過程中,動(dòng)態(tài)的獲取類信息以及動(dòng)態(tài)的調(diào)用類方法或?qū)傩缘臋C(jī)制稱為Java反射機(jī)制
反射機(jī)制中相關(guān)的類:
Class類:代表類和接口的實(shí)體
Filed類:代表類的成員變量(屬性)
Method類:代表類的方法
Constructor類:代表類的構(gòu)造方法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容