java基礎(chǔ)2

1.二分查找

定義:使用折半的形式,一次性剔除一半的無(wú)效元素,提高查找的效率,二分查找的數(shù)組必須是有序的,

public static int binsearch(int[] arr,int value){

int start=0;? ? ?int end=arr.length-1;? int mid;

while(start<=end){

mid=(end+start)/2;

if(arr[mid]==value){

return mid;

}else if(aee[mid]>value){

end=mid-1;

}else if(aee[mid]<value){

start=mid+1;

}

}

return-1;}

2.冒泡排序

定義:相鄰的兩個(gè)值比較,然后交換位置,每次循環(huán)都會(huì)將有效元素中最大的或者最小的移動(dòng)到有效位的最后,經(jīng)過(guò)多次循環(huán)后,就可以派出一個(gè)有序的數(shù)組

public static void bubbleSort(int[] arr){

for(int i=1;i<arr.length;i++){

for(int j=0;j<arr.length-i;j++){
if(arr[j]>arrr[j+1]){

int temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;}

}

}

3.方法

將一段代碼圈起來(lái),便于重復(fù)使用(提高代碼的復(fù)用性)

方法名:別的方法要調(diào)用當(dāng)前方法,需要方法名

參數(shù)列表:當(dāng)前方法運(yùn)行的原材料

返回值類型:檢測(cè)或者是規(guī)定能夠當(dāng)前返回出去的結(jié)果的類型

一.方法的分類和調(diào)用

有參有返回值,有參無(wú)返回值,無(wú)參有返回值,無(wú)參無(wú)返回值,賦值調(diào)用,單獨(dú)調(diào)用,輸出調(diào)用.

二.方法的重載

類中出現(xiàn)了方法名相同,參數(shù)列表不同的方法,這種現(xiàn)象我們稱之為重載

參數(shù)列表不同的表現(xiàn):類型不同,長(zhǎng)度不同,順序不同

三.方法間調(diào)用的內(nèi)存原理

虛擬機(jī)開(kāi)啟,只會(huì)執(zhí)行main方法,其他的方法都必須有main方法調(diào)用才能印出來(lái)

棧:一端開(kāi)口,方法的運(yùn)行區(qū)域.:棧只會(huì)執(zhí)行最頂端的方法,壓棧,彈棧

四.可變參數(shù)

優(yōu)點(diǎn):即可以接受數(shù)組,也可以接受散裝數(shù)據(jù)

缺點(diǎn):必須是參數(shù)列表的最后一個(gè)參數(shù)

4.面向?qū)ο?/h1>

java的程序一半是運(yùn)行在多工環(huán)境(同一時(shí)間有好多人使用)

為了保證代碼和數(shù)據(jù)的安全性,每個(gè)人使用的類必須分開(kāi)

所以,java中會(huì)造一個(gè)模板,用戶使用時(shí),通過(guò)模板早出每個(gè)人專屬的對(duì)象

所以,java成員每天都在跟對(duì)象打交道,稱之為面向?qū)ο缶幊?/p>

5.類的使用

工具

模板:成員變量和成員方法混合使用,單獨(dú)使用成員變量的(javaBean)

6.對(duì)象

根據(jù)模板創(chuàng)建的實(shí)例,存放在堆內(nèi)存中

一個(gè)類可以創(chuàng)建無(wú)數(shù)個(gè)對(duì)象

類名 對(duì)象名=new 類名();

7.成員變量和局部變量

書寫的位置,內(nèi)存中的位置,聲明周期,初始化值

8.匿名對(duì)象

沒(méi)名字的對(duì)象,用一次就不用了

9.private關(guān)鍵字

私有化,本類中的其他成員可以使用,別的類中無(wú)法使用

10.javaBean

用來(lái)存儲(chǔ)運(yùn)輸數(shù)據(jù),私有化所有的成員變量,提供getter和setter方法,提供toString方法

11.this

表示當(dāng)前對(duì)象,那個(gè)對(duì)象調(diào)用這個(gè)方法,this就代表誰(shuí)

12.構(gòu)造方法

特性:隨著創(chuàng)建對(duì)象而自動(dòng)執(zhí)行和創(chuàng)建對(duì)象這個(gè)動(dòng)作是緊密相連的

作用:優(yōu)先于成員方法執(zhí)行,給方法運(yùn)行時(shí)的必要成員變量賦值

構(gòu)造方法的重載:所有存在的可用的構(gòu)造方法都是重載關(guān)系,構(gòu)造方法之間可以相互調(diào)用this()

13.類成員之間相互調(diào)用

成員變量和成員方法之間是可以相互調(diào)用的,構(gòu)造方法可以調(diào)用成員變量和成員方法,構(gòu)造代碼塊也可以調(diào)用成員變量和成員方法,成員變量和成員方法無(wú)法調(diào)用構(gòu)造代碼塊和構(gòu)造方法,構(gòu)造方法和構(gòu)造代碼塊相互無(wú)法調(diào)用

14.代碼

局部代碼塊:寫在方法內(nèi),即使釋放資源

構(gòu)造代碼塊:優(yōu)先于構(gòu)造方法執(zhí)行,可以將構(gòu)造方法中相同的代碼提取出來(lái),放到構(gòu)造代碼塊中

靜態(tài)代碼塊:類加載時(shí)執(zhí)行,優(yōu)先于對(duì)象,一般用來(lái)注冊(cè)驅(qū)動(dòng)

同步代碼塊:保證多線程的安全性

15.靜態(tài)

類加載的過(guò)程中,在初始化類的時(shí)候,會(huì)將所有的靜態(tài)存入靜態(tài)方法區(qū)(能執(zhí)行的就先執(zhí)行了),獨(dú)一份

優(yōu)先于對(duì)象,更優(yōu)先于所有的非靜態(tài)

唯一的,公用的

靜態(tài)的調(diào)用:靜態(tài)只能調(diào)用靜態(tài),非靜態(tài)可以的調(diào)用靜態(tài).因?yàn)殪o態(tài)存在的時(shí)候,非靜態(tài)不一定存在,如果直接調(diào)用,有危險(xiǎn),虛擬機(jī)不允許.非靜態(tài)執(zhí)行時(shí),靜態(tài)一定存在,所以,可以放心使用

16.單例模式

解決一個(gè)類在內(nèi)存中如何只保存只有一個(gè)對(duì)象的問(wèn)題

類為什么要在內(nèi)存中只有一個(gè)對(duì)象?:節(jié)省創(chuàng)建對(duì)象的時(shí)間和存儲(chǔ)對(duì)象的空間,而且不會(huì)占用靜態(tài)方法去的空間

私有化構(gòu)造方法

定義一個(gè)四游湖的靜態(tài)變量用來(lái)存放我們自己創(chuàng)建的對(duì)象

提供一個(gè)靜態(tài)的方法,供用戶獲取對(duì)象

17.繼承

子類類名extends父類類型

子類可以使用父類的非私有成員

提高了代碼的復(fù)用性和維護(hù)性

類和類之間的關(guān)系加強(qiáng)了,不符合編程的理念

注意事項(xiàng):父類中的私有化成員不能繼承,super關(guān)鍵字.

構(gòu)造方法,子類會(huì)默認(rèn)訪問(wèn)父類的空餐構(gòu)造,我們沒(méi)寫,編譯器會(huì)自動(dòng)加上,如果父類中沒(méi)有空參構(gòu)造,子類會(huì)報(bào)錯(cuò),需要我們手動(dòng)調(diào)用父類的空參構(gòu)造,或者去父類中添加一個(gè)空參構(gòu)造,super()必須是子類構(gòu)造方法的第一條執(zhí)行語(yǔ)句

18.方法的重寫

子類和父類中出現(xiàn)了一模一樣的方法,這種現(xiàn)象叫重寫,方法名和參數(shù)列表必須一樣,子類重寫父類的方法,意味著,子類的方法對(duì)父類的方法形成了全遮擋

注意事項(xiàng):子類的權(quán)限不能比父類低,父類中的方法如果是靜態(tài)的,子類重寫的時(shí)候也必須是靜態(tài)的,父類的私有化方法不能重寫,因?yàn)閴焊床灰?jiàn)

instanceof關(guān)鍵字:用來(lái)比較對(duì)象是不是屬于這個(gè)類或者這個(gè)類的父類.

19.多態(tài)

子類對(duì)象可以存到父類的變量中

前提條件:子父類關(guān)系.方法重寫.父類引用指向子類對(duì)象

好處:提高代碼的復(fù)用性和擴(kuò)展性

缺點(diǎn):不能使用子類對(duì)象的特有方法

20.多態(tài)成員訪問(wèn)特點(diǎn)

編譯看左,運(yùn)行看左:成員變量,靜態(tài)方法?

編譯看左,運(yùn)行看右,只要子類中重寫了,一定執(zhí)行子類的方法:非靜態(tài)成員方法(全遮擋)

向上轉(zhuǎn)型(子類轉(zhuǎn)父類)

向下轉(zhuǎn)型(父類轉(zhuǎn)子類,有危險(xiǎn)),轉(zhuǎn)之前,要使用instanceof關(guān)鍵字判斷一下

21.final

最終的, 無(wú)法被改變 , 只能賦值一次

修飾的特性:修飾類, 類不能被繼承,修飾方法, 方法不能被重寫,修飾變量, 變量只能賦值一次

修飾成員變量時(shí),在初始化完畢之前必須要賦值,靜態(tài)是類初始化完畢前,非靜態(tài)是對(duì)象初始化完畢前

22.abstract關(guān)鍵字

制定規(guī)則,一個(gè)類中如果有抽象方法,這個(gè)類也必須是抽象類,抽象類中可以沒(méi)有抽象方法,抽象不能實(shí)例化(創(chuàng)建對(duì)象) , 不安全, 抽象方法用不了,抽象類的子類可以是抽象類, 不用重寫抽象方法,抽象類的子類可以是非抽象類, 必須重寫抽象方法

23.java傳遞值得方式

基本數(shù)據(jù)類型傳遞的是值, 引用數(shù)據(jù)類型傳遞的是址, String稍微特殊

24. 接口

interface implements,接口中全部都是抽象方法,接口中的成員變量,都是公開(kāi)的, 靜態(tài)的, 最終的? public static final

作用,指定規(guī)則,思考的過(guò)程,代碼的框架

我們?cè)谒伎歼^(guò)程中, 用來(lái)記錄業(yè)務(wù)邏輯.

25.類和接口之間的關(guān)系

類和類: 繼承 單繼承, 多層繼承

類和接口: 實(shí)現(xiàn), 可以多實(shí)現(xiàn)

接口和接口: 繼承, 可以多繼承




?著作權(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)容