最新国产在线不卡AV,国产又爽又黄的视频免费看,精品综合久久久久久97,日韩欧美高清中文字幕免费一区二区

            科普

            java基礎(chǔ)知識(shí)_java語(yǔ)法基礎(chǔ)知識(shí) IT知識(shí)

            電腦知識(shí)優(yōu)爾供稿

            Java是一種簡(jiǎn)單的、面向?qū)ο蟮?、分布式的、健壯的、結(jié)構(gòu)中立的、可移植的、高性能的、多線程的動(dòng)態(tài)語(yǔ)言。下面一起來(lái)看看9252兒童網(wǎng)小編為大家整理的java基礎(chǔ)知識(shí),歡迎閱讀,僅供參考。

            java基礎(chǔ)知識(shí)分享

            Java編程語(yǔ)言基礎(chǔ)知識(shí)

            一、先明白了解什么是Java的四個(gè)方面。

            初學(xué)者先弄清這些Java的基本概念也是必不可少的,死記硬背肯定是不行的,重在理解,理解它們之間的區(qū)別與聯(lián)系,分別有哪些應(yīng)用。想想這些代碼中用到了哪些知識(shí)點(diǎn)。不要一味地照著書(shū)本敲代碼。而不去理解。

            Java編程語(yǔ)言,即語(yǔ)法。

            Java文件格式,即各種文件夾、文件的后綴。

            Java虛擬機(jī)(JVM),即處理_.class文件的解釋器。

            Java應(yīng)用程序接口(Java API)。

            要知道java是分兩部分的:一個(gè)是編譯,一個(gè)是運(yùn)行。

            javac:負(fù)責(zé)的是編譯的部分,當(dāng)執(zhí)行javac時(shí),會(huì)啟動(dòng)java的編譯器程序。對(duì)指定擴(kuò)展名的.java文件進(jìn)行編譯。 生成了jvm可以識(shí)別的字節(jié)碼文件。也就是class文件,也就是java的運(yùn)行程序。

            java:負(fù)責(zé)運(yùn)行的部分.會(huì)啟動(dòng)jvm.加載運(yùn)行時(shí)所需的類庫(kù),并對(duì)class文件進(jìn)行執(zhí)行.

            一個(gè)文件要被執(zhí)行,必須要有一個(gè)執(zhí)行的起始點(diǎn),這個(gè)起始點(diǎn)就是main函數(shù).

            二、掌握靜態(tài)方法和屬性

            靜態(tài)方法和屬性用于描述某一類對(duì)象群體的特征,而不是單個(gè)對(duì)象的特征。Java中大量應(yīng)用了靜態(tài)方法和屬性,這是一個(gè)通常的技巧。但是這種技巧在很多語(yǔ)言中不被頻繁地使用。理解靜態(tài)方法和屬性對(duì)于理解類與對(duì)象的關(guān)系是十分有幫助的,在大量的Java規(guī)范中,靜態(tài)方法和屬性被頻繁使用。因此學(xué)習(xí)者應(yīng)該理解靜態(tài)方法和屬性。Java在方法和屬性的調(diào)用上是一致的,區(qū)別只表現(xiàn)在聲明的時(shí)候,這和c++是不同的。

            三、初學(xué)者還需明白JAVA的三個(gè)技術(shù)平臺(tái)的關(guān)系。

            Java分為三個(gè)體系,分別為Java SE(J2SE,Java2 Platform Standard Edition,標(biāo)準(zhǔn)版)。

            JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企業(yè)版)。

            Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。

            要知道java是分兩部分的:一個(gè)是編譯,一個(gè)是運(yùn)行。

            javac:負(fù)責(zé)的是編譯的部分,當(dāng)執(zhí)行javac時(shí),會(huì)啟動(dòng)java的編譯器程序。對(duì)指定擴(kuò)展名的.java文件進(jìn)行編譯。 生成了jvm可以識(shí)別的字節(jié)碼文件。也就是class文件,也就是java的運(yùn)行程序。

            java:負(fù)責(zé)運(yùn)行的部分.會(huì)啟動(dòng)jvm.加載運(yùn)行時(shí)所需的類庫(kù),并對(duì)class文件進(jìn)行執(zhí)行.

            一個(gè)文件要被執(zhí)行,必須要有一個(gè)執(zhí)行的起始點(diǎn),這個(gè)起始點(diǎn)就是main函數(shù).

            四、掌握J(rèn)AVA代碼的基本格式

            1、Java注釋盡可能全面

            對(duì)于方法的注釋?xiě)?yīng)該包含詳細(xì)的入?yún)⒑徒Y(jié)果說(shuō)明,有異常拋出的情況也要詳細(xì)敘述:類的注釋?xiě)?yīng)該包含類的功能說(shuō)明、作者和修改者。

            2、多次使用的相同變量最好歸納成常量

            多處使用的相同值的變量應(yīng)該盡量歸納為一個(gè)常量,方便日后的維護(hù)。

            3、盡量少的在循環(huán)中執(zhí)行方法調(diào)用

            盡量在循環(huán)中少做一些可避免的方法調(diào)用,這樣可以節(jié)省方法棧的創(chuàng)建。例如:

            for(int i=0;i<list.size();i++){< p="">

            System.out.println(i);

            }

            可以修改為:

            for(int i=0,size=list.size();i<size;i++){< p="">

            System.out.println(i);

            }

            4、常量的定義可以放到接口中

            在Java中,接口里只允許存在常量,因此把常量放到接口中聲明就可以省去public static final這幾個(gè)關(guān)鍵詞。

            5、ArrayList和LinkedList的選擇

            這個(gè)問(wèn)題比較常見(jiàn)。通常程序員最好能夠?qū)ist的使用場(chǎng)景做出評(píng)估,然后根據(jù)特性作出選擇。ArrayList底層是使用數(shù)組實(shí)現(xiàn)的,因此隨機(jī)讀取數(shù)據(jù)會(huì)比LinkedList快很多,而LinkedList是使用鏈表實(shí)現(xiàn)的,新增和刪除數(shù)據(jù)的速度比ArrayList快不少。

            6、String,StringBuffer和StringBuilder

            這個(gè)問(wèn)題也比較常見(jiàn)。在進(jìn)行字符串拼接處理的時(shí)候,String通常會(huì)產(chǎn)生多個(gè)對(duì)象,而且將多個(gè)值緩存到常量池中。例如:

            String a=“a”;

            String b=“b”;

            a=a+b;

            這種情況下jvm會(huì)產(chǎn)生“a”,“b”,“ab”三個(gè)對(duì)象。而且字符串拼接的性能也很低。因此通常需要做字符串處理的時(shí)候盡量采用StringBuffer和StringBuilder來(lái)。

            7、包裝類和基本類型的選擇

            在代碼中,如果可以使用基本數(shù)據(jù)類型來(lái)做局部變量類型的話盡量使用基本數(shù)據(jù)類型,因?yàn)榛绢愋偷淖兞渴谴娣旁跅V械?,包裝類的變量是在堆中,棧的操作速度比堆快很多。

            8、盡早的將不再使用的變量引用賦給null

            這樣做可以幫助jvm更快的進(jìn)行內(nèi)存回收。當(dāng)然很多人其實(shí)對(duì)這種做法并不感冒。

            9、在finally塊中對(duì)資源進(jìn)行釋放

            典型的場(chǎng)景是使用io流的時(shí)候,不論是否出現(xiàn)異常最后都應(yīng)該在finally中對(duì)流進(jìn)行關(guān)閉。

            10、在HashMap中使用一個(gè)Object作為key時(shí)要注意如何區(qū)分Object是否相同

            在jdk的HashMap實(shí)現(xiàn)中,判斷兩個(gè)Object類型的key是否相同的標(biāo)準(zhǔn)是hashcode是否相同和equals方法的返回值。如果業(yè)務(wù)上需要對(duì)兩個(gè)數(shù)據(jù)相同的內(nèi)存對(duì)象當(dāng)作不同的key存儲(chǔ)到hashmap中就要對(duì)hashcode和equals方法進(jìn)行覆蓋。

            Java描述復(fù)雜數(shù)據(jù)結(jié)構(gòu)的主要方式是集合框架。Java沒(méi)有指針,而是通過(guò)強(qiáng)大的集合框架描述數(shù)組、對(duì)象數(shù)組等復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。學(xué)好這些數(shù)據(jù)結(jié)構(gòu)的描述方法對(duì)于應(yīng)用程序編寫(xiě),特別是涉及到服務(wù)器方、3層結(jié)構(gòu)編程至關(guān)重要。程序員在這個(gè)時(shí)候不能再用諸如數(shù)據(jù)庫(kù)結(jié)果集之類的結(jié)構(gòu)描述數(shù)據(jù)了。

            Java面試基礎(chǔ)知識(shí)

            1、Static存在的意義

            static主要意義是在于創(chuàng)建獨(dú)立的具體對(duì)象的域變量或者方法,以至于即使沒(méi)有創(chuàng)建對(duì)象,也能使用屬性和調(diào)用方法,static關(guān)鍵字還有一個(gè)比較關(guān)鍵的作用就是用來(lái)形成靜態(tài)代碼塊以優(yōu)化程序的性能。static塊可以置于類中的任何地方,類中可以有多個(gè)static塊。在類初次被加載的時(shí)候,會(huì)按照static塊的順序來(lái)執(zhí)行每個(gè)statci塊,并且只會(huì)執(zhí)行一次。為什么說(shuō)static塊可以用來(lái)優(yōu)化程序性能,是因?yàn)樗奶匦?,只?huì)在類加載的時(shí)候執(zhí)行一次。因此,很多時(shí)候可以將一些只需要進(jìn)行一次的初始化操作放在static代碼塊中進(jìn)行,被static修飾的變量或者方法是獨(dú)立于當(dāng)前類的任何對(duì)象,也就是說(shuō)這些靜態(tài)的變量或者方法不屬于任何一個(gè)實(shí)例化對(duì)象,而是被類直接的所共享。static變量值在類加載的時(shí)候分配空間,以后創(chuàng)建類對(duì)象的時(shí)候不會(huì)重新分配。賦值的話,是可以任意賦值的。被static修飾的變量或者方法是優(yōu)先于對(duì)象存在的,也就是說(shuō)當(dāng)一個(gè)類加載完畢之后,即便沒(méi)有創(chuàng)建對(duì)象,也可以去訪問(wèn)。

            2、面向?qū)ο笈c面向過(guò)程的區(qū)別?

            面向過(guò)程優(yōu)點(diǎn):性能比面向?qū)ο蟾?,因?yàn)轭愓{(diào)用時(shí)需要實(shí)例化,開(kāi)銷比較大,比較消耗資源,比如單片機(jī),嵌入式開(kāi)發(fā)、Linux、Unix等等一般都是采用面向過(guò)程的開(kāi)發(fā),性能是最重要的因素。缺點(diǎn):沒(méi)有面向?qū)ο蟊阌诰S護(hù)、容易復(fù)用、容易擴(kuò)展。面向?qū)ο髢?yōu)點(diǎn):易復(fù)用、易擴(kuò)展、易維護(hù),由于是面向?qū)ο笥蟹庋b、繼承、多態(tài)性的特點(diǎn),可以設(shè)計(jì)出低耦合的系統(tǒng),使得系統(tǒng)更加靈活、更加易于擴(kuò)展。缺點(diǎn):性能比面向過(guò)程低。面向過(guò)程是具體化的,流程化的,解決一個(gè)問(wèn)題,你需要一步一步的分析,一步一步的實(shí)現(xiàn)。面向?qū)ο笫悄K化的,你只需要抽象出來(lái)一個(gè)類對(duì)象,這是一個(gè)封閉的盒子,在這里你擁有數(shù)據(jù)也擁有解決問(wèn)題的方法,需要什么功能直接使用就可以了,不必去一步一步的實(shí)現(xiàn),至于這個(gè)功能是如何實(shí)現(xiàn)的,不需要了解。最后,面向?qū)ο蟮牡讓舆€是面向過(guò)程,把面向過(guò)程抽象出類,然后封裝,方便我們使用就是面向?qū)ο罅恕?/p>

            3、面向?qū)ο蟮娜筇匦裕?/p>

            抽象,抽象是將一類對(duì)象的共同特征總結(jié)出來(lái)構(gòu)造類的過(guò)程,包括數(shù)據(jù)抽象和行為抽象兩個(gè)方面,抽象只關(guān)心對(duì)象的有哪些屬性和行為,并不關(guān)心這些行為的細(xì)節(jié)是什么。封裝,封裝是把一個(gè)對(duì)象的屬性私有化,同時(shí)提供一些可以被外界訪問(wèn)的屬性的方法。繼承,繼承是使用已有的類的定義作為基礎(chǔ)建立的新的技術(shù),新類的定義可以增加新的數(shù)據(jù)或者新的功能,也可以使用父類的功能,但是不能選擇性的繼承父類。有一下三個(gè)方面,一、子類擁有父類非private的屬性和方法。二、子類可以擁有自己屬性和方法,即子類可以對(duì)父類進(jìn)行擴(kuò)展。三、子類可以用自己的方法實(shí)現(xiàn)父類的方法。多態(tài),所謂的多態(tài)就是程序中定義的引用變量所指向的具體類型和通過(guò)該引用變量發(fā)出的方法調(diào)用編程時(shí)并不確定,而是在程序運(yùn)行的時(shí)候才確定,即一個(gè)引用變量到底會(huì)指向那個(gè)類的實(shí)例對(duì)象,該引用變量發(fā)出的方法調(diào)用到底是那個(gè)類中的實(shí)現(xiàn)方法,必須由程序運(yùn)行期間才能決定。

            4、什么是多態(tài)機(jī)制?

            Java語(yǔ)言是如何實(shí)現(xiàn)多態(tài)的?所謂的多態(tài)是程序中定義的引用變量所指向的具體類型和通過(guò)該引用變量發(fā)出的方法調(diào)用在編程時(shí)并不確定,而是在程序運(yùn)行期間才確定。多態(tài)分為編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài),其中編輯時(shí)多態(tài)是靜態(tài)的,主要是指方法的重載,它是根據(jù)參數(shù)列表的不同來(lái)區(qū)分不同的函數(shù),在運(yùn)行時(shí)談不上多態(tài)。而是運(yùn)行時(shí)多態(tài)是動(dòng)態(tài)的,它是通過(guò)動(dòng)態(tài)綁定來(lái)實(shí)現(xiàn)的,也就是我們所說(shuō)的多態(tài)性。

            5、多態(tài)的實(shí)現(xiàn),Java中實(shí)現(xiàn)多態(tài)有三個(gè)必要條件:

            繼承、重寫(xiě)、向上轉(zhuǎn)型。繼承:在多態(tài)中必須存在有繼承關(guān)系的子類和父類。重寫(xiě):子類對(duì)父類中的某些方法進(jìn)行重新定義,在調(diào)用這些方法時(shí)候就會(huì)調(diào)用子類的方法。向上轉(zhuǎn)型:在多態(tài)中需要將子類的引用賦值給父類,只有這樣該引用才能具備技能調(diào)用父類的方法和子類的方法。只有滿足上述三個(gè)條件,才能在同一個(gè)繼承結(jié)構(gòu)中國(guó)使用統(tǒng)一的邏輯實(shí)現(xiàn)代碼處理不同的對(duì)象,從而達(dá)到執(zhí)行不同的行為,對(duì)于Java而言,它的多態(tài)實(shí)現(xiàn)截至遵循一個(gè)原則,當(dāng)超類的對(duì)象引用變量引用子類的對(duì)象時(shí)候,被引用的對(duì)象的類型而不是引用變量的類型決定了調(diào)用誰(shuí)的成員方法,但是這個(gè)被調(diào)用的方法必須是在超類中定義過(guò)的,也就是說(shuō)被子類覆蓋了的方法。

            6、面向?qū)ο蟮奈宕蠡驹瓌t?

            單一職責(zé):類的功能單一,不能包羅萬(wàn)象。開(kāi)發(fā)封閉原則:一個(gè)模塊對(duì)于擴(kuò)展是開(kāi)放的,對(duì)于修改是關(guān)閉的,想要增加功能熱烈歡迎,想要修改功能不行。里氏替換原則:子類可以替換父類出現(xiàn)在父類能夠出現(xiàn)的地方。依賴倒置原則:高層模塊不應(yīng)該依賴于底層模塊,他們都應(yīng)該依賴于抽象,抽象不應(yīng)該依賴細(xì)節(jié)實(shí)現(xiàn)。細(xì)節(jié)實(shí)現(xiàn)依賴于抽象。接口分離原則:設(shè)計(jì)時(shí)采用多個(gè)于特定客戶有關(guān)的接口。

            java語(yǔ)法基礎(chǔ)知識(shí)

            1,關(guān)鍵字:其實(shí)就是某種語(yǔ)言賦予了特殊含義的單詞。

            保留字:其實(shí)就是還沒(méi)有賦予特殊含義,但是準(zhǔn)備日后要使用過(guò)的單詞。

            2,標(biāo)示符:其實(shí)就是在程序中自定義的名詞。比如類名,變量名,函數(shù)名。包含 0-9、a-z、$、_ ;

            注意:

            1),數(shù)字不可以開(kāi)頭。

            2),不可以使用關(guān)鍵字。

            3,常量:是在程序中的不會(huì)變化的數(shù)據(jù)。

            4,變量:其實(shí)就是內(nèi)存中的一個(gè)存儲(chǔ)空間,用于存儲(chǔ)常量數(shù)據(jù)。

            作用:方便于運(yùn)算。因?yàn)橛行?shù)據(jù)不確定。所以確定該數(shù)據(jù)的名詞和存儲(chǔ)空間。

            特點(diǎn):變量空間可以重復(fù)使用。

            什么時(shí)候定義變量?只要是數(shù)據(jù)不確定的時(shí)候,就定義變量。

            變量空間的開(kāi)辟需要什么要素呢?

            1,這個(gè)空間要存儲(chǔ)什么數(shù)據(jù)?數(shù)據(jù)類型。

            2,這個(gè)空間叫什么名字啊?變量名稱。

            3,這個(gè)空間的第一次的數(shù)據(jù)是什么? 變量的初始化值。

            變量的作用域和生存期:

            變量的作用域:

            作用域從變量定義的位置開(kāi)始,到該變量所在的那對(duì)大括號(hào)結(jié)束;

            生命周期:

            變量從定義的位置開(kāi)始就在內(nèi)存中活了;

            變量到達(dá)它所在的作用域的時(shí)候就在內(nèi)存中消失了;

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

            1):基本數(shù)據(jù)類型:byte、short、int、long、float、double、char、boolean

            2):引用數(shù)據(jù)類型: 數(shù)組、類、接口。

            級(jí)別從低到高為:byte,char,short(這三個(gè)平級(jí))-->int-->float-->long-->double

            自動(dòng)類型轉(zhuǎn)換:從低級(jí)別到高級(jí)別,系統(tǒng)自動(dòng)轉(zhuǎn)的;

            強(qiáng)制類型轉(zhuǎn)換:什么情況下使用?把一個(gè)高級(jí)別的數(shù)賦給一個(gè)別該數(shù)的級(jí)別低的變量;

            運(yùn)算符號(hào):

            1)、算術(shù)運(yùn)算符。

            + - * / % %:任何整數(shù)模2不是0就是1,所以只要改變被模數(shù)就可以實(shí)現(xiàn)開(kāi)關(guān)運(yùn)算。

            +:連接符。

            ++,--

            2)、賦值運(yùn)算符。

            = += -= *= /= %=

            3)、比較運(yùn)算符。

            特點(diǎn):該運(yùn)算符的特點(diǎn)是:運(yùn)算完的`結(jié)果,要么是true,要么是false。

            4)、邏輯運(yùn)算符。

            & ^ ! &&

            邏輯運(yùn)算符除了 ! 外都是用于連接兩個(gè)boolean類型表達(dá)式。

            &: 只有兩邊都為true結(jié)果是true。否則就是false。

            :只要兩邊都為false結(jié)果是false,否則就是true

            ^:異或:和或有點(diǎn)不一樣。

            兩邊結(jié)果一樣,就為false。

            兩邊結(jié)果不一樣,就為true.

            & 和 &&區(qū)別: & :無(wú)論左邊結(jié)果是什么,右邊都參與運(yùn)算。

            &&:短路與,如果左邊為false,那么右邊不參數(shù)與運(yùn)算。

            和 區(qū)別::兩邊都運(yùn)算。

            :短路或,如果左邊為true,那么右邊不參與運(yùn)算。

            5)、位運(yùn)算符:用于操作二進(jìn)制位的運(yùn)算符。

            & ^

            << >> >>>(無(wú)符號(hào)右移)

            練習(xí):對(duì)兩個(gè)變量的數(shù)據(jù)進(jìn)行互換。不需要第三方變量。

            int a = 3,b = 5;-->b = 3,a = 5;

            a = a + b; a = 8;

            b = a - b; b = 3;

            a = a - b; a = 5;

            a = a ^ b;//

            b = a ^ b;//b = a ^ b ^ b = a

            a = a ^ b;//a = a ^ b ^ a = b;

            練習(xí):高效的算出 2*8 = 2<<3;

            5,語(yǔ)句。

            If switch do while while for

            這些語(yǔ)句什么時(shí)候用?

            1)、當(dāng)判斷固定個(gè)數(shù)的值的時(shí)候,可以使用if,也可以使用switch。

            但是建議使用switch,效率相對(duì)較高。

            switch(變量){

            case 值:要執(zhí)行的語(yǔ)句;break;

            default:要執(zhí)行的語(yǔ)句;

            }

            工作原理:用小括號(hào)中的變量的值依次和case后面的值進(jìn)行對(duì)比,和哪個(gè)case后面的值相同了

            就執(zhí)行哪個(gè)case后面的語(yǔ)句,如果沒(méi)有相同的則執(zhí)行default后面的語(yǔ)句;

            細(xì)節(jié):1):break是可以省略的,如果省略了就一直執(zhí)行到遇到break為止;

            2):switch 后面的小括號(hào)中的變量應(yīng)該是byte,char,short,int四種類型中的一種;

            3):default可以寫(xiě)在switch結(jié)構(gòu)中的任意位置;如果將default語(yǔ)句放在了第一行,則不管expression與case中的value是否匹配,程序會(huì)從default開(kāi)始執(zhí)行直到第一個(gè)break出現(xiàn)。

            2)、當(dāng)判斷數(shù)據(jù)范圍,獲取判斷運(yùn)算結(jié)果boolean類型時(shí),需要使用if。

            3)、當(dāng)某些語(yǔ)句需要執(zhí)行很多次時(shí),就用循環(huán)結(jié)構(gòu)。

            while和for可以進(jìn)行互換。

            區(qū)別在于:如果需要定義變量控制循環(huán)次數(shù)。建議使用for。因?yàn)閒or循環(huán)完畢,變量在內(nèi)存中釋放。

            break:作用于switch ,和循環(huán)語(yǔ)句,用于跳出,或者稱為結(jié)束。

            break語(yǔ)句單獨(dú)存在時(shí),下面不要定義其他語(yǔ)句,因?yàn)閳?zhí)行不到,編譯會(huì)失敗。當(dāng)循環(huán)嵌套時(shí),break只跳出當(dāng)前所在循環(huán)。要跳出嵌套中的外部循環(huán),只要給循環(huán)起名字即可,這個(gè)名字稱之為標(biāo)號(hào)。

            continue:只作用于循環(huán)結(jié)構(gòu),繼續(xù)循環(huán)用的。

            作用:結(jié)束本次循環(huán),繼續(xù)下次循環(huán)。該語(yǔ)句單獨(dú)存在時(shí),下面不可以定義語(yǔ)句,執(zhí)行不到。

            三 函數(shù)

            6,函 數(shù):為了提高代碼的復(fù)用性,可以將其定義成一個(gè)單獨(dú)的功能,該功能的體現(xiàn)就是java中的函數(shù)。函數(shù)就是體現(xiàn)之一。

            java中的函數(shù)的定義格式:

            修飾符 返回值類型 函數(shù)名(參數(shù)類型 形式參數(shù)1,參數(shù)類型 形式參數(shù)1,…){

            執(zhí)行語(yǔ)句;

            return 返回值;

            }

            當(dāng)函數(shù)沒(méi)有具體的返回值時(shí),返回的返回值類型用void關(guān)鍵字表示。

            如果函數(shù)的返回值類型是void時(shí),return語(yǔ)句可以省略不寫(xiě)的,系統(tǒng)會(huì)幫你自動(dòng)加上。

            return的作用:結(jié)束函數(shù)。結(jié)束功能。

            如何定義一個(gè)函數(shù)?

            函數(shù)其實(shí)就是一個(gè)功能,定義函數(shù)就是實(shí)現(xiàn)功能,通過(guò)兩個(gè)明確來(lái)完成:

            1)、明確該功能的運(yùn)算完的結(jié)果,其實(shí)是在明確這個(gè)函數(shù)的返回值類型。

            2)、在實(shí)現(xiàn)該功能的過(guò)程中是否有未知內(nèi)容參與了運(yùn)算,其實(shí)就是在明確這個(gè)函數(shù)的參數(shù)列表(參數(shù)類型&參數(shù)個(gè)數(shù))。

            函數(shù)的作用:

            1)、用于定義功能。

            2)、用于封裝代碼提高代碼的復(fù)用性。

            注意:函數(shù)中只能調(diào)用函數(shù),不能定義函數(shù)。

            主函數(shù):

            1)、保證該類的獨(dú)立運(yùn)行。

            2)、因?yàn)樗浅绦虻娜肟凇?/p>

            3)、因?yàn)樗诒籮vm調(diào)用。

            函數(shù)定義名稱是為什么呢?

            答:1)、為了對(duì)該功能進(jìn)行標(biāo)示,方便于調(diào)用。

            2)、為了通過(guò)名稱就可以明確函數(shù)的功能,為了增加代碼的閱讀性。

            重載的定義是:在一個(gè)類中,如果出現(xiàn)了兩個(gè)或者兩個(gè)以上的同名函數(shù),只要它們的參數(shù)的個(gè)數(shù),或者參數(shù)的類型不同,即可稱之為該函數(shù)重載了。

            如何區(qū)分重載:當(dāng)函數(shù)同名時(shí),只看參數(shù)列表。和返回值類型沒(méi)關(guān)系。

            7,數(shù) 組:用于存儲(chǔ)同一類型數(shù)據(jù)的一個(gè)容器。好處:可以對(duì)該容器中的數(shù)據(jù)進(jìn)行編號(hào),從0開(kāi)始。數(shù)組用于封裝數(shù)據(jù),就是一個(gè)具體的實(shí)體。

            如何在java中表現(xiàn)一個(gè)數(shù)組呢?兩種表現(xiàn)形式。

            1)、元素類型[] 變量名 = new 元素類型[元素的個(gè)數(shù)];

            2)、元素類型[] 變量名 = {元素1,元素2...};

            元素類型[] 變量名 = new 元素類型[]{元素1,元素2...};

            ---------------------------------------------------------

            //二分查找法。必須有前提:數(shù)組中的元素要有序。

            public static int halfSeach_2(int[] arr,int key){

            int min,max,mid;

            min = 0;

            max = arr.length-1;

            mid = (max+min)>>1; //(max+min)/2;

            while(arr[mid]!=key){

            if(key>arr[mid]){

            min = mid + 1;

            }

            else if(key

            max = mid - 1;

            if(max

            return -1;

            mid = (max+min)>>1;

            }

            return mid;

            }

            ---------------------------------------------------------

            java分了5片內(nèi)存。

            1:寄存器。2:本地方法區(qū)。3:方法區(qū)。4:棧。5:堆。

            棧:存儲(chǔ)的都是局部變量 ( 函數(shù)中定義的變量,函數(shù)上的參數(shù),語(yǔ)句中的變量 );

            只要數(shù)據(jù)運(yùn)算完成所在的區(qū)域結(jié)束,該數(shù)據(jù)就會(huì)被釋放。

            堆:用于存儲(chǔ)數(shù)組和對(duì)象,也就是實(shí)體。啥是實(shí)體啊?就是用于封裝多個(gè)數(shù)據(jù)的。

            1:每一個(gè)實(shí)體都有內(nèi)存首地址值。

            2:堆內(nèi)存中的變量都有默認(rèn)初始化值。因?yàn)閿?shù)據(jù)類型不同,值也不一樣。

            3:垃圾回收機(jī)制。

              為你推薦