版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1. JDK2. Path環(huán)境變量是操作系統(tǒng)外部命令搜索路徑;Classpath環(huán)境變量是類文件搜索路徑。3. JRE是Java Runtime Environment,即是java運(yùn)行環(huán)境。包括java虛擬機(jī)、java平臺核心類文件、其他支持文件。JVM,Java Virtual Machine。它是由軟件模擬出來的計(jì)算機(jī),軟件只需編譯一次就可以在不同的操作系統(tǒng)上運(yùn)行。源文件.java file檢查錯誤編譯器檢查語法錯誤字節(jié)代碼.class file,可以在各種虛擬機(jī)上運(yùn)行,對用戶啟動程序于不同的操作系統(tǒng)有不同的虛擬機(jī)IosJVM(3)LinuxJVM(2)WindowsJVM(1)執(zhí)行同樣
2、的class文件,結(jié)果相同軟件.class 文件JVM由虛擬機(jī)翻譯成適合當(dāng)前操作系統(tǒng)的代碼操作系統(tǒng)由操作系統(tǒng)交給硬件再去執(zhí)行4. 字符集的作用,char類型的變量可以存一個漢字(在java中,或者是uincode編碼中)。5. 字面量整數(shù)字面量為整型(int),小數(shù)字面量為雙精度浮點(diǎn)型(double)。數(shù)值型類型表數(shù)范圍關(guān)系:byte < short < int < long < float < long。6. 面向?qū)ο螅ㄏ哂嗍且环N編程方法,是一種思維模式,不是一種編程語言。7. 棧內(nèi)存和堆內(nèi)存生成對象:類名 對象名 = new 類名();對象的本體(真正的對
3、象)在堆內(nèi)存中,對象名(引用)指向堆內(nèi)存中的本體,在棧內(nèi)存中開辟一塊空間,放對象名;8. 重載的定義:兩個或者多個函數(shù)在同一個類當(dāng)中,函數(shù)名相同,參數(shù)列表不同。9. 構(gòu)造函數(shù)無實(shí)參,有實(shí)參。10. thisa. 使用this調(diào)用成員變量和成員函數(shù),this代表調(diào)用當(dāng)前成員變量或函數(shù)的對象;b. 使用this調(diào)用構(gòu)造函數(shù)this(參數(shù)列表),調(diào)用構(gòu)造函數(shù)必須是構(gòu)造函數(shù)中的第一條語句。11. statica.靜態(tài)變量聲明static int i;調(diào)用:既可以用類名調(diào)用也可以用對象調(diào)用;所有的對象所用的靜態(tài)變量都是同一份,任何一個對象的靜態(tài)變量得到修改,其他對象的靜態(tài)變量也會跟著修改。b.靜態(tài)函數(shù)
4、聲明 static void 函數(shù)名();靜態(tài)函數(shù)也可以用類名來直接來調(diào)用;在靜態(tài)函數(shù)當(dāng)中不能引用非靜態(tài)的成員變量。c.靜態(tài)代碼塊 格式 static 主要作用是為成員變量賦初始值,在裝載的時候執(zhí)行。12. 繼承 extends在java中只支持單繼承(一個子類只能繼承一個父類,不允許多繼承)【在c+中一個子類可以繼承多個父類】;使用繼承是為了減少重復(fù)代碼。13. 在子類的構(gòu)造函數(shù)當(dāng)中,必須調(diào)用父類的構(gòu)造函數(shù),不寫的話,編譯器會加一行代碼super(),自己寫的話必須是構(gòu)造函數(shù)的第一行代碼;若是想自己調(diào)用父類的構(gòu)造函數(shù),在括號里邊加上參數(shù)就可以?!咀⒁狻亢蛅his的不同,this是調(diào)用本類中的
5、構(gòu)造函數(shù)。原因:消除重復(fù)代碼14. 函數(shù)的復(fù)寫(override)復(fù)寫(在兩個類中)也被稱之為覆蓋,重寫?!緟^(qū)別】重載(在一個類中,函數(shù)的名相同,參數(shù)不同)語法特征:a. 在具有父子關(guān)系的兩個類當(dāng)中;b. 父類和子類各有一個函數(shù),這兩個函數(shù)的定義(包括返回值類型,函數(shù)名字,參數(shù))完全相同,里面的方法塊不一樣。15. 使用 super.父類成員函數(shù) 可以調(diào)用父類的方法 (當(dāng)在重寫寫父類的方法時可以用來消除重復(fù))。16. 對象的轉(zhuǎn)型(多態(tài)性的體現(xiàn))向上轉(zhuǎn)型將子類的對象賦值給父類的引用。一個引用能夠調(diào)用哪些成員(包括變量和函數(shù))取決于這個引用的類型。一個引用的調(diào)用的是哪一個方法取決于這個引用所指向的
6、對象。向下轉(zhuǎn)型將父類的對象賦值給子類的引用。過程:先把對象向上轉(zhuǎn)型,在向下轉(zhuǎn)型。例如:Person是父類,Student是子類Student s1 = new Student();Person p = s1;Student s2 = (Student)p;17. 抽象函數(shù)只有函數(shù)的定義,沒有函數(shù)體的函數(shù)。聲明:abstract void fun(); 。18. 抽象類使用abstract定義的類 a. 抽象類不能夠生成對象b. 如果一個類中包含抽象函數(shù),那么這個類必須被聲明為抽象類c. 如果一個類中沒有抽象函數(shù),這個類也可以被聲明為抽象類 19. 抽象類不能生成對象,但是卻可以擁有構(gòu)造函數(shù)。2
7、0. 為什么要用抽象類?【原因之一】如果一個類的某一個函數(shù),這個函數(shù)必須由它的子類來實(shí)現(xiàn),我們無法寫出子類通用的一個函數(shù),最好的方法就是把這個函數(shù)定義為抽象函數(shù),并且把這個類定義為抽象類。這樣就會強(qiáng)制要求在子類繼承這個函數(shù)的時候?qū)@個抽象函數(shù)進(jìn)行復(fù)寫(override)。21. 如果一段代碼在語義上是有錯誤的,那么在語法上也應(yīng)該有錯(現(xiàn)在編程理論認(rèn)為,但實(shí)際上可能沒實(shí)現(xiàn))。22. 軟件包為java類提供了命名空間將類放置到一個包當(dāng)中,需要使用 package 包名; 編譯時需要使用 d 參數(shù),該參數(shù)的作用是依照包名生成相應(yīng)的文件夾。-d 后面是一個目錄。例如:javac d . test.ja
8、va ,“ . ”代表當(dāng)前目錄。一個類的全名應(yīng)該是“包名” + “.” “類名”。23. 包名的命名規(guī)范:1.要求所有的字母都小寫;2.包名一般情況下,是你的域名倒過來寫,例如 à package com.baidu;24. Java當(dāng)中的訪問權(quán)限:(體現(xiàn)面向?qū)ο蟮姆庋b性)1.public:可以修飾類、成員變量和成員函數(shù),沒有任何限制,在同一個包中,或不同包中的類都可以自由訪問,在跨包訪問的時候需要public權(quán)限,當(dāng)類是public的時候,類名和文件名必須一致。2.private:可以修飾成員變量和成員函數(shù),只能在本類中使用。3.default:包級別(默認(rèn))訪問權(quán)限,在不寫權(quán)限修
9、飾符,就是default權(quán)限,可以修飾類、成員變量和成員函數(shù),在同一個包中可以自由訪問,在不同包中訪問就需要public權(quán)限。 4.protected:(受保護(hù)權(quán)限)public > protected > default > private25. Import + 包名;導(dǎo)入包。26. 訪問權(quán)限與繼承如果子類和父類不在同一個包當(dāng)中,則子類無法繼承到父類當(dāng)中的default權(quán)限的成員變量和成員函數(shù)(有問題)。子類可以繼承到父類當(dāng)中的default權(quán)限的成員變量和成員函數(shù),但是權(quán)限不夠,無法使用。27. protected權(quán)限首先擁有和default權(quán)限一樣的功能,但是該權(quán)限只
10、能修飾成員變量和成員函數(shù),除此之外,protected權(quán)限允許跨包的繼承,【注意】和public不同,public允許包外的任意訪問,但protected只允許子類訪問父類protected的成員變量和成員函數(shù)。28. 接口定義了接口就是定義了調(diào)用對象的標(biāo)準(zhǔn)。接口的基本語法(一):1.使用interface定義2.接口當(dāng)中的方法都是抽象方法(抽象類,但不需要abstract定義類)3.接口當(dāng)中的方法都是public權(quán)限。接口的基本語法(二):1.實(shí)現(xiàn)接口使用implements關(guān)鍵字2.一個類可以實(shí)現(xiàn)多個接口(對于類的繼承來講,一個類只可以繼承一個父類,這里不同)3.一個接口可以繼承多個接口2
11、9. 簡單靜態(tài)工廠方法模式把生成對象的代碼(用到new xxx();),封裝在工廠類中。30. 異常中斷了正常指令流(一個程序從上到下依次的執(zhí)行,一條條的語句構(gòu)成指令流)的事件,異常只出現(xiàn)在程序運(yùn)行的過程中(意味著在語法上是正確的,跟編譯沒多大關(guān)系)。異常是一個對象,當(dāng)程序出現(xiàn)異常的時候,虛擬機(jī)會生成一個異常對象,生成異常的類都是由JDK提供的異常的分類:RuntimeExceptionCheck Exception uncheck異常Exception運(yùn)行時異常Throwable check異常Error編譯時異常父類編譯時報(bào)錯 虛擬機(jī)在運(yùn)行時產(chǎn)生的錯誤,一旦產(chǎn)生錯誤虛擬機(jī)就會直接關(guān)閉,應(yīng)用
12、程序是運(yùn)行在虛擬機(jī)上的程序員對此無能為力,只能處理Exception31. trycatchfinally結(jié)構(gòu)來處理可能出現(xiàn)異常的代碼try有可能出現(xiàn)異常的代碼catch(Exception e)e.printStackTrace();出現(xiàn)異常跳到catch打印異常finally無論有沒有異常都執(zhí)行,也稱為異常的出口,把清理資源的代碼放在里面對于check Exception必須對其進(jìn)行處理,用trycatch或者聲明,否則編譯不能通過。對異常的處理關(guān)系到系統(tǒng)的健壯性。32. throw的作用throw e; 作用:拋出一個異常對象,虛擬機(jī)得到這個異常對象后在此條語句后面終止代碼的運(yùn)行。如果拋
13、出的是check Exception的話,必須對其進(jìn)行trycatch處理,但通常情況下,我們自己拋出的異常我們不會處理,這時編譯就不會通過。處理異常還可以對其聲明。33. throws的作用聲明一個函數(shù)可能會產(chǎn)生異常:以年齡不能為負(fù)數(shù)為例,因?yàn)閖ava虛擬機(jī)不會察覺到這種問題public void setAge(int age) throws Exceptions/這樣聲明表明本函數(shù)可能產(chǎn)生異常,但本函數(shù)并沒有責(zé)任在函數(shù)里處理異常,而是需要在調(diào)用此函數(shù)的地方在處理異常if(age < 0)Exception e = new Exception(“年齡不能為負(fù)數(shù)”);/這里的參數(shù)就是異常
14、信息throw e;this.age = age;34. I/O操作的目標(biāo)從數(shù)據(jù)源當(dāng)中讀取數(shù)據(jù),以及將數(shù)據(jù)寫入到數(shù)據(jù)目的地當(dāng)中,即對數(shù)據(jù)進(jìn)行讀寫操作。數(shù)據(jù)的流向以java程序?yàn)閰⒄瘴?。I/O的分類:三種分法,(1)輸入流與輸出流(2)字節(jié)流與字符流(3)節(jié)點(diǎn)流與處理流在節(jié)點(diǎn)流的基礎(chǔ)上對數(shù)據(jù)進(jìn)行加工I/O當(dāng)中的核心類(字節(jié)流的核心類)InputStreamOuputStream 所有字節(jié)流的父類(抽象類)讀寫 FileInputStream 最常用的FileOutputStreamInputStream:Int read(byte b,int off,int len);從硬盤上讀取的數(shù)據(jù)放到字節(jié)
15、型數(shù)組b中,off表示偏移量,即從數(shù)組b的第幾個位置開始存儲,len表示讀取一次最多讀多少數(shù)據(jù)。OutputStream:void write(byte b,int off,int len)35. 字節(jié)流的輸入輸出例子(小文件)/從文件中讀取數(shù)據(jù)第一步驟1:導(dǎo)入類import java.io.*;class IOftpublic static void main(String args )/2.在操作IO流的時候,會產(chǎn)生編譯器異常,所以先捕捉異常,/用try.catch/3.聲明輸入流引用FileInputStream fis = null;/a.聲明輸出流的引用FileOutputStrea
16、m fos = null;try/4.生成代表輸入流的對象fis = new FileInputStream("d:/Android_learn/src/from.txt");/b.生成代表輸出流的對象fos = new FileOutputStream("d:/Android_learn/src/to.txt");/5.生成一個字節(jié)數(shù)組byte buffer = new byte100;/6.調(diào)用輸入流對象的read方法/c.取read的返回值,調(diào)用write方法int temp = fis.read(buffer,0,buffer.length);f
17、os.write(buffer,0,temp);/*for(int i = 0; i < buffer.length; i+)System.out.println(bufferi);這里打印的是ascll碼,下面是轉(zhuǎn)換為字符的方法*/String s = new String(buffer);s = s.trim();/調(diào)用一個String對象的trim方法將會去掉這個/字符串的首尾空格和空字符System.out.println(s);catch(Exception e)System.out.println(e);36. 大文件的讀寫方法(對上改進(jìn))字節(jié)流/從文件中讀取數(shù)據(jù)第一步驟1:
18、導(dǎo)入類import java.io.*;class IOftpublic static void main(String args )/2.在操作IO流的時候,會產(chǎn)生編譯器異常,所以先捕捉異常,/用try.catch/3.聲明輸入流引用FileInputStream fis = null;/a.聲明輸出流的引用FileOutputStream fos = null;try/4.生成代表輸入流的對象fis = new FileInputStream("d:/Android_learn/src/from.txt");/b.生成代表輸出流的對象fos = new FileOutp
19、utStream("d:/Android_learn/src/to.txt");/5.生成一個字節(jié)數(shù)組byte buffer = new byte100;byte buffer = new byte1024;/6.調(diào)用輸入流對象的read方法while(true)/c.取read的返回值,調(diào)用write方 int temp = fis.read(buffer,0,buffer.length);int temp = fis.read(buffer,0,buffer.length);if(temp = -1)/讀到文件尾fos.write(buffer,0,temp);brea
20、k;/*for(int i = 0; i < buffer.length; i+)System.out.println(bufferi);fos.write(buffer,0.temp)這里打印的是ascll碼,下面是轉(zhuǎn)換為字符的方法*/fis.close();補(bǔ)充上次的不足String s = new String(buffer);【但不該放在這】s = s.trim();/調(diào)用一個String對象的trimfos.close();應(yīng)關(guān)閉IO流的操作/方法將會去掉這個/字符串的首尾空格和空字符應(yīng)該放在finally里面,如下catch后System.out.println(s);cat
21、ch(Exception e)System.out.println(e);finally /但是close方法會產(chǎn)生異常,所以還要tyrcatchtryfis.close();fos.close();catch(Exception e)System.out.println(e);37. 字符流讀寫文件時,以字符為基礎(chǔ)。字符輸入流:Reader(父)ßFileReader(子);字符輸出流:WriterßFileWriter;父類都是抽象類,位置相當(dāng)于字節(jié)流中的InputStream和OutputStream讀函數(shù):int read(char c,int off,int le
22、n);寫:void write(char c,int off,int len);使用方法與上面的列子非常類似。38. 處理流(BufferedReader)使用實(shí)例,BufferedReader全稱也叫字符輸入處理流使用這個流主要使用下面的這個方法:以行為單位讀取public String readLIne()throwsIOException【重點(diǎn)】生成BufferedReader對象的方法BufferedReader in = new BufferedReader(newFileReader(“foo.in”);使用列子:處理流bufferedReader調(diào)用readLine并不是讀取磁盤
23、上的文件,而是fileReader讀取磁盤文件,bufferedReader在fileReader的基礎(chǔ)上進(jìn)行處理。import java.io.*;class Bfreaderpublic static void main(String args )FileReader fileReader = null;BufferedReader bufferedReader = null;tryfileReader = new FileReader("d:/Android_learn/src/users.txt");bufferedReader = new BufferedRead
24、er(fileReader); String line = null; while(true)line = bufferedReader.readLine();if(line = null)break;System.out.println(line); catch(Exception e)System.out.println(e);finallytrybufferedReader.close();fileReader.close();catch(Exception e)System.out.println(e);39. 裝飾者(Decorator)模式節(jié)點(diǎn)流是被裝飾者,處理流是裝飾者,在被裝飾
25、者上添加新的功能列子:工人 水管工 木匠A公司水管工B公司水管工A公司木匠B公司木匠如果使用這種繼承,假如有m個工種,n個公司,那么便需要m*n個子類,非常復(fù)雜。使用裝飾者模式:見decorator文件里面的程序Decorator40. 內(nèi)部類一個類聲明在另一個類中,生成內(nèi)部類對象:如B類聲明在A類中,B可以隨意使用A的成員變量和成員函數(shù),但這不意味著B繼承A,B只是能使用這些變量和函數(shù),并不擁有。A a = new A();A.B b = new A().new B();作為普通內(nèi)部類來講,要生成內(nèi)部類的對象必須先生成一個外部類的對象41. 匿名內(nèi)部類new 一個接口,這個接口后緊跟著一個類
26、來實(shí)現(xiàn)這一個接口,只不過這個類沒有名字,這種類就被稱之為匿名內(nèi)部類。42. 多進(jìn)程與多線程多進(jìn)程:在操作系統(tǒng)中能(同時)運(yùn)行多個任務(wù)(程序)。多線程:在同一個應(yīng)用程序中有多個順序流(同時)執(zhí)行。43. 線程的執(zhí)行過程BlockedNewDead解除阻塞阻塞事件RunningRunnablestart()線程調(diào)度Run()運(yùn)行完畢44. 創(chuàng)建線程的方法方式一:定義一個線程類,它繼承類Thread并重寫其中的方法run(),方法run()稱為線程體;由于Java只支持單繼承,用這種方法定義的類不能再繼承其他類。創(chuàng)建線程以及啟動線程例子: /在這個類中有3個線程:1.主函數(shù)main();2.自己定義
27、的線程對象ft;3.垃圾回收線程/誰搶到CPU就執(zhí)行誰class Testpublic static void main(String args )/生成線程類對象FirstThread ft = new FirstThread();/啟動線程ft.start();/此線程處于就緒狀態(tài)/ft.rnu();千萬不能這么寫,不然就不是多線程for(int i = 0; i < 100; i+)/為了說明線程之間交替運(yùn)行System.out.println("main->" + i);方式二:提供一個實(shí)現(xiàn)接口Runnable的類作為線程的目標(biāo)對象,在初始化一個Thre
28、ad類或者Thread子類的線程對象時,把目標(biāo)對象傳遞給這個線程實(shí)例,由該目標(biāo)對象提供線程體。45. 線程的簡單控制方法中斷線程:Thread.sleep(2000);2000ms代表休眠2000ms,線程休眠的時候處于阻塞狀態(tài),醒來的時候處于就緒狀態(tài)。Thread.yield();讓當(dāng)前線程讓出CPU,但當(dāng)前線程還是會搶CPU設(shè)置線程的優(yōu)先級:(最大是10,最小是1,可以根據(jù)Thread所提供的靜態(tài)常量來設(shè)置線程的優(yōu)先級)越高的線程先執(zhí)行的概率越大。getPriority();setPriority();46. 多線程的數(shù)據(jù)安全(生產(chǎn)者消費(fèi)者問題-共用資源)synchronized(this
29、);同步代碼塊,一種鎖機(jī)制。保證訪問數(shù)據(jù)的安全。47. 數(shù)組靜態(tài)聲明:int arr = 1,2,4,5,6;動態(tài)聲明:int arr = new int10;元素是整型的默認(rèn)值是0;char型默認(rèn)值是空;布爾型默認(rèn)值是faulse.二維數(shù)組:int arr = 1,2,3,4,5,6,7,8,9;Int arr = new int35;48. 類集框架1. 類集框架是一組類和接口2. 位于java.util包當(dāng)中3. 主要用于存儲和管理對象4. 主要分為三大類集合、列表和映射集合(set):無序不重復(fù)列表(list):有索引可以重復(fù)映射(map):鍵值對類集框架的主體結(jié)構(gòu)List接口impo
30、rt java.util.List;import java.util.ArrayList;public class Testpublic static void main(String args)ArrryList<String> arryList = new ArrayList<String>();arrayList.add(“a”);arrayList.remove(1);for(int I = 0; I < arrayList.size(); i+)String s = arrayList.get(i);System.out.println(s);49. Collection和Iterator(迭代器)接口import java.util.
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 取用水領(lǐng)域信用評價指標(biāo)及評分標(biāo)準(zhǔn)
- 《水文分析與計(jì)算》本科題集
- 班子領(lǐng)導(dǎo)在新單位見面會上的講話
- 石淋與現(xiàn)代藝術(shù)融合
- 江蘇省蘇州市姑蘇區(qū)2024-2025學(xué)年九年級上學(xué)期10月月考?xì)v史卷(含答案)
- 2024年電銀項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 2023年帶鋼傳輸自動糾偏裝置資金申請報(bào)告
- 2023年自動絡(luò)筒機(jī)投資申請報(bào)告
- 2024年實(shí)驗(yàn)室儀器裝置項(xiàng)目資金籌措計(jì)劃書代可行性研究報(bào)告
- 強(qiáng)化現(xiàn)場6S管理-推進(jìn)班組建設(shè)
- 2024-2030年醫(yī)療美容產(chǎn)品行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- 中小學(xué)-消防安全知識教育-課件
- 九年級中考英語數(shù)詞課件
- 食品生產(chǎn)企業(yè)食品安全管理人員考試題庫含答案完整版
- 一份完整的投標(biāo)書
- 新質(zhì)生產(chǎn)力-講解課件
- 組織行為與領(lǐng)導(dǎo)力智慧樹知到期末考試答案2024年
- 30道計(jì)量員崗位常見面試問題含HR問題考察點(diǎn)及參考回答
- 基于PLC四層電梯控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 海綿城市建設(shè)難點(diǎn)與對策
- 我的叔叔于勒(劇本)精編版
評論
0/150
提交評論