Java語言基礎經典總結_第1頁
Java語言基礎經典總結_第2頁
Java語言基礎經典總結_第3頁
Java語言基礎經典總結_第4頁
Java語言基礎經典總結_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Java語言基礎經典總結第一章java概述java程序是由類(class)構建而成的,類包含成員(member),主要的是屬性(field)和方法(method)。從類的定義開始,可以創建無數個對象,對象通常稱為那個類的實例(instance),屬性是屬于類本身或類對象的數據變量,它們構成對象或類的狀態(state),而方法是在屬性上進行運算從而操縱狀態的語句集合,語句定義類或對象的行為。可以將類想象成一個工廠,而對象是工廠生產的零件,屬性和方法相當于工廠的員工。egg:注:上述程序是一個最簡單的類。它只有一個成員:main方法。main方法是一個特殊的方法,一個java程序可以有多個方法,但只能有一個main方法,main方法被聲明為public,這樣java虛擬機中的任何對象都可以調用它,同時也被聲明為static,這說明該方法屬于類本身。而不與類的實例相關聯。方法名前面的是方法的返回類型,main方法聲明為void,因為他它不返回任何值,因此無返回類型。第二章語言符號,運算符與表達式1.注釋:注釋在代碼產生階段不起任何作用,但它為程序員閱讀代碼提供了便利,java有三種形式的注釋,分別是:(1)//comment單行注釋,從//開始到行尾的字符被忽略。(2)/*comment*/多行注釋,從/*開始到*/結束中間的字符被忽略。

(3)/**comment*/塊注釋,從/**到*/之間的字符被忽略。注:java的注釋不允許發生嵌套。2.標識符:標識符用作被聲明實體(變量,常量)的名字,java標識符由字母,數字,下劃線(_)和美元符號($)組成,但不能以數字開頭。3.關鍵字:java語言的關鍵字不能用作標識符,Java的關鍵字有:abstract,boolean,break,byte,continue,case,catch,char,class,const,default,do,double,else,extends,false,final,finally,float,for,if,implements,import,instanceof,int,interface,native,long,new,null,package,private,protected,public,return,short,static,super,switch,synchronized,throw,throws,this,transient,try,void,while等;4.表達式表達式將會產生什么養的結果是由表達式的類型決定的,而表達式的類型是由表達式中的值和變量決定的,類型被分為引用型和基本類型。(1)java的基本類型包括:byte8位-27-------27-1帶符號整數short16位-215-------215-1帶符號整數int32位-231-------231-1帶符號整數long64位-263------263-1帶符號整數char16位0-----216-1無符號整數float32位單精度符點double64位雙精度符點boolean1位值:true或false(2)引用型包括類類型,接口類型和數組類型,這些類型的變量指的就是相應類型的對象。5.變量:變量時一個存儲位置,可以保存一個值,變量聲明指定標識符,類型和其他屬性,聲明的類型確定了值的類型。(1)變量分為全局變量和局部變量,它們以同樣的方式進行聲明,聲明分為三個部分:修飾符類型標識符列表。全局變量是類或接口的成員,都在類或接口的程序體內進行聲明,局部變量可以在程序的任何位置聲明,既可以是基本類型也可以是引用類型,可用于局部變量的唯一修飾符是final,final修飾符聲明的值一旦被設定,就將一直保持這個值,即不可改變,且聲明為final時必須進行初始化。6.運算符:(1)運算符的優先級java語言中各運算符優先級如下所示(優先級從上到下依次遞減)類型運算符單操作數運算符++、--、+、-、!、~、()算術運算符*、/、%、+、-移位運算符<<、>>、>>>比較運算符<<=>>===!=instanceof按位運算符&^|邏輯運算符&&||條件運算符?:賦值運算符=(2)單操作運算符:分別是:自動遞增運算符(++)自動遞增運算符(++)取正運算符(+)取負運算符(-)按位取反運算符(~)邏輯取反運算符(!)造型運算符(),其中按位取反運算~對易個整數型操作數進行按位操作,生成與輸入位的相反值。若輸入0,則輸出為1;若輸入1,則輸出0。邏輯取反運算!對一個布爾型操作數進行操作,生成與輸入位的相反值。若輸入為true,則輸出為false;若輸入為false,則輸出為true;造型運算()的作用是明確將一種數據類型轉換為另一種數據類型,可能造成數據信息的丟失。在java中,合法的類型轉換編譯器會自動進行,只有強制類型轉換時,程序員才有必要進行造型運算。造型運算的操作對象不僅僅是基本數據類型,也可以是引用型。(3)按位運算符java語言中共提供了4種按位運算符,分別為按位與&,按位|,按位異或^和按位非~,這四個運算符適合所有整型數據.進行按位運算時,總是先將字符型、字節型、短整型值轉換為整型再進行位運算。對于布爾型運算只有按位非(~)不能用于布爾型數值。其他3種位運算都可以把布爾型數值當作一個具有一位值進行按位運算。布爾型值為true對應為1,false對應為0,盡管位運算可以應用于布爾型,但不能將布爾型值和其他整數型值混合使用,如混合使用,將發生類型轉換錯誤,因為布爾型值和其他基本類型之間不能進行相互轉換。第三章控制流1.語句和塊:語句是由表達式和分號組成的,用花括號將多條語句組合成為塊。2.if語句:它是條件控制流的最基本形式,它選擇是否執行后續的語句。語法為:if(boolean-expression)statement1elsestatement2首先求布爾表達式的值,如果只為true,則執行statement1,否則,執行statement2;(3)switch語句:Switch語句可以根據一個整型表達式的值,將控制轉移到語句塊中標號后的入口點。語法為:Switch(expression){Case1:statementsCase2:statements}如果找到匹配的case標號,控制轉移到他后面的第一個語句,否則轉移到default標號后的第一個語句,否則跳出switch語句。(4)While和do…..while語句While循環的形式如下:While(boolean-expression)Statement先求布爾表達式的值,如果是true,則執行語句,執行完畢后重新求表達式的值,如果是true,則繼續執行語句,否則退出循環。由于表達式可能第一次求值就是false,所以while循環可能執行一次或多次,有時候需要執行循環至少一次,這時就用do-while語句DoStatementWhile(boolean-expression)表達式在語句執行完畢后求值,當表達式為true是,語句被重復執行,否則退出循環。(5)for循環:for語句在一定范圍的值傷從頭到尾執行,形式為For(init-expr;boolean-expr;incr-expr)StatementInit-expr允許定義和初始化變量,它只執行一次,然后求布爾表達式的值,如果結果為truro,則執行循環體內的語句,執行完畢之后,執行incr-expr更新循環變量的值,然后重新計算布爾表達式的值,如果為true,則繼續執行,否則退出循環。(6)break語句Break語句用于從任何語句塊中退出,有兩種形式,有標號的和無標號的,無標號的終止最內層的switch.for,while或者do語句。有標號的終止任何被標注的語句。(7)continue語句只能在循環中使用,它把控制體轉移到循環的結尾。(8)return語句Return終止方法的執行并返回調用者,如果不返回任何值,則寫return并以分號結尾則可,若有返回類型,return語句必須包含其類型同返回類型一致的表達式。第四章類和對象1.類成員類可以有三種類型的成員:變量:與類及其對象相關的數據變量,其中保存著類和對象的狀態方法:包含類的可執行代碼并定義了對象的行為嵌套類和嵌套接口:嵌套在其他類或接口中的類和接口2.類修飾符類聲明前面可以有類修飾符以指定類的特定屬性:Public一個Public類是公共訪問的,任何人都可以訪問對該類的對象的引用或者訪問它的公共成員。如果沒有修飾符,則該類只能在自己的包內訪問abstract:一個抽象類被認為是不完整的,不能創建實例,如果該類中有abstract方法,該方法必須在子類中實現final:final類不能有子類strictfloatingpoint:定義為strictdfp的類要求其中所定義的浮點運算都都進行精確運算注:一個類不能即是final又是abstract的3.訪問控制和繼承類的成員對于類本身來說,始終是可以訪問的,為了控制其他類的訪問,類成員具有四種訪問控制修飾符:private:private成員只能在類自身中訪問package:聲明時不帶任何訪問修飾符的成員,只有相同包內的代碼可以訪問protected:子類,同一包中的類及類內部可以訪問聲明為protected的成員public:在類是可以訪問的地方,聲明為public的成員都是可以訪問的注:private和protected訪問控制修飾符只能用于成員,而不能用于類或接口本身(除非嵌套),如果要從某個類的一段代碼中訪問一個成員,首先要在這段代碼中訪問該成員的類。4.構造和初始化構造函數為了完成簡單初始化之外的目的,類可以通過構造函數實現。構造函數是一段初始化對象的代碼,這種初始化動作在new返回新創建對象的引用之前完成。構造函數與它要初始化的類同名。構造函數與方法一樣,它擁有一個或多個自變量,但是構造函數不是方法,所以沒有返回類型。利用new創建對象時,自變量放在類型名后面的括號里。注:構造函數的聲明包括類的名字,后面是括在圓括號內的參數列表,在加上花括號之間的語句。構造函數可以與類成員同樣的訪問控制修飾符,但構造函數不能使類的成員——這一點很容易被忽略,除非在遇到繼承時。構造函數可以把this()作為本身的第一個可執行語句,來調用同一個類中的其他構造函數。這叫做顯式構造函數調用。5.方法方法的聲明:方法頭和方法體:方法頭包括修飾符集,方法的返回類型,簽名(方法名和用圓括號括起來的參數列表)和該方法所拋出的異常,所有的方法都必須有返回類型和簽名,但修飾符和拋出的異常時可選的。方法修飾符的組成訪問控制修飾符Abstract:abstract方法的方法體未在類中定義,只是用參數列表之后的一個分號來表示,子類負責實現該方法的方法體。Static:靜態方法可以以整個類的名義調用,而不是從該類實例化得到的特定對象調用,他叫做類方法,靜態方法只能訪問類的靜態變量和靜態方法。方法的調用:利用“.”運算符把方法作為對象上的操作加以調用,方法調用時,調用者必須提供與方法聲明中所要求的類型相對應的參數注:方法還具有返回類型,它可以是基本類型,也可以是引用型,如果方法不返回任何值,返回類型的位置上應寫上void,意為無返回類型方法的控制和返回:方法調用時,控制流就從調用方法轉移到被調用方法,被調用的方法就按照語義開始執行。被調用的方法在三種情況下停止執行,并返回調用者:執行return語句;已經到達方法的結尾;拋出未捕獲的異常。6.重載:如果兩個方法的名字相同,但方法參數的個數和類型不同,這種現象叫做重載。第五章繼承類1.繼承類叫做它所繼承的類的子類或繼承類,被繼承的叫做超類類繼承分為兩種形式:類繼承:子類將獲得超類的類型,因而可以在任何允許使用超類的地方多態使用,類繼承實現了子類可以重新定義新的行為,解決了代碼的復用。接口繼承:依照超類所訪問的變量和方法,子類對超類進行了實例化。2.繼承的格式:Class子類名extends(implements)父類名3.子類與超類的關系1方法之間:方法覆蓋是面向對象語言的特性,即父類中的一個方法在子類中獲得重新定義,但是方法名、參數列表和返回值均不變。2屬性之間:如果我們在子類定義了與父類相同的屬性,那么我們稱之為屬性(數據成員)的隱藏。3構造函數之間:如果子類沒有定義自己的構造方法,則它將自動調用父類的無參數的構造器。如果子類自己定義了構造器,則在創建對象時,它將先執行自父類的無參數的構造器,然后再執行自己的構造器。4.super的使用:類的所有非靜態方法中都可以使用關鍵字super,在變量和方法的調用中,super實際上作為超類實例當前對象的引用。注:super必須放在調用其構造器中的第一行,而且子類中覆蓋方法可以通過super(…)來訪問超類中被覆蓋的方法,但只能訪問其直接超類,而不能跨級訪問。5.方法的覆蓋:方法覆蓋是面向對象語言的特性,即父類中的一個方法在子類中獲得重新定義,但是方法名、參數列表和返回值均不變。覆蓋的規則如下:(1)覆蓋的方法之間必須擁有相同的方法名和參數列表,即要求參數列表中參數的個數、排列順序以及參數的類型要相同。注意,參數的名稱是否相同,不是覆蓋的決定因素;(2)覆蓋的方法之間,其返回類型必須相同;(3)一個靜態方法只能被覆蓋方法為一個靜態方法,但是不能被覆蓋為一個非靜態方法;(4)父類中被子類覆蓋的方法,在每一個子類中,最多只能被覆蓋一次;(5)覆蓋方法的訪問控制修飾符所定義的訪問控制不能小于父類中被覆蓋方法的訪問控制修飾符定義的范圍,即覆蓋方法不能比原有方法訪問范圍窄;(6)覆蓋方法聲明的拋出異常,只能是被覆蓋方法拋出異常的子類,或者一樣,或者不拋出任何異常。第六章接口1.java程序設計的基本單元式類,但是面相對象程序設計的基本單元是類型。類可以定義類型,而接口以一種抽象的形式作為方法或者其他類型的集合,類可以實現一個或多個接口來實現類型的擴展,當然,接口本身沒有任何實現,也就不能創建實例。2.接口的聲明:PublicinterfaceT{Intcomper();}除了使用的關鍵字是interface而不是class之外,接口的聲明和類的聲明很像。定義的接口是類的超接口,類必須實現定義在其超接口中的所有方法,否則,類就必須聲明為abstract的。3.接口修飾符Public——被public修飾的接口可以被公共訪問,如果沒有這個修飾符,則只能被其所在包內的成員訪問。Abstract——所有的接口都被隱式的定義為abstract的,因為他們的方法沒有任何實現。4.抽象類用abstract修飾符修飾的類,我們稱為抽象類,在抽象類可以有抽象方法也可以沒有抽象方法,如果一個子類繼承了抽象類,擇、則其必須實現抽象類的所有抽象方法,否則必須聲明為抽象類,繼承接口也如此。5.接口和抽象類的異同接口和抽象類都有抽象方法,都代表定義層次上的抽象;接口和抽象類都不能創建對象。不同:接口中沒有構造器,抽象類中可以有構造器;接口中只能有接口常量和抽象方法,抽象類中可以有抽象方法,也可以有非抽象方法;接口中的抽象方法的修飾符不寫,默認還是abstractpublic。而抽象類中的抽象方法必須寫abstract關鍵字。第七章嵌套類和接口1.類和接口可以在其他類和接口內部聲明,或者作為成員,或者在代碼塊內部,這種類型稱為嵌套。2,作為成員時,分為靜態嵌套類和非嵌套類,在代碼塊內部分為有實例名稱的嵌套類和無實例名稱的嵌套類(匿名嵌套類)3.靜態嵌套類:靜態嵌套類是嵌套類的最簡單形式,其聲明格s式與普通類的格式類似。但創建對象時有所不同,格式為:外部類.內部類內部類對象=new外部類.內部類();4.非靜態嵌套類:非靜態嵌套類可以繼承任何其他類,實現任何接口和被任何類繼承,可以定義為final或者abstract的,但其內部不能有靜態成員。創建對象的格式為:外部類.內部類內部類對象=new外部類().內部類();樣的類在定義它們的塊外是完全不能訪問的,簡單的說就是沒有途徑引用它們,但是這些類的實例是普通對象,可以作為自變量傳遞,從方法返回,并且它們一直存在,直到不再被引用,唯一可以用的修飾符是final——它通常阻止類被繼承,它在定義該類的作用域可以訪問所有變量:局部變量,方法參數,實例變量和靜態變量。唯一的限制是只有局部變量或方法被聲明為final才可以訪問。5.有實例名稱的內部類:這6.無實例名稱的內部類:這些類在被定義的同時,通過new實例化,并通過方法返回,達到代碼簡練的目的。第八章異常1.異常是指阻止當前方法或作用域繼續執行的問題,通常在兩種情況下發生,一是編譯階段,二是運行階段。發現錯誤的理想階段是編譯階段,可以及時修改。運行期發生異常后,程序不能繼續下去,所能做的就是把問題提交上一環境,這一動作叫做拋出異常。Java中的異常是對象。所有異常類型,即所有為可拋出對象設計的類,必須繼承Throwable類或它的子類。Throwable類含有一個可以用于描述異常的字符串。2:異常利用throw拋出:throwexpression;其中的表達式必須估算出一個值或變量,它們必須與throwable類型兼容——簡單的說,它們是一個throwable對象的引用。異常時對象,所以在拋出之前需要創建。3.異常處理程序:異常由包含在try塊中的語句捕獲,完整的代碼如下:try{}catch(typexx){}finally{}Try的語句如果拋出異常,就要找到其異常類或其超類的catch語句,try中可以包含任意多個catch字句,只要這些字句捕獲的異常類型不同。如果try中有finally字句,則不管是否拋出異常,都總被執行。第九章字符串1.字符串是具有內置語言支持的標準對象。2.基本字符串操作:通過new方法來顯式的創建string對象,從而調用它的方法:charAt(intindex)返回會在index的位置處的字符。返回類型為charconcat(Stringstr)連接兩個字符串,參數str在后面,返回類型為StringendsWith(Stringstr)判斷字符串是否以str字符串結束,返回類型booleanequals(Objectobj)判斷一個字符串是否等于一個obj對象,返回類型為booleanequalsIgnoreCase(StringanotherString)判斷一個字符串是否等于另一個字符串,返回booleangetBytes()將一個字符串轉化為字節數組,使用系統默認編碼,返回類型為byte[];getBytes(Stringenc)將一個字符串轉化為字節數組,用名字enc的編碼,返回類型為byte[];indexOf(intch)返回字符ch在字符串里第一次出現的位置,如果字符串里不存在字符ch,則返回-1,返回類型為intindexOf(Stringstr)返回字符串str在字符串里第一次出現的位置,如果不存在字符串str,則返回-1。length()返回字串的長度,注意:同數組的區別:數組是屬性,因此用length表示。toCharArray()將這個字符串轉化成字符叔祖,返回類型為char[]trim():去掉字符串的首尾空格。toUpperCase():將字符串傳喚成大寫3.StringBuffer類:StringBuffer類是可變字符串類,創建了它的對象后,可以隨意修改,改變字符串的內容。如果字符串的長度超過了StringBuffer類對象的容器,則該對象的容量自動擴大。StringBuffer并不是String的子類,它們都是Object的擴展。除了擁有字符串所有的方法外,它還有一些特有的方法:intcapacity()獲取它的容量voidsetLength(inta)設置容量intlength();長度,字符串的真實長度StringBufferappend(Objectobj)StringBufferappend(Stringstr)StringBufferappend(StringBuffersb)StringBufferinsert(intoffset,Objectobj)StringBufferappend(intoffset,Stringstr)StringBufferappend(intoffset,StringBuffersb)4.StringTokenizer類Java中提供了專門用于分析字符串的類StringTokenizer(位于java.util包中),可以將字符串分解為獨立使用的單詞(語言符號)。語言符號之間由定界符(delim)或空格、制表符、換行符等來分隔。其他字符也同樣可以設定為定界符。StringTokenizer的構造方法StringTokenizer(Stringstr)使用默認的定界符,即空格,制表符,換行回車,TABStringTokenizer(Stringstr,Stringdelim)為字符串str構造一個字符串分析器,并使用delim作為定界符。方法:StringnextToken()//返回一個字符booleanhasMoreTokens()//判斷要分析的字符串還有語言符號嗎?有返回true,否則返回falseintcountTokens()//共有多少個語言符號第十章I/O包Java.io包使用術語流(stream)定義I/O(輸入/輸出)。包含兩個主要部分:字符流和字節流。1.字節流:java.io包為基本的字節輸入和輸出定義了抽象類。這些抽象類接著被繼承,以提供幾個有用的流類型。而流類型是成對的,包含輸入流和輸出流。抽象類InputStream聲明的方法在特定的源中讀取字節,它是大多數字節輸入流的超類。抽象類Output提供將字節寫到目的地的抽象方法。具體方法有:(1)FileInputStream:intread()intread(byteb[])intread(byteb[],intstart,intlength)intavailable():返回后面還有個沒有被讀取的字節數。voidclose()(2)FileOutputStream:publicvoidwrite(intb)publicvoidwrite(byteb[]);publicvoidflush();publicvoidclose();read方法讀一個字節,并返回內容。intread(byteb[])讀取速度要快于read()方法。2.字符流:讀寫字符流的抽象類是Reader和Writer,它們提供一些與字節流方法相似的方法。FileReader文件字符輸入流publicintread();publicintread(charc[]);publicintread(charc[],intstart,intlength)publicvoidclose();FileWriter文件字符輸出流publicvoidwrite(ints)publicvoidwrite(charc[])publicvoidflush();publicvoidclose();3.轉換流:轉換流實現了Unicode同指定編碼的字節流或者本機系統的默認編碼的字節流之間的轉換,包括有:1、BufferedInputStream2、BufferedOuputStream3、BufferedReader4、BufferedWriter。4.Buffered流;常用于和File流的連接——存取一個磁盤文件,比用內存緩沖要慢許多,緩沖能夠減少文件訪問次數。5.File流:允許將文件看成輸入和輸出流:3、方法:如何學習方法?方法名,參數類型,返回類型也必須記(1)booleanmkdir()創建文件夾(目錄),如果成功返回true。也可以創建子目錄,但父目錄必須存在。(2)booleandelete()刪除文件夾(目錄)或刪除文件,如果返回true,刪除成功1(3)booleanmkdirs()父子目錄一起創建!(4)booleanexists()判斷一個文件或文件夾是否存在,如果存在返回true。(5)booleancanRead()判斷一個文件是否可讀。如果true。(6)longlength();返回文件的字節數,文件的大小。(7)StringgetAbsolutePath()//返回一個文件或文件夾的絕對路徑。(8)StringgetName();//得到一個文件名(包括擴展名)(9)booleanisAbsolute()判斷是否是絕對路徑。如果是返回true。(10)booleanisDirectory()判斷一個東東是否是目錄,如果返回true。(11)booleanisFile()判斷一個東東是否是文件,如果返回true。(12)booleanisHidden();判斷一個文件或文件夾是否是隱藏文件。如果是返回true。(13)longlastModified()返回文件的最后修改時間。(14)booleanrenameTo(FilenewName)改名,成功返回true。(15)File[]listFile()得到某一個目錄下的File數組。(16)File[]listRoots()返回所有的盤符。(17)booleansetReadOnly()設置為只讀文件。第十一章集合1.集合,有時也稱為容器,是一個對象持有者,使你能夠通過有用的方法對對象進行組織和存儲,以便進行更有效的訪問。2.集合的接口有:Collection——集合的根接口。提供諸如add,remove,size,toArray和重要的iterator等方法。Set——一個沒有重復元素的集合,元素的存儲沒有任何特定的順序。(繼承Collection)List——集合的元素以特定順序存儲。Map——從關鍵

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論