




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1. JDK2. Path環(huán)境變量是操作系統(tǒng)外部命令搜索路徑;Classpath環(huán)境變量是類文件搜索路徑。3. JRE是Java Runtime Environment,即是java運行環(huán)境。包括java虛擬機、java平臺核心類文件、其他支持文件。JVM,Java Virtual Machine。它是由軟件模擬出來的計算機,軟件只需編譯一次就可以在不同的操作系統(tǒng)上運行。源文件.java file檢查錯誤編譯器檢查語法錯誤字節(jié)代碼.class file,可以在各種虛擬機上運行,對用戶啟動程序于不同的操作系統(tǒng)有不同的虛擬機IosJVM(3)LinuxJVM(2)WindowsJVM(1)執(zhí)行同樣
2、的class文件,結果相同軟件.class 文件JVM由虛擬機翻譯成適合當前操作系統(tǒng)的代碼操作系統(tǒng)由操作系統(tǒng)交給硬件再去執(zhí)行4. 字符集的作用,char類型的變量可以存一個漢字(在java中,或者是uincode編碼中)。5. 字面量整數字面量為整型(int),小數字面量為雙精度浮點型(double)。數值型類型表數范圍關系:byte < short < int < long < float < long。6. 面向對象(消除冗余是一種編程方法,是一種思維模式,不是一種編程語言。7. 棧內存和堆內存生成對象:類名 對象名 = new 類名();對象的本體(真正的對
3、象)在堆內存中,對象名(引用)指向堆內存中的本體,在棧內存中開辟一塊空間,放對象名;8. 重載的定義:兩個或者多個函數在同一個類當中,函數名相同,參數列表不同。9. 構造函數無實參,有實參。10. thisa. 使用this調用成員變量和成員函數,this代表調用當前成員變量或函數的對象;b. 使用this調用構造函數this(參數列表),調用構造函數必須是構造函數中的第一條語句。11. statica.靜態(tài)變量聲明static int i;調用:既可以用類名調用也可以用對象調用;所有的對象所用的靜態(tài)變量都是同一份,任何一個對象的靜態(tài)變量得到修改,其他對象的靜態(tài)變量也會跟著修改。b.靜態(tài)函數
4、聲明 static void 函數名();靜態(tài)函數也可以用類名來直接來調用;在靜態(tài)函數當中不能引用非靜態(tài)的成員變量。c.靜態(tài)代碼塊 格式 static 主要作用是為成員變量賦初始值,在裝載的時候執(zhí)行。12. 繼承 extends在java中只支持單繼承(一個子類只能繼承一個父類,不允許多繼承)【在c+中一個子類可以繼承多個父類】;使用繼承是為了減少重復代碼。13. 在子類的構造函數當中,必須調用父類的構造函數,不寫的話,編譯器會加一行代碼super(),自己寫的話必須是構造函數的第一行代碼;若是想自己調用父類的構造函數,在括號里邊加上參數就可以?!咀⒁狻亢蛅his的不同,this是調用本類中的
5、構造函數。原因:消除重復代碼14. 函數的復寫(override)復寫(在兩個類中)也被稱之為覆蓋,重寫。【區(qū)別】重載(在一個類中,函數的名相同,參數不同)語法特征:a. 在具有父子關系的兩個類當中;b. 父類和子類各有一個函數,這兩個函數的定義(包括返回值類型,函數名字,參數)完全相同,里面的方法塊不一樣。15. 使用 super.父類成員函數 可以調用父類的方法 (當在重寫寫父類的方法時可以用來消除重復)。16. 對象的轉型(多態(tài)性的體現)向上轉型將子類的對象賦值給父類的引用。一個引用能夠調用哪些成員(包括變量和函數)取決于這個引用的類型。一個引用的調用的是哪一個方法取決于這個引用所指向的
6、對象。向下轉型將父類的對象賦值給子類的引用。過程:先把對象向上轉型,在向下轉型。例如:Person是父類,Student是子類Student s1 = new Student();Person p = s1;Student s2 = (Student)p;17. 抽象函數只有函數的定義,沒有函數體的函數。聲明:abstract void fun(); 。18. 抽象類使用abstract定義的類 a. 抽象類不能夠生成對象b. 如果一個類中包含抽象函數,那么這個類必須被聲明為抽象類c. 如果一個類中沒有抽象函數,這個類也可以被聲明為抽象類 19. 抽象類不能生成對象,但是卻可以擁有構造函數。2
7、0. 為什么要用抽象類?【原因之一】如果一個類的某一個函數,這個函數必須由它的子類來實現,我們無法寫出子類通用的一個函數,最好的方法就是把這個函數定義為抽象函數,并且把這個類定義為抽象類。這樣就會強制要求在子類繼承這個函數的時候對這個抽象函數進行復寫(override)。21. 如果一段代碼在語義上是有錯誤的,那么在語法上也應該有錯(現在編程理論認為,但實際上可能沒實現)。22. 軟件包為java類提供了命名空間將類放置到一個包當中,需要使用 package 包名; 編譯時需要使用 d 參數,該參數的作用是依照包名生成相應的文件夾。-d 后面是一個目錄。例如:javac d . test.ja
8、va ,“ . ”代表當前目錄。一個類的全名應該是“包名” + “.” “類名”。23. 包名的命名規(guī)范:1.要求所有的字母都小寫;2.包名一般情況下,是你的域名倒過來寫,例如 à package com.baidu;24. Java當中的訪問權限:(體現面向對象的封裝性)1.public:可以修飾類、成員變量和成員函數,沒有任何限制,在同一個包中,或不同包中的類都可以自由訪問,在跨包訪問的時候需要public權限,當類是public的時候,類名和文件名必須一致。2.private:可以修飾成員變量和成員函數,只能在本類中使用。3.default:包級別(默認)訪問權限,在不寫權限修
9、飾符,就是default權限,可以修飾類、成員變量和成員函數,在同一個包中可以自由訪問,在不同包中訪問就需要public權限。 4.protected:(受保護權限)public > protected > default > private25. Import + 包名;導入包。26. 訪問權限與繼承如果子類和父類不在同一個包當中,則子類無法繼承到父類當中的default權限的成員變量和成員函數(有問題)。子類可以繼承到父類當中的default權限的成員變量和成員函數,但是權限不夠,無法使用。27. protected權限首先擁有和default權限一樣的功能,但是該權限只
10、能修飾成員變量和成員函數,除此之外,protected權限允許跨包的繼承,【注意】和public不同,public允許包外的任意訪問,但protected只允許子類訪問父類protected的成員變量和成員函數。28. 接口定義了接口就是定義了調用對象的標準。接口的基本語法(一):1.使用interface定義2.接口當中的方法都是抽象方法(抽象類,但不需要abstract定義類)3.接口當中的方法都是public權限。接口的基本語法(二):1.實現接口使用implements關鍵字2.一個類可以實現多個接口(對于類的繼承來講,一個類只可以繼承一個父類,這里不同)3.一個接口可以繼承多個接口2
11、9. 簡單靜態(tài)工廠方法模式把生成對象的代碼(用到new xxx();),封裝在工廠類中。30. 異常中斷了正常指令流(一個程序從上到下依次的執(zhí)行,一條條的語句構成指令流)的事件,異常只出現在程序運行的過程中(意味著在語法上是正確的,跟編譯沒多大關系)。異常是一個對象,當程序出現異常的時候,虛擬機會生成一個異常對象,生成異常的類都是由JDK提供的異常的分類:RuntimeExceptionCheck Exception uncheck異常Exception運行時異常Throwable check異常Error編譯時異常父類編譯時報錯 虛擬機在運行時產生的錯誤,一旦產生錯誤虛擬機就會直接關閉,應用
12、程序是運行在虛擬機上的程序員對此無能為力,只能處理Exception31. trycatchfinally結構來處理可能出現異常的代碼try有可能出現異常的代碼catch(Exception e)e.printStackTrace();出現異常跳到catch打印異常finally無論有沒有異常都執(zhí)行,也稱為異常的出口,把清理資源的代碼放在里面對于check Exception必須對其進行處理,用trycatch或者聲明,否則編譯不能通過。對異常的處理關系到系統(tǒng)的健壯性。32. throw的作用throw e; 作用:拋出一個異常對象,虛擬機得到這個異常對象后在此條語句后面終止代碼的運行。如果拋
13、出的是check Exception的話,必須對其進行trycatch處理,但通常情況下,我們自己拋出的異常我們不會處理,這時編譯就不會通過。處理異常還可以對其聲明。33. throws的作用聲明一個函數可能會產生異常:以年齡不能為負數為例,因為java虛擬機不會察覺到這種問題public void setAge(int age) throws Exceptions/這樣聲明表明本函數可能產生異常,但本函數并沒有責任在函數里處理異常,而是需要在調用此函數的地方在處理異常if(age < 0)Exception e = new Exception(“年齡不能為負數”);/這里的參數就是異常
14、信息throw e;this.age = age;34. I/O操作的目標從數據源當中讀取數據,以及將數據寫入到數據目的地當中,即對數據進行讀寫操作。數據的流向以java程序為參照物。I/O的分類:三種分法,(1)輸入流與輸出流(2)字節(jié)流與字符流(3)節(jié)點流與處理流在節(jié)點流的基礎上對數據進行加工I/O當中的核心類(字節(jié)流的核心類)InputStreamOuputStream 所有字節(jié)流的父類(抽象類)讀寫 FileInputStream 最常用的FileOutputStreamInputStream:Int read(byte b,int off,int len);從硬盤上讀取的數據放到字節(jié)
15、型數組b中,off表示偏移量,即從數組b的第幾個位置開始存儲,len表示讀取一次最多讀多少數據。OutputStream:void write(byte b,int off,int len)35. 字節(jié)流的輸入輸出例子(小文件)/從文件中讀取數據第一步驟1:導入類import java.io.*;class IOftpublic static void main(String args )/2.在操作IO流的時候,會產生編譯器異常,所以先捕捉異常,/用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é)數組byte buffer = new byte100;/6.調用輸入流對象的read方法/c.取read的返回值,調用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碼,下面是轉換為字符的方法*/String s = new String(buffer);s = s.trim();/調用一個String對象的trim方法將會去掉這個/字符串的首尾空格和空字符System.out.println(s);catch(Exception e)System.out.println(e);36. 大文件的讀寫方法(對上改進)字節(jié)流/從文件中讀取數據第一步驟1:
18、導入類import java.io.*;class IOftpublic static void main(String args )/2.在操作IO流的時候,會產生編譯器異常,所以先捕捉異常,/用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é)數組byte buffer = new byte100;byte buffer = new byte1024;/6.調用輸入流對象的read方法while(true)/c.取read的返回值,調用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碼,下面是轉換為字符的方法*/fis.close();補充上次的不足String s = new String(buffer);【但不該放在這】s = s.trim();/調用一個String對象的trimfos.close();應關閉IO流的操作/方法將會去掉這個/字符串的首尾空格和空字符應該放在finally里面,如下catch后System.out.println(s);cat
21、ch(Exception e)System.out.println(e);finally /但是close方法會產生異常,所以還要tyrcatchtryfis.close();fos.close();catch(Exception e)System.out.println(e);37. 字符流讀寫文件時,以字符為基礎。字符輸入流:Reader(父)ßFileReader(子);字符輸出流:WriterßFileWriter;父類都是抽象類,位置相當于字節(jié)流中的InputStream和OutputStream讀函數:int read(char c,int off,int le
22、n);寫:void write(char c,int off,int len);使用方法與上面的列子非常類似。38. 處理流(BufferedReader)使用實例,BufferedReader全稱也叫字符輸入處理流使用這個流主要使用下面的這個方法:以行為單位讀取public String readLIne()throwsIOException【重點】生成BufferedReader對象的方法BufferedReader in = new BufferedReader(newFileReader(“foo.in”);使用列子:處理流bufferedReader調用readLine并不是讀取磁盤
23、上的文件,而是fileReader讀取磁盤文件,bufferedReader在fileReader的基礎上進行處理。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é)點流是被裝飾者,處理流是裝飾者,在被裝飾
25、者上添加新的功能列子:工人 水管工 木匠A公司水管工B公司水管工A公司木匠B公司木匠如果使用這種繼承,假如有m個工種,n個公司,那么便需要m*n個子類,非常復雜。使用裝飾者模式:見decorator文件里面的程序Decorator40. 內部類一個類聲明在另一個類中,生成內部類對象:如B類聲明在A類中,B可以隨意使用A的成員變量和成員函數,但這不意味著B繼承A,B只是能使用這些變量和函數,并不擁有。A a = new A();A.B b = new A().new B();作為普通內部類來講,要生成內部類的對象必須先生成一個外部類的對象41. 匿名內部類new 一個接口,這個接口后緊跟著一個類
26、來實現這一個接口,只不過這個類沒有名字,這種類就被稱之為匿名內部類。42. 多進程與多線程多進程:在操作系統(tǒng)中能(同時)運行多個任務(程序)。多線程:在同一個應用程序中有多個順序流(同時)執(zhí)行。43. 線程的執(zhí)行過程BlockedNewDead解除阻塞阻塞事件RunningRunnablestart()線程調度Run()運行完畢44. 創(chuàng)建線程的方法方式一:定義一個線程類,它繼承類Thread并重寫其中的方法run(),方法run()稱為線程體;由于Java只支持單繼承,用這種方法定義的類不能再繼承其他類。創(chuàng)建線程以及啟動線程例子: /在這個類中有3個線程:1.主函數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+)/為了說明線程之間交替運行System.out.println("main->" + i);方式二:提供一個實現接口Runnable的類作為線程的目標對象,在初始化一個Thre
28、ad類或者Thread子類的線程對象時,把目標對象傳遞給這個線程實例,由該目標對象提供線程體。45. 線程的簡單控制方法中斷線程:Thread.sleep(2000);2000ms代表休眠2000ms,線程休眠的時候處于阻塞狀態(tài),醒來的時候處于就緒狀態(tài)。Thread.yield();讓當前線程讓出CPU,但當前線程還是會搶CPU設置線程的優(yōu)先級:(最大是10,最小是1,可以根據Thread所提供的靜態(tài)常量來設置線程的優(yōu)先級)越高的線程先執(zhí)行的概率越大。getPriority();setPriority();46. 多線程的數據安全(生產者消費者問題-共用資源)synchronized(this
29、);同步代碼塊,一種鎖機制。保證訪問數據的安全。47. 數組靜態(tài)聲明:int arr = 1,2,4,5,6;動態(tài)聲明:int arr = new int10;元素是整型的默認值是0;char型默認值是空;布爾型默認值是faulse.二維數組:int arr = 1,2,3,4,5,6,7,8,9;Int arr = new int35;48. 類集框架1. 類集框架是一組類和接口2. 位于java.util包當中3. 主要用于存儲和管理對象4. 主要分為三大類集合、列表和映射集合(set):無序不重復列表(list):有索引可以重復映射(map):鍵值對類集框架的主體結構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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45231-2025智能床
- 全新合伙人合同:創(chuàng)始股東權利與義務
- 雙方戒煙合同責任書
- 船舶所有權變更合同
- 合同離婚改革:軍人家庭權益保障
- 5電磁鐵(教學設計)-2024-2025學年六年級上冊科學教科版
- 項目融資及還款合同書范例
- 住宅租賃安全責任合同條款
- 知識產權保護及商業(yè)秘密合同范本
- 租賃合同模板范本:貨物運輸設備
- 2024-2025年第二學期學校教導處工作計劃(二)
- 2025年蘇州衛(wèi)生職業(yè)技術學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 二零二五年度博物館場地租賃與文物保護合作協議3篇
- 2025年春新人教版歷史七年級下冊全冊課件
- 2024年鐘山職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 駱駝祥子-(一)-劇本
- 魏晉南北朝時期中外文化的交流
- 漁業(yè)行業(yè)智能化海洋牧場養(yǎng)殖方案
- 《工程勘察設計收費標準》(2002年修訂本)
- 《債權法教學》課件
- 太傻天書(完整版)
評論
0/150
提交評論