Java知識點(diǎn)

數(shù)組:

數(shù)據(jù)類型[]數(shù)組名 = new 數(shù)據(jù)類型[元素個數(shù)或數(shù)組長度];

int[] x = new int[100];

arr[0] = 1

arr[1] = 2

類型[]數(shù)組名 = new 類型[]{元素,元素,……};

int[] arr = new int[]{1,2,3,4};

類型[]數(shù)組名 = {元素,元素,元素,……};

? int[] arr = {1,2,3,4};

static

當(dāng)在定義類的時候,類中都會有相應(yīng)的屬性和方法。而屬性和方法都是通過創(chuàng)建本類對象調(diào)用的。當(dāng)在調(diào)用對象的某個方法時,這個方法沒有訪問到對象的特有數(shù)據(jù)時,方法創(chuàng)建這個對象有些多余??墒遣粍?chuàng)建對象,方法又調(diào)用不了,這時就會想,那么我們能不能不創(chuàng)建對象,就可以調(diào)用方法呢可以的,我們可以通過static關(guān)鍵字來實(shí)現(xiàn)。static它是靜態(tài)修飾符,一般用來修飾類中的成員。被static修飾的成員變量屬于類,不屬于這個類的某個對象。(也就是說,多個對象在訪問或修改static修飾的成員變量時,其中一個對象將static成員變量值進(jìn)行了修改,其他對象中的static成員變量值跟著改變,即多個對象共享同一個static成員變量)

面向?qū)ο笕筇卣?/p>

封裝、繼承、多態(tài)?

封裝:是指一種將抽象性函式接口的實(shí)現(xiàn)細(xì)節(jié)部分包裝、隱藏起來的方法。封裝可以被認(rèn)為是一個保護(hù)屏障,防止該類的代碼和數(shù)據(jù)被外部類定義的代碼隨機(jī)訪問。要訪問該類的代碼和數(shù)據(jù),必須通過嚴(yán)格的接口控制。封裝最主要的功能在于我們能修改自己的實(shí)現(xiàn)代碼,而不用修改那些調(diào)用我們代碼的程序片段。適當(dāng)?shù)姆庋b可以讓程式碼更容易理解與維護(hù),也加強(qiáng)了程式碼的安全性。減少耦合,類內(nèi)部的結(jié)構(gòu)可以自由修改,對成員變量進(jìn)行更精確的控制,隱藏信息,實(shí)現(xiàn)細(xì)節(jié)。

繼承:是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因為它允許創(chuàng)建分等級層次的類。繼承就是子類繼承父類的特征和行為,使得子類對象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。

多態(tài):

一般分為重寫式多態(tài)和重載式多態(tài),簡而言之就是同一個行為具有多個不同表現(xiàn)形式或形態(tài)的能力,運(yùn)行時多態(tài)的前提:繼承,重寫,向上轉(zhuǎn)型。

public 權(quán)限修飾符,公共訪問類,方法成員變量

protected 權(quán)限修飾符,受保護(hù)訪問方法成員變量

默認(rèn)什么也不寫也是一種權(quán)限修飾符,默認(rèn)訪問類方法成員變量

private 權(quán)限修飾符,私有訪問方法成員變量

static 靜態(tài)修飾符方法成員變量

final 最終修飾符類方法成員變量局部變量

abstract 抽象修飾符類方法

B: 不能同時使用的修飾符

同時,abstract與private不能同時使用;

同時,abstract與static不能同時使用;

同時,abstract與final不能同時使用。

C: 修飾類能夠使用的修飾符:修飾類只能使用public、默認(rèn)的、final、abstract關(guān)鍵字使用最多的是 public關(guān)鍵字

public公共的

protected受保護(hù)的默認(rèn)的

private私有的

final最終的

static靜態(tài)的

使用最多的是 private

==和equal的聯(lián)系與區(qū)別:

最大的區(qū)別是,==是運(yùn)算符,equal是方法

java基本類型(short,int,long,byte,char,float,double,boolean)

比較基本類型,只能用==,不能用equal,這里的==比較的是兩個變量的值

==比較的是內(nèi)存地址,因為a和b是new出來的,是兩個不同的對象,所以地址肯定是不同的,而equal比較的是值,

==比較的是內(nèi)存地址,equal+比較的是值

==和equal比較的都是內(nèi)存地址,因為equal沒有被重寫,沒有被重寫的equal都是object的equal方法

線程的五種狀態(tài)

線程共包括以下5種

1.新建狀態(tài)(New):線程對象被創(chuàng)建后,就進(jìn)入了新建狀態(tài)。例如,Thread thread = new Thread()。

2.就緒狀態(tài)(Runnable):也被稱為“可執(zhí)行狀態(tài)”。線程對象被創(chuàng)建后,其它線程調(diào)用了該對象的start()方法,從而來啟動該線程。例如,thread.start()。處于就緒狀態(tài)的線程,隨時可能被CPU調(diào)度執(zhí)行。

3.運(yùn)行狀態(tài)(Running):線程獲取CPU權(quán)限進(jìn)行執(zhí)行。需要注意的是,線程只能從就緒狀態(tài)進(jìn)入到運(yùn)行狀態(tài)。

4.阻塞狀態(tài)(Blocked):阻塞狀態(tài)是線程因為某種原因放棄CPU使用權(quán),暫時停止運(yùn)行。直到線程進(jìn)入就緒狀態(tài),才有機(jī)會轉(zhuǎn)到運(yùn)行狀態(tài)。阻塞的情況分三種:

(01)等待阻塞--通過調(diào)用線程的wait()方法,讓線程等待某工作的完成。

(02)同步阻塞--線程在獲取synchronized同步鎖失敗,它會進(jìn)入同步阻塞狀態(tài)。

(03)其他阻塞--通過調(diào)用線程的sleep()或join()或發(fā)出了I/O請求時,線程會進(jìn)入到阻塞狀態(tài)。當(dāng)sleep()狀態(tài)超時、join()等待線程終止或者超時、或者I/O處理完畢時,線程重新轉(zhuǎn)入就緒狀態(tài)。

5.死亡狀態(tài)(Dead):線程執(zhí)行完了或者因異常退出了run()方法,該線程結(jié)束生命周期。

創(chuàng)建字符串

String str = "HelloWorld";

String str=new String("HelloWorld");

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

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

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