




已閱讀5頁,還剩247頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
黑馬程序員入學(xué)Java知識精華總結(jié)J2SE部分,Java高新技術(shù)部分,7K面試題部分等黑馬入學(xué)要求的知識點總結(jié)!一、黑馬程序員java概述與基礎(chǔ)知識61、何為編程?62、Java語言概述,歷史、特點63、什么是跨平臺性?原理是什么?JVM74、Jre和Jdk的區(qū)別?75、java虛擬機JVM86、 Java程序運行機制87、 學(xué)習(xí)java注意的地方88、Java語法格式89、代碼注釋:單行/,多行/* */,文檔注釋/* */910、Java中的標(biāo)識符911、java中的常量和變量912、Java成員變量和局部變量1014、基本數(shù)據(jù)類型轉(zhuǎn)換之向上轉(zhuǎn)型和向下轉(zhuǎn)換1215、Java的運算符1216、表達(dá)式和三目運算符1317、程序流程控制1318、三大循環(huán)結(jié)構(gòu):1519、嵌套循環(huán)與流程控制18二、黑馬程序員方法與數(shù)組191、什么是方法(Method)?192、 Java中方法的格式:203、方法里的屬性204、方法特點205、什么是方法的重載(Overload)?216、 可變參數(shù)227、數(shù)組簡介:238、一維數(shù)組的聲明與初始化:239、數(shù)組的使用:2410、分配內(nèi)存空間2611、二維數(shù)組:2712、操作數(shù)組的工具類-Arrays2713、Java5新特性對數(shù)組的支持:28三、黑馬程序員面向?qū)ο螅?)291、什么叫面向?qū)ο螅?92、類293、構(gòu)造方法304、static關(guān)鍵字315、匿名對象326、this關(guān)鍵字327、面向?qū)ο笾庋b338、訪問修飾符349、類的設(shè)計分析3410、面向?qū)ο笾^承3411、子類訪問父類和方法覆寫3512、super關(guān)鍵字和調(diào)用父類構(gòu)造方法3613、面向?qū)ο笾鄳B(tài)3714、引用變量類型轉(zhuǎn)換39四、黑馬程序員面向?qū)ο螅?)391、基本數(shù)據(jù)類型的包裝類402、基本數(shù)據(jù)類型和包裝類相互轉(zhuǎn)換403、基本類型和String之間的轉(zhuǎn)換414、Object類415、代碼塊426、構(gòu)造方法的私有化447、 Singleton模式(單例模式) 餓漢式和懶漢式448、final 關(guān)鍵字469、抽象類4710、抽象類的體現(xiàn)-模板模式4911、接口(interface)5112、接口的使用5213、面向接口編程之制定標(biāo)準(zhǔn)和簡單工廠模式5214、面向接口編程之適配器模式5415、 接口和抽象類的比較5516、匿名內(nèi)部類5617、枚舉類57五、黑馬程序員異常處理和常用類591、異常592、異常處理格式603、多異常處理614、異常的分類615、聲明異常(throws)626、throw638、throw和catch同時使用649、常用類6510、String方法6711、StringBuffer 與 StringBuilder6912、Math和Random和UUID7213、Date和Calendar7314、System77六、黑馬程序員線程技術(shù)771、進(jìn)程和線程782、創(chuàng)建線程方式783、兩種進(jìn)程創(chuàng)建方式比較804、線程的生命周期815、控制線程826、多線程安全問題847、多線程安全問題的解決方法858、線程通信90七、黑馬程序員集合框架(1)931、集合類 & 容器932、Collection接口943、Iterator接口954、集合遍歷輸出方式956、TreeSet997、List接口1038、List接口中常用類1049、Map接口108八、黑馬程序員集合框架(2)1111、Collections類1112、Arrays1133、泛型(Generic)1134、泛型的使用1145、聲明多個泛型類型和通配符1186、泛型的上限與下限1197、泛型接口和方法1218、泛型的嵌套(map例子)122九、黑馬程序員IO操作(1)1231、IO的概述和File方法1232、遞歸(Recursion)1253、文件過濾器 java.io.FilenameFilter1264、流1275、操作流的步驟(重點)1286、字節(jié)流和字符流1297、文件拷貝1318、字節(jié)字符轉(zhuǎn)換流1349、自動關(guān)閉資源的try語句134十、IO文件操作(2)1361、內(nèi)存操作流1362、打印流1373、格式化輸出1394、標(biāo)準(zhǔn)流1405、Scanner(簡單文本掃描器)1416、緩沖流1447、合并流(SequenceInputStream)145十一、黑馬程序員網(wǎng)絡(luò)編程1461、什么是網(wǎng)絡(luò)編程?1462、網(wǎng)絡(luò)通訊要素1473、TCP和UDP的聯(lián)系和用途1474、InetAddress與Socket1485、UDP傳輸1496、TCP傳輸1538、小例子159十二、黑馬程序員反射機制1621、反射的概念1622、獲得Class對象1633、九個預(yù)定義Class對象1644、利用Class獲取類的屬性信息1655、Class中得到構(gòu)造方法Constructor、方法Method、字段Field1676、利用反射創(chuàng)建對象1727、使用反射調(diào)用方法1758、使用反射調(diào)用可變參數(shù)方法1769、使用反射操作字段17810、反射和泛型-反射來獲取泛型信息179十三、黑馬程序員反射機制1811、GUI(圖形用戶界面)1812、布局管理器1823、事件監(jiān)聽機制組成1834、Dialog1905、菜單1931、Eclipse的使用技巧1972、靜態(tài)導(dǎo)入(1.5特性,好處是不用寫類名)1993、可變參數(shù)2005、基本數(shù)據(jù)類型的自動拆箱與裝箱2016、枚舉2017、反射實現(xiàn)框架功能2031、內(nèi)省了解JavaBean2052、內(nèi)省綜合案例和Beanutils工具包2053、注解(Annotation)2084、泛型2111、類加載器2152、類加載器的委托機制2163、一個類加載器的高級問題分析2204、 代理的概念與作用2205、動態(tài)代理技術(shù)2226、分析JVM動態(tài)生成的類2228、 實現(xiàn)類似spring的可配置的AOP框架229黑馬程序員面試題之交通燈管理系統(tǒng)2331、面向?qū)ο蟮姆治雠c設(shè)計2342、Road類的編寫2343、Lamp類的編寫2364、LampController類的編寫2395、MainClass類的編寫239黑馬程序員面試題之銀行業(yè)務(wù)系統(tǒng)2411、需求2412、需求分析2423、NumberManager類2424、NumberMachine類2435、CustomerType枚舉類2446、ServiceWindow類2447、MainClass類與Constants類248一、黑馬程序員java概述與基礎(chǔ)知識1、何為編程?編程就是讓計算機為解決某個問題而使用某種程序設(shè)計語言編寫程序代碼,并最終得到結(jié)果的過程。為了使計算機能夠理解人的意圖,人類就必須要將需解決的問題的思路、方法、和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計算機之間交流的過程就是編程。2、Java語言概述,歷史、特點是SUN(Stanford University Network,斯坦福大學(xué)網(wǎng)絡(luò)公司)1995年推出的一門高級語言。是一種面向Internet的編程語言。隨著Java技術(shù)在web方面的不斷成熟,已經(jīng)成為Web應(yīng)用程序的首選開發(fā)語言。是簡單易學(xué),完全面向?qū)ο螅踩煽?,與平臺無關(guān)的編程語言。java5.0之后的三大技術(shù)框架J2EE(Java 2 Platform Enterprise Edition)企業(yè)版在jdk5.0版本后稱為JAVAEE,是為開發(fā)企業(yè)環(huán)境下的應(yīng)用程序提供的一套解決方案。該技術(shù)體系中包含的技術(shù)如Servlet Jsp等,主要針對于Web應(yīng)用程序開發(fā)。是傳智播客就業(yè)班和黑馬訓(xùn)練營的主要學(xué)習(xí)內(nèi)容之一.。J2SE(Java 2 Platform Standard Edition)標(biāo)準(zhǔn)版在jdk5.0版本后稱為JAVASE,這是在java基礎(chǔ)階段主要學(xué)習(xí)的內(nèi)容,也是java的基礎(chǔ),以后不管從事Android開發(fā)或者是物聯(lián)網(wǎng)+云計算的開發(fā),等是建立在JSE基礎(chǔ)上的,因此該技術(shù)是java的最核心技術(shù),是傳智播客基礎(chǔ)班的主要上課內(nèi)容.。J2ME(Java 2 Platform Micro Edition)小型版在jdk5.0版本以后稱為JAVAME,該技術(shù)多應(yīng)用于一些電子產(chǎn)品的嵌入式開發(fā),以前在手機開發(fā)上應(yīng)用的也比較多,但是隨著智能手機的發(fā)展,現(xiàn)在手機應(yīng)用程序(比如Android程序)的開發(fā)已經(jīng)不再使用該技術(shù)。3、什么是跨平臺性?原理是什么?JVM 所謂跨平臺性,是指java語言編寫的程序,一次編譯后,可以在多個系統(tǒng)平臺上運行。 實現(xiàn)原理:Java程序是通過java虛擬機在系統(tǒng)平臺上運行的,只要該系統(tǒng)可以安裝相應(yīng)的java虛擬機,該系統(tǒng)就可以運行java程序。(注意不是能在所有的平臺上運行,關(guān)鍵是該平臺是否能安裝相應(yīng)的虛擬機)。我的總結(jié):Java程序之所以能夠?qū)崿F(xiàn)跨平臺運行,是因為它根本就不直接運行在任何底層平臺上,而是需要在哪里運行,就在哪里(如Windows平臺)事先準(zhǔn)備好自己的Java平臺,而這只是僅僅是安裝和配置一個軟件而已!4、Jre和Jdk的區(qū)別? JRE:(Java Runtime Environment),java運行環(huán)境。包括Java虛擬機(JVM Java Virtual Machine)和Java程序所需的核心類庫等,如果想要運行一個開發(fā)好的Java程序,計算機中只需要安裝JRE 即可。JDK:(Java Development Kit Java)開發(fā)工具包。JDK是提供給Java開發(fā)人員使用的,其中包含了java的開發(fā)工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了。其中的開發(fā)工具:編譯工具(javac.exe) 打包工具(jar.exe)等 簡單而言:使用JDK開發(fā)完成的java程序,交給JRE去運行。我的總結(jié):必須熟練的記憶,核心類庫,開發(fā)工具!5、java虛擬機JVMJava Virtual Machine ,簡稱JVM;它是運行所有Java程序的抽象計算機,是Java語言的運行環(huán)境,它是Java 最具吸引力的特性之一,JVM讀取并處理編譯過的與平臺無關(guān)的字節(jié)碼(class)文件。Java編譯器針對JVM產(chǎn)生class文件,因此是獨立于平臺的。Java解釋器負(fù)責(zé)將JVM的代碼在特定的平臺上運行。Java虛擬機是不跨平臺的.6、 Java程序運行機制編譯: javac 文件名.文件后綴名運行: java 類名我的總結(jié):Java程序的組成:Java源文件,字節(jié)碼文件。7、 學(xué)習(xí)java注意的地方Java語言拼寫上嚴(yán)格區(qū)分大小寫;一個Java源文件里可以定義多個Java類,但其中最多只能有一個類被定義成public類;若源文件中包括了public類,源文件必須和該public類同名;一個源文件中包含N個Java類時,編譯后會生成N份字節(jié)碼文件,即每個類都會生成一份單獨的class文件,且字節(jié)碼文件名和其對應(yīng)的類名相同;我的總結(jié):一個Java源文件只定義一個類,不同的類使用不同的源文件定義;將每個源文件中單獨定義的類都定義成public的;保持Java源文件的主文件名與源文件中的類名一致;8、Java語法格式任何一種語言都有自己的語法規(guī)則,Java也一樣,既然是規(guī)則,那么知道其如何使用就可以了。代碼都定義在類中,類由class來定義,區(qū)分 public class 和 class;代碼嚴(yán)格區(qū)分大小寫,如main 和 Main 是不一樣的;Java中的標(biāo)識符與關(guān)鍵字;注釋;main方法的作用:程序的入口保證程序的獨立運行被JVM調(diào)用9、代碼注釋:單行/,多行/* */,文檔注釋/* */1.單行注釋 /:/后到本行結(jié)束的所有字符會被編譯器忽略;2.多行注釋 /* */:/* */之間的所有字符會被編譯器忽略3.文檔注釋 /* */: 在/* */之間的所有字符會被編譯器忽略,java特有的(用于生成文檔);我的總結(jié):多行和文檔注釋都不能嵌套使用。10、Java中的標(biāo)識符可簡單理解為在Java程序中為了增強閱讀性自定義的名稱。比如:類名,方法名,變量名等。命名規(guī)則:(1) 由字母、數(shù)字、下劃線、$組成,不能以數(shù)字開頭注意:此處的字母還可以是中文,日文等;(2) 大小寫敏感(3) 不得使用java中的關(guān)鍵字和保留字(4) 別用Java API里面的類名作為自己的類名。11、java中的常量和變量變量的概念:占據(jù)著內(nèi)存中的某一個存儲區(qū)域;該區(qū)域有自己的名稱(變量名)和類型(數(shù)據(jù)類型);該區(qū)域的數(shù)據(jù)可以在同一類型范圍內(nèi)不斷變化;為什么要定義變量:用來不斷的存放同一類型的常量,并可以重復(fù)使用;使用變量注意:變量的作用范圍, 初始化值定義變量的格式:t數(shù)據(jù)類型 變量名 = 初始化值;注:格式是固定的,記住格式,以不變應(yīng)萬變。作用范圍:定義開始到定義它的代碼塊結(jié)束;同一范圍內(nèi),不允許多個個局部變量命名沖突12、Java成員變量和局部變量局部變量:不是聲明在類體括號里面的變量;局部變量使用前必須初始化值;局部變量沒有默認(rèn)初始化值;局部變量的作用域是從定義開始到定義它的代碼塊結(jié)束;成員變量:在方法體外,類體內(nèi)聲明的變量,又稱字段(Field)或全局變量;(其實Java中沒有全局變量,由于Java是面向?qū)ο笳Z言,所有變量都是類成員)成員變量的作用域是整個類中;我的總結(jié):注意成員變量和局部變量的區(qū)別package reviewDemo;public class Demo2 public static void main(String args) int i; System.out.println(i); 備注:局部變量調(diào)用前沒有初始化,所以編譯的時候就會報錯!package reviewDemo;public class Demo2 static int i; public static void main(String args) System.out.println(i); 備注:此時i為全局變量,未初始化會被賦予默認(rèn)的初始化值!程序正確!我的總結(jié):局部變量是定義在方法中的變量,出了該方法就不能訪問該變量了.成員變量是在類中定義,并且在類的成員方法中都能訪問的變量.13、基本數(shù)據(jù)類型在數(shù)據(jù)類型中,最常用也是最基礎(chǔ)的數(shù)據(jù)類型,被稱作基本數(shù)據(jù)類型??梢允褂眠@些類型的值來代表一些簡單的狀態(tài)。Java 語言的基本數(shù)據(jù)類型總共有以下8 種,下面是按照用途劃分出的4 個類別: 定點類型:整數(shù)型是一類代表整數(shù)值的類型。當(dāng)需要代表一個整數(shù)的值時,可以根據(jù)需要從4 種類型中挑選合適的,如果沒有特殊要求的話,一般選擇int 類型。4 種整數(shù)型區(qū)別主要在每個數(shù)據(jù)在內(nèi)存中占用的空間大小和代表的數(shù)值的范圍。浮點類型:小數(shù)型是一類代表小數(shù)值的類型。當(dāng)需要代表一個小數(shù)的值時,可以根據(jù)需要從以下2 種類型中挑選合適的。如果沒有特殊要求,一般選擇double類型。由于小數(shù)的存儲方式和整數(shù)不同,所以小數(shù)都有一定的精度,所以在計算機中運算時不夠精確。根據(jù)精度和存儲區(qū)間的不同,設(shè)計了兩種小數(shù)類型。字符型:字符型代表特定的某個字符,按照前面介紹的知識,計算機中都是以字符集的形式來保存字符的,所以字符型的值實際只是字符集中的編號,而不是實際代表的字符,由計算機完成從編號轉(zhuǎn)換成對應(yīng)字符的工作。Java 語言中為了更加方便國際化,使用Unicode 字符集作為默認(rèn)的字符集,該字符集包含各種語言中常見的字符。在程序代碼中,字符使用一對單引號加上需要表達(dá)的字符來標(biāo)識,例如A、a等,當(dāng)然也可以直接使用字符編碼,也就是一個非負(fù)整數(shù)進(jìn)行表示。布爾型:布爾型代表邏輯中的成立和不成立。Java 語言中使用關(guān)鍵字true 代表成立,false 代表不成立。布爾型是存儲邏輯值的類型,其實很多程序中都有邏輯值的概念,Java 把邏輯的值用布爾型來進(jìn)行表達(dá)。14、基本數(shù)據(jù)類型轉(zhuǎn)換之向上轉(zhuǎn)型和向下轉(zhuǎn)換向上轉(zhuǎn)換:整型,字符型,浮點型的數(shù)據(jù)在混合運算中相互轉(zhuǎn)換,轉(zhuǎn)換時遵循以下原則:容量小的類型可自動轉(zhuǎn)換為容量大的數(shù)據(jù)類型;byte,short,char int long float doublebyte,short,char之間不會相互轉(zhuǎn)換,他們在計算時首先會轉(zhuǎn)換為int類型。boolean 類型是不可以轉(zhuǎn)換為其他基本數(shù)據(jù)類型。Eg:int i = 123;long l = i;/自動轉(zhuǎn)換,不需強轉(zhuǎn)float f = 3.14F;double d = f;向下轉(zhuǎn)換:整型,字符型,浮點型的數(shù)據(jù)在混合運算中相互轉(zhuǎn)換,轉(zhuǎn)換時遵循以下原則:容量小的類型可自動轉(zhuǎn)換為容量大的數(shù)據(jù)類型;byte,short,char int long float doublebyte,short,char之間不會相互轉(zhuǎn)換,他們在計算時首先會轉(zhuǎn)換為int類型。boolean 類型是不可以轉(zhuǎn)換為其他基本數(shù)據(jù)類型。Eg:long l = 123L;int i = (int) l;/必須強轉(zhuǎn)double d = 3.14;float f = (float) d;我的總結(jié):類型轉(zhuǎn)化小轉(zhuǎn)大,自動!自動類型轉(zhuǎn)換(也叫隱式類型轉(zhuǎn)換) 大轉(zhuǎn)小,強轉(zhuǎn)!強制類型轉(zhuǎn)換(也叫顯式類型轉(zhuǎn)換) 15、Java的運算符運算符是一種特殊符號,用以表示數(shù)據(jù)的運算、賦值和比較等共分以下幾種: 算術(shù)運算符(+ 、 、* 、/ 、%)賦值運算符(= 、+=、-=、*=、/=,、%=)關(guān)系運算符(、=、)我的總結(jié):邏輯運算符用于連接布爾型表達(dá)式,在Java中不可以寫成3x3 & x6 。“&”和“&”的區(qū)別:單與時,左邊無論真假,右邊都進(jìn)行運算;雙與時,如果左邊為真,右邊參與運算,如果左邊為假,那么右邊不參與運算?!皘”和“|”的區(qū)別同理,雙或時,左邊為真,右邊不參與運算?!?”與“|”不同之處是:當(dāng)左右都為true時,結(jié)果為false。16、表達(dá)式和三目運算符是由數(shù)字、運算符、數(shù)字分組符號(括號)等以能求得數(shù)值的有意義排列的序列;a + b3.14 + a(x + y) * z + 100boolean b= i 5)System.out.println(變量i大于5);else if (i 4)System.out.println(變量i小于4);elseSystem.out.println(其他);switch控制語句格式:switch(表達(dá)式)case 表達(dá)式可能的結(jié)果值1:執(zhí)行語句;break;case 表達(dá)式可能的結(jié)果值2:執(zhí)行語句;break;.default:執(zhí)行語句;break;/最后這個一般不寫備注:case之間與default沒有順序。先執(zhí)行第一個case,都沒有匹配的case值執(zhí)行default。結(jié)束switch語句的兩種情況:遇到break,switch語句執(zhí)行結(jié)束。如果匹配的case或者default沒有對應(yīng)的break,那么程序會從第一次匹配的case語句開始繼續(xù)向下執(zhí)行,運行可以執(zhí)行的語句,直到遇到break或者switch結(jié)束為止。class switch2 public static void main(String args) int a = 7,b = 5;switch(a-b)case 3:/表達(dá)式可能的值;System.out.println(33!);break;case 4:System.out.println(44!);break;default:/都沒有執(zhí)行則 執(zhí)行該語句!System.out.println(其它的);注意:switch語句只能使用byte、char、short、int四種基本類型以及它們的包裝類和枚舉18、三大循環(huán)結(jié)構(gòu):用于處理需要重復(fù)執(zhí)行的操作;根據(jù)判斷條件的成立與否,決定程序段落的執(zhí)行次數(shù),而這個程序段落我們稱為循環(huán)體;while:事先不需要知道循環(huán)執(zhí)行多少次;do while:同上,只是至少要執(zhí)行一次(先做,后判斷);for:需要知道循環(huán)次數(shù);循環(huán)結(jié)構(gòu)(while & do while)while語句格式:while(條件表達(dá)式值為true)執(zhí)行語句;do while語句格式:do執(zhí)行語句;while(條件表達(dá)式值為true);我的總結(jié):do while特點是無論條件是否滿足,循環(huán)體至少被執(zhí)行一次。循環(huán)里的條件表達(dá)式不能直接寫false或直接寫結(jié)果是false的表達(dá)式,不過可以使用變量來傳遞false值;循環(huán)結(jié)構(gòu)(for)格式:for(初始化表達(dá)式(1);循環(huán)條件表達(dá)式(2);循環(huán)后的操作表達(dá)式(3))執(zhí)行語句;(4)執(zhí)行順序:(1) (2) (4) (3) (2) (4) (3)備注:1, for里面的3個表達(dá)式運行的順序,初始化表達(dá)式只讀一次,判斷循環(huán)條件,為真就執(zhí)行循環(huán)體,然后再執(zhí)行循環(huán)后的操作表達(dá)式,接著繼續(xù)判斷循環(huán)條件,重復(fù)找個過程,直到條件不滿足為止。2, while與for可以互換,區(qū)別在于for為了循環(huán)而定義的變量在for循環(huán)結(jié)束就在內(nèi)存中釋放。而while循環(huán)使用的變量在循環(huán)結(jié)束后還可以繼續(xù)使用。3, 最簡單無限循環(huán)格式:while(true) , for(;),無限循環(huán)存在的原因是并不知道循環(huán)多少次,而是根據(jù)某些條件,來控制循環(huán)。Eg:用三種循環(huán)控制求出100以內(nèi)前5個3的倍數(shù)的數(shù)字;class whilepublic static void main(String args) int i = 1,k = 0;while(i=100)if(i%3=0)if(k5)System.out.println(i);k+;i+;class dowhilepublic static void main(String args) int i = 1,k = 0;doif(i%3=0)if(k5)System.out.println(i);k+;i+;while(i=100);class forpublic static void main(String args) int i = 1,k = 0;for(;i100;i+)if(i%3=0&k5)System.out.println(i);k+;19、嵌套循環(huán)與流程控制嵌套循環(huán):循環(huán)里套循環(huán)假設(shè)外循環(huán)的循環(huán)次數(shù)是m次,內(nèi)循環(huán)的循環(huán)次數(shù)是n次,那么內(nèi)層循環(huán)的循環(huán)次數(shù)需要 m * n次。Eg:利用for循環(huán)語句的嵌套打印出乘法口訣表class break1 public static void main(String args) for(int i=1;i=10;i+)/定義i與j的值必須在for循環(huán)里面,否則每次跳出循環(huán)重新執(zhí)行就無法取值for(int j=1;j=10;j+)if(j=i)System.out.print(j+*+i+=+i*j+ );/小注意:print()括號里面必須傳遞參數(shù),println()無限制!System.out.println();流程控制break語句、 continue語句;break:終止該層循環(huán);continue:跳過該層循環(huán)注:若這兩個語句離開應(yīng)用范圍,存在是沒有意義的。:這個兩個語句后面都不能有語句,因為執(zhí)行不到。:continue語句是跳過本次循環(huán),繼續(xù)下次循環(huán)。:標(biāo)簽的出現(xiàn),可以讓這兩個語句作用于指定的循環(huán)。Eg:package reviewDemo;public class Demo2 public static void main(String args) int i = 1;for (; i 10; i+) System.out.println(i);if(i = 8)break;/流程控制,不會完全執(zhí)行!二、黑馬程序員方法與數(shù)組第二篇:1、什么是方法(Method)?方法是一組為了實現(xiàn)特定功能的代碼塊的集合。方法在語法上的功能主要有以下兩個:結(jié)構(gòu)化代碼將代碼按照功能進(jìn)行組織,使代碼的結(jié)構(gòu)比較清晰,容易閱讀和修改,也就是程序的可維護性強。:減少代碼重復(fù)一個固定的功能,可能會在程序中多次使用,在使用時只需要調(diào)用寫好的方法,而不用重復(fù)書寫對應(yīng)的功能代碼。方法在書寫時需要注意以下兩點:邏輯嚴(yán)謹(jǐn)方法實現(xiàn)的一個完整的功能,所以在書寫時要考慮到各種可能的情況,并對每種情況做出恰當(dāng)?shù)奶幚?。:通用性強(可重?fù)利用)方法實現(xiàn)的是一種功能,在實際實現(xiàn)時,可以根據(jù)需要,使方法具備一定的通用性,除非必要,否則不要寫專用的方法。在Java 語言中,恰當(dāng)?shù)氖褂梅椒?,將使程序更加?yōu)雅,便于閱讀和使用。我的總結(jié):方法:一段可重復(fù)使用的代碼段;程序中完成獨立功能的一段代碼的集合。2、 Java中方法的格式:修飾符 返回值類型 方法名(參數(shù)類型 形式參數(shù)1,參數(shù)類型 形式參數(shù)2,)執(zhí)行語句;return 返回值;/需要的話參數(shù)列表(參數(shù)的類型 ,參數(shù)的個數(shù),參數(shù)的順序)我的總結(jié):只要上述有一個不一樣,那么這個參數(shù)列表就不一樣!對于方法而言,即使同名也不是同一個方法,也就是下面講的方法簽名。3、方法里的屬性訪問控制符:訪問控制符限定方法的可見范圍,或者說是方法被調(diào)用的范圍。方法的訪問控制符有四種,按可見范圍從大到小依次是:public、protected,無訪問控制符,private。其中無訪問控制符不書寫關(guān)鍵字即可。具體的范圍在后續(xù)有詳細(xì)介紹。形式參數(shù):在方法被調(diào)用時用于接收外界輸入的數(shù)據(jù)。實參:調(diào)用方法時實際傳給方法的數(shù)據(jù)。返回值:方法在執(zhí)行完畢后返還給調(diào)用它的環(huán)境的數(shù)據(jù)。返回值類型:事先約定的返回值的數(shù)據(jù)類型,如無返回值,必須給出返回類型 void。方法簽名:方法名和方法的參數(shù)列表(能區(qū)別方法);/最關(guān)鍵的java語言中調(diào)用方法:對象名.方法名(實參列表)。實參的數(shù)目、數(shù)據(jù)類型和次序必須和所調(diào)用方法聲明的形參列表匹配。return 語句終止方法的運行并指定要返回的數(shù)據(jù)。4、方法特點它可以實現(xiàn)獨立的功能;必須定義在類里面;它只有被調(diào)用才會執(zhí)行;它可以被重復(fù)使用;方法結(jié)束后方法里的對象失去引用;如何定義一個功能,并通過方法體現(xiàn)出來:1 明確該功能運算后的結(jié)果.明確返回值類型;2 明確在實現(xiàn)該功能過程中是否有未知內(nèi)容參與運算,確定參數(shù)列表;Eg:package reviewDemo;/* * player 的值分別是1,2,3或者其他值時,該方法返回“大明”,“二明”,“小明”,“我沒有這個孩子”。 */public class Demo2 public static void main(String args) int player = 5;System.out.println(返回的結(jié)果是:+show(player);public static String show(int p)switch (p) case 1:return 大明;case 2:return 二明;case 3:return 小明;default:return 我沒有這個孩子!;5、什么是方法的重載(Overload)?概念:在同一個類中,允許存在一個以上的同名方法,只要它們的參數(shù)個數(shù)或者參數(shù)類型或參數(shù)順序不同即可。存在的原因:屏蔽了一個對象的同一類方法由于參數(shù)不同所造成的差異。特點:與返回值類型無關(guān),只看參數(shù)列表。以下是方法重載的示例:public void a(int a)public int a()public void a(int a,String s)Eg:class Chongzai public static void main(String args) int ret = name(3,4,5);System.out.println(ret);public static int name(int a, int b)int c = a+b;return c;public static int name(int a, int b, int m)/這就叫做方法的重載,只要參數(shù)列表不一樣。好處:用戶使用時限制很??;int c = a+b+m;return c;我的總結(jié):方法重載,方法名相同,但是參數(shù)列表不一致?。ê头椒ǜ矊懖灰粯?,方法覆寫的方法名和參數(shù)列表都必須一樣),注意方法重載和方法覆寫的不同!6、 可變參數(shù)從java5開始出現(xiàn)了可變參數(shù),這是對java方法及數(shù)組的拓展!方法中可以接受的參數(shù)不再是固定個數(shù)的,而是隨著具體需求傳遞的多少來決定。定義格式: 返回值類型 方法名(參數(shù)類型 . 形式參數(shù))可變參數(shù)的特點:只能出現(xiàn)在參數(shù)列表的最后;. 位于變量類型和變量名之間,前后有無空格都可以;調(diào)用可變參數(shù)的方法時,編譯器為該可變參數(shù)隱含創(chuàng)建一個數(shù)組,在方法體中以數(shù)組的形式訪問可變參數(shù)。Eg:package reviewDemo;import java.util.Arrays;public class Demo6 public static void main(String args) int age = 1,2,3,69,36,636,459;show(age);public static void show(int.a)/此時這里寫的就是可變參數(shù),和數(shù)組的作用一樣!/把數(shù)組給打印出來!System.out.println(Arrays.toString(a);7、數(shù)組簡介:數(shù)組(Array)是Java 語言中內(nèi)置的一種基本數(shù)據(jù)存儲結(jié)構(gòu),通俗的理解,就是一組數(shù)的集合,目的是用來一次存儲多個數(shù)據(jù)。數(shù)組是程序中實現(xiàn)很多算法的基礎(chǔ),可以在一定程度上簡化代碼的書寫。備注:1. 數(shù)組的好處:數(shù)組里的每個元素都有編號,編號從0開始,并且依次遞增,方便操作這些元素;2. 使用Java數(shù)組:必須先聲明數(shù)組,再給該數(shù)組分配內(nèi)存;3. 數(shù)組對應(yīng)在內(nèi)存中一段連續(xù)空間。4. 數(shù)組元素必須是相同數(shù)據(jù)類型,也可以是引用數(shù)據(jù)類型,但是同一個數(shù)組中的元素必須是同一類數(shù)據(jù)類型。8、一維數(shù)組的聲明與初始化:一維數(shù)組:可以理解為一列多行、類型相同的數(shù)據(jù),其中每個數(shù)據(jù)被稱為數(shù)組元素;一維數(shù)組的聲明方式: type varName; 或 type varName;(推薦)Eg:int age; int age;數(shù)組的長度一旦確定,就不能改變,也就數(shù)組是定長的;我的總結(jié):java語言聲明數(shù)組的時候不能指定其長度(元素的個數(shù))Eg:int a5; /非法初始化:Java中的數(shù)組必先初始化才可以使用,所謂初始化就是為數(shù)組的數(shù)組元素分配內(nèi)存,并為每個數(shù)組元素賦值;數(shù)組初始化的兩種方式:靜態(tài)初始化:初始化時由我們自己指定每個數(shù)組元素的初始值,由系統(tǒng)決定需要的數(shù)組長度;格式:數(shù)組名 = new 數(shù)組類型元素1,元素2,元素3.元素n;簡化語法:數(shù)組名 = 元素1,元素2,元素3.元素n;動態(tài)初始化:初始化時由我們指定數(shù)組的長度,由系統(tǒng)為數(shù)組元素分配初始值;格式:數(shù)組名 = new 數(shù)組類型數(shù)組長度;我的總結(jié):不能靜態(tài)和動態(tài)初始化同時使用:也就是說不能同時指定數(shù)組的長度和元素;Eg:package reviewDemo;/* * 聲明數(shù)組及初始化 */public class Demo3 public static void main(String args) int age = new int10;/動態(tài)初始化for (int i = 0; i age.length; i+) agei = i;System.out.print(agei+ );輸出:0 1 2 3 4 5 6 7 8 9 9、數(shù)組的使用:Java語言的數(shù)組索引是從0開始的,也就是說數(shù)組里的第一個元素的索引是0,第二個元素的索引是1,依次可以類推。常見操作:給數(shù)組元素賦值數(shù)組名索引 = 數(shù)組類型的值 ;訪問數(shù)組元素數(shù)組類型 變量 = 數(shù)組名索引;得到數(shù)組的長度int len = 數(shù)組名.length;/length是數(shù)組的屬性遍歷數(shù)組(備注:length 屬性和循環(huán)語句)數(shù)組元素的索引范圍(0,長度1) Eg:判斷數(shù)組是否重復(fù)package reviewDemo;/* * 判斷數(shù)組是否重復(fù) */public class Demo3 public static void main(String args) int age = 1,2,3,4,5,6,5;for (int i = 0; i age.length-1; i+) /雙層循環(huán),定住一個,再考慮下一個!for (int j = i+1; j age.length; j+) if(agei = agej)System.out.println(有重復(fù)的!+i+ +j);break;求最大值:package reviewDemo;public class Demo4 public static void main(String args) int age = new int 12, 26, 3, 60, 55, 6, 48, 4, 98 ;int max = age0;for (int i = 0; i age.length; i+) if (max agei) max = agei;System.out.println(max);經(jīng)典用法:冒泡法排序class Bubblesortpublic static void main(String args)int arr=5,1,6,4,2,8,9;bubble(arr);printarray(arr);public static void bubble(int arr)for (int i=0;iarr.length-1 ;i+ ) for (int y=0;yarry+1) /相鄰兩元素相比int temp = 0;temp = arry;arry = arry+1 ;arry+1 = temp;public static void printarray(int arr)for (int i=0;iarr.length ;i+ ) if(i!=arr.length-1)System.out.print(arri+,);elseSystem.out.println(arri);/選擇排序public class Demo6 public static v
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南新鄉(xiāng)2024-2025學(xué)年下學(xué)期高二化學(xué)試卷(期末考試)
- 湖北建筑管理暫行辦法
- HS公司MES系統(tǒng)優(yōu)化研究
- 公安檔案調(diào)閱管理辦法
- 牧業(yè)用地流轉(zhuǎn)管理辦法
- 農(nóng)村低保對像管理辦法
- 國企退稅資金管理辦法
- 2024-2025學(xué)年廣東省中山市紀(jì)中教育集團九年級上學(xué)期期中道德與法治試卷
- 2025年7月北京市西城區(qū)高二期末語文試題及答案
- 福彩資金使用管理辦法
- 啦啦操訓(xùn)練計劃
- 中醫(yī)內(nèi)科常見病癥及方藥
- 建筑裝飾裝修設(shè)計技術(shù)復(fù)核表
- DB41T2437-2023養(yǎng)老機構(gòu)院內(nèi)感染預(yù)防與控制規(guī)范
- 設(shè)備交接班管理制度
- Tickets-please《請買票》 賞析完整
- 《神奇的數(shù)王國:五年級數(shù)學(xué)有故事》讀書筆記模板
- 浙江省級高新技術(shù)企業(yè)研發(fā)中心申請材料樣例
- 酒泉事業(yè)單位筆試真題
- 公司行為規(guī)范制度模板
- 后疫情時代大學(xué)生求職者洞察報告-艾瑞咨詢
評論
0/150
提交評論