




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Java知識點(diǎn)總結(jié)Java知識點(diǎn)總結(jié)「篇一」java概述:1991年Sun公司的JamesGosling(詹姆斯·高斯林)等人開始開發(fā)名稱為Oak的語言,希望用于控制嵌入在有線電視交換盒、PDA等的微處理器;1994年將Oak語言更名為Java;Java的三種技術(shù)架構(gòu):JAVAEE:JavaPlatformEnterpriseEdition,開發(fā)企業(yè)環(huán)境下的應(yīng)用程序,主要針對web程序開發(fā);JAVASE:JavaPlatformStandardEdition,完成桌面應(yīng)用程序的開發(fā),是其它兩者的基礎(chǔ);JAVAME:JavaPlatformMicroEdition,開發(fā)電子消費(fèi)產(chǎn)品和嵌入式設(shè)備,如手機(jī)中的程序;1、JDK:JavaDevelopmentKit,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)工具和jre。2、JRE:JavaRuntimeEnvironment,java程序的運(yùn)行環(huán)境,java運(yùn)行的所需的類庫+JVM(java虛擬機(jī))。3、配置環(huán)境變量:讓javajdkin目錄下的工具,可以在任意目錄下運(yùn)行,原因是,將該工具所在目錄告訴了系統(tǒng),當(dāng)使用該工具時(shí),由系統(tǒng)幫我們?nèi)フ抑付ǖ哪夸?。環(huán)境變量的配置:1):永久配置方式:JAVA_HOME=%安裝路徑%Javajdkpath=%JAVA_HOME%in2):臨時(shí)配置方式:setpath=%path%;C:ProgramFilesJavajdkin特點(diǎn):系統(tǒng)默認(rèn)先去當(dāng)前路徑下找要執(zhí)行的程序,如果沒有,再去path中設(shè)置的路徑下找。classpath的配置:1):永久配置方式:classpath=;c;e:2):臨時(shí)配置方式:setclasspath=;c;e:注意:在定義classpath環(huán)境變量時(shí),需要注意的情況如果沒有定義環(huán)境變量classpath,java啟動(dòng)jvm后,會(huì)在當(dāng)前目錄下查找要運(yùn)行的類文件;如果指定了classpath,那么會(huì)在指定的目錄下查找要運(yùn)行的類文件。還會(huì)在當(dāng)前目錄找嗎?兩種情況:1):如果classpath的值結(jié)尾處有分號,在具體路徑中沒有找到運(yùn)行的類,會(huì)默認(rèn)在當(dāng)前目錄再找一次。2):如果classpath的值結(jié)果出沒有分號,在具體的路徑中沒有找到運(yùn)行的類,不會(huì)再當(dāng)前目錄找。一般不指定分號,如果沒有在指定目錄下找到要運(yùn)行的類文件,就報(bào)錯(cuò),這樣可以調(diào)試程序。4、javac命令和java命令做什么事情呢?要知道java是分兩部分的:一個(gè)是編譯,一個(gè)是運(yùn)行。javac:負(fù)責(zé)的是編譯的部分,當(dāng)執(zhí)行javac時(shí),會(huì)啟動(dòng)java的編譯器程序。對指定擴(kuò)展名的.java文件進(jìn)行編譯。生成了jvm可以識別的字節(jié)碼文件。也就是class文件,也就是java的運(yùn)行程序。java:負(fù)責(zé)運(yùn)行的部分會(huì)啟動(dòng)jvm.加載運(yùn)行時(shí)所需的類庫,并對class文件進(jìn)行執(zhí)行。一個(gè)文件要被執(zhí)行,必須要有一個(gè)執(zhí)行的起始點(diǎn),這個(gè)起始點(diǎn)就是main函數(shù)。java語法基礎(chǔ):1、關(guān)鍵字:其實(shí)就是某種語言賦予了特殊含義的單詞。保留字:其實(shí)就是還沒有賦予特殊含義,但是準(zhǔn)備日后要使用過的單詞。2、標(biāo)示符:其實(shí)就是在程序中自定義的名詞。比如類名,變量名,函數(shù)名。包含0-9、a-z、$、_;注意:1),數(shù)字不可以開頭。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í)候,就定義變量。變量空間的開辟需要什么要素呢?1、這個(gè)空間要存儲(chǔ)什么數(shù)據(jù)?數(shù)據(jù)類型。2、這個(gè)空間叫什么名字???變量名稱。3、這個(gè)空間的第一次的數(shù)據(jù)是什么?變量的初始化值。變量的作用域和生存期:變量的作用域:作用域從變量定義的位置開始,到該變量所在的那對大括號結(jié)束;生命周期:變量從定義的位置開始就在內(nèi)存中活了;變量到達(dá)它所在的作用域的時(shí)候就在內(nèi)存中消失了;數(shù)據(jù)類型:1):基本數(shù)據(jù)類型:byte、short、int、long、float、double、char、boolean2):引用數(shù)據(jù)類型:數(shù)組、類、接口。級別從低到高為:byte,char,short(這三個(gè)平級)-->int-->float-->long-->double自動(dòng)類型轉(zhuǎn)換:從低級別到高級別,系統(tǒng)自動(dòng)轉(zhuǎn)的;強(qiáng)制類型轉(zhuǎn)換:什么情況下使用?把一個(gè)高級別的數(shù)賦給一個(gè)別該數(shù)的級別低的變量;運(yùn)算符號:1)、算術(shù)運(yùn)算符。+-*/%%:任何整數(shù)模2不是0就是1,所以只要改變被模數(shù)就可以實(shí)現(xiàn)開關(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ū)別:&:無論左邊結(jié)果是什么,右邊都參與運(yùn)算。&&:短路與,如果左邊為false,那么右邊不參數(shù)與運(yùn)算。|和||區(qū)別:|:兩邊都運(yùn)算。||:短路或,如果左邊為true,那么右邊不參與運(yùn)算。5)、位運(yùn)算符:用于操作二進(jìn)制位的運(yùn)算符。&|^<<>>>>>(無符號右移)練習(xí):對兩個(gè)變量的數(shù)據(jù)進(jìn)行互換。不需要第三方變量。inta=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=aa=a^b;//a=a^b^a=b;練習(xí):高效的算出2*8=2<<3;5、語句。Ifswitchdowhilewhilefor這些語句什么時(shí)候用?1)、當(dāng)判斷固定個(gè)數(shù)的值的時(shí)候,可以使用if,也可以使用switch。但是建議使用switch,效率相對較高。switch(變量){case值:要執(zhí)行的語句;break;。default:要執(zhí)行的語句;}工作原理:用小括號中的變量的值依次和case后面的值進(jìn)行對比,和哪個(gè)case后面的值相同了就執(zhí)行哪個(gè)case后面的語句,如果沒有相同的則執(zhí)行default后面的語句;細(xì)節(jié):1):break是可以省略的,如果省略了就一直執(zhí)行到遇到break為止;2):switch后面的小括號中的變量應(yīng)該是byte,char,short,int四種類型中的一種;3):default可以寫在switch結(jié)構(gòu)中的任意位置;如果將default語句放在了第一行,則不管expression與case中的value是否匹配,程序會(huì)從default開始執(zhí)行直到第一個(gè)break出現(xiàn)。2)、當(dāng)判斷數(shù)據(jù)范圍,獲取判斷運(yùn)算結(jié)果boolean類型時(shí),需要使用if。3)、當(dāng)某些語句需要執(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)語句,用于跳出,或者稱為結(jié)束。break語句單獨(dú)存在時(shí),下面不要定義其他語句,因?yàn)閳?zhí)行不到,編譯會(huì)失敗。當(dāng)循環(huán)嵌套時(shí),break只跳出當(dāng)前所在循環(huán)。要跳出嵌套中的外部循環(huán),只要給循環(huán)起名字即可,這個(gè)名字稱之為標(biāo)號。continue:只作用于循環(huán)結(jié)構(gòu),繼續(xù)循環(huán)用的。作用:結(jié)束本次循環(huán),繼續(xù)下次循環(huán)。該語句單獨(dú)存在時(shí),下面不可以定義語句,執(zhí)行不到。6、函數(shù):為了提高代碼的復(fù)用性,可以將其定義成一個(gè)單獨(dú)的功能,該功能的體現(xiàn)就是java中的函數(shù)。函數(shù)就是體現(xiàn)之一。java中的函數(shù)的定義格式:修飾符返回值類型函數(shù)名(參數(shù)類型形式參數(shù)1,參數(shù)類型形式參數(shù)1,…){執(zhí)行語句;return返回值;}當(dāng)函數(shù)沒有具體的返回值時(shí),返回的返回值類型用void關(guān)鍵字表示。如果函數(shù)的返回值類型是void時(shí),return語句可以省略不寫的,系統(tǒng)會(huì)幫你自動(dòng)加上。return的作用:結(jié)束函數(shù)。結(jié)束功能。如何定義一個(gè)函數(shù)?函數(shù)其實(shí)就是一個(gè)功能,定義函數(shù)就是實(shí)現(xiàn)功能,通過兩個(gè)明確來完成:1)、明確該功能的運(yùn)算完的結(jié)果,其實(shí)是在明確這個(gè)函數(shù)的返回值類型。2)、在實(shí)現(xiàn)該功能的過程中是否有未知內(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)樗浅绦虻娜肟凇?)、因?yàn)樗诒籮vm調(diào)用。函數(shù)定義名稱是為什么呢?答:1)、為了對該功能進(jìn)行標(biāo)示,方便于調(diào)用。2)、為了通過名稱就可以明確函數(shù)的功能,為了增加代碼的閱讀性。重載的定義是:在一個(gè)類中,如果出現(xiàn)了兩個(gè)或者兩個(gè)以上的同名函數(shù),只要它們的參數(shù)的個(gè)數(shù),或者參數(shù)的類型不同,即可稱之為該函數(shù)重載了。如何區(qū)分重載:當(dāng)函數(shù)同名時(shí),只看參數(shù)列表。和返回值類型沒關(guān)系。7、數(shù)組:用于存儲(chǔ)同一類型數(shù)據(jù)的一個(gè)容器。好處:可以對該容器中的數(shù)據(jù)進(jìn)行編號,從0開始。數(shù)組用于封裝數(shù)據(jù),就是一個(gè)具體的實(shí)體。如何在java中表現(xiàn)一個(gè)數(shù)組呢?兩種表現(xiàn)形式。1)、元素類型[]變量名=new元素類型[元素的個(gè)數(shù)];2)、元素類型[]變量名={元素1,元素2.};元素類型[]變量名=new元素類型[]{元素1,元素2.};Java知識點(diǎn)總結(jié)「篇二」1對象的初始化(1)非靜態(tài)對象的初始化在創(chuàng)建對象時(shí),對象所在類的所有數(shù)據(jù)成員會(huì)首先進(jìn)行初始化?;绢愋停篿nt型,初始化為0。如果為對象:這些對象會(huì)按順序初始化。※在所有類成員初始化完成之后,才調(diào)用本類的構(gòu)造方法創(chuàng)建對象。構(gòu)造方法的作用就是初始化。(2)靜態(tài)對象的初始化程序中主類的靜態(tài)變量會(huì)在main方法執(zhí)行前初始化。不僅第一次創(chuàng)建對象時(shí),類中的所有靜態(tài)變量都初始化,并且第一次訪問某類(注意此時(shí)未創(chuàng)建此類對象)的靜態(tài)對象時(shí),所有的靜態(tài)變量也要按它們在類中的順序初始化。2繼承時(shí),對象的初始化過程(1)主類的超類由高到低按順序初始化靜態(tài)成員,無論靜態(tài)成員是否為private。(2)主類靜態(tài)成員的初始化。(3)主類的超類由高到低進(jìn)行默認(rèn)構(gòu)造方法的調(diào)用。注意,在調(diào)用每一個(gè)超類的默認(rèn)構(gòu)造方法前,先進(jìn)行對此超類進(jìn)行非靜態(tài)對象的初始化。(4)主類非靜態(tài)成員的初始化。(5)調(diào)用主類的構(gòu)造方法。3關(guān)于構(gòu)造方法(1)類可以沒有構(gòu)造方法,但如果有多個(gè)構(gòu)造方法,就應(yīng)該要有默認(rèn)的構(gòu)造方法,否則在繼承此類時(shí),需要在子類中顯式調(diào)用父類的某一個(gè)非默認(rèn)的構(gòu)造方法了。(2)在一個(gè)構(gòu)造方法中,只能調(diào)用一次其他的構(gòu)造方法,并且調(diào)用構(gòu)造方法的語句必須是第一條語句。4有關(guān)public、private和protected(1)無public修飾的類,可以被其他類訪問的條件是:a.兩個(gè)類在同一文件中,b.兩個(gè)類在同一文件夾中,c.兩個(gè)類在同一軟件包中。(2)protected:繼承類和同一軟件包的類可訪問。(3)如果構(gòu)造方法為private,那么在其他類中不能創(chuàng)建該類的對象。5抽象類(1)抽象類不能創(chuàng)建對象。(2)如果一個(gè)類中一個(gè)方法為抽象方法,則這個(gè)類必須為abstract抽象類。(3)繼承抽象類的類在類中必須實(shí)現(xiàn)抽象類中的抽象方法。(4)抽象類中可以有抽象方法,也可有非抽象方法。抽象方法不能為private。(5)間接繼承抽象類的類可以不給出抽象方法的定義。6final關(guān)鍵字(1)一個(gè)對象是常量,不代表不能轉(zhuǎn)變對象的成員,仍可以其成員進(jìn)行操作。(2)常量在使用前必須賦值,但除了在聲明的同時(shí)初始化外,就只能在構(gòu)造方法中初始化。(3)final修飾的方法不能被重置(在子類中不能出現(xiàn)同名方法)。(4)如果聲明一個(gè)類為final,則所有的方法均為final,無論其是否被final修飾,但數(shù)據(jù)成員可為final也可不是。7接口interface(用implements來實(shí)現(xiàn)接口)(1)接口中的所有數(shù)據(jù)均為static和final即靜態(tài)常量。盡管可以不用這兩個(gè)關(guān)鍵字修飾,但必須給常量賦初值。(2)接口中的方法均為public,在實(shí)現(xiàn)接口類中,實(shí)現(xiàn)方法必須可public關(guān)鍵字。(3)如果使用public來修飾接口,則接口必須與文件名相同。8多重繼承(1)一個(gè)類繼承了一個(gè)類和接口,那么必須將類寫在前面,接口寫在后面,接口之間用逗號分隔。(2)接口之間可多重繼承,注意使用關(guān)鍵字extends。(3)一個(gè)類雖只實(shí)現(xiàn)了一個(gè)接口,但不僅要實(shí)現(xiàn)這個(gè)接口的所有方法,還要實(shí)現(xiàn)這個(gè)接口繼承的接口的方法,接口中的所有方法均須在類中實(shí)現(xiàn)。9接口的嵌入(1)接口嵌入類中,可以使用private修飾。此時(shí),接口只能在所在的類中實(shí)現(xiàn),其他類不能訪問。(2)嵌入接口中的接口一定要為public。10類的嵌入(1)類可以嵌入另一個(gè)類中,但不能嵌入接口中。(2)在靜態(tài)方法或其他方法中,不能直接創(chuàng)建內(nèi)部類對象,需通過手段來取得。手段有兩種:classA{classB{}BgetB{Bb=newBreturnb;
}
}
staticvoidm{
Aa=newAA.Bab=a.getB//或者是A.Bab=a.newB}(3)一個(gè)類繼承了另一個(gè)類的內(nèi)部類,因?yàn)槌愂莾?nèi)部類,而內(nèi)部類的構(gòu)造方法不能自動(dòng)被調(diào)用,這樣就需要在子類的構(gòu)造方法中明確的調(diào)用超類的構(gòu)造方法。
接上例:
classCextendsA.B{
C{
newAsuper//這一句就實(shí)現(xiàn)了對內(nèi)部類構(gòu)造方法的調(diào)用。
}
}
構(gòu)造方法也可這樣寫:
C(Aa){
a.super}//使用這個(gè)構(gòu)造方法創(chuàng)建對象,要寫成Cc=newC(a);a是A的對象。11異常類JAVA中除了RunTimeException類,其他異常均須捕獲或拋出。Java知識點(diǎn)總結(jié)「篇三」Set:不區(qū)分元素的順序,不允許出現(xiàn)重復(fù)的值list:區(qū)分元素的順序,且允許出現(xiàn)重復(fù)的值map:采用key——values的,不允許有重復(fù)的鍵,每個(gè)鍵最多對應(yīng)一個(gè)值java集合只能保存引用類型的數(shù)據(jù),是對象的引用Collection接口描述set和list集合類型的根接口相關(guān)方法:add如果增加重復(fù)元素,則增加失敗,返回falsecontains判斷是否包含有某個(gè)元素iterator返回成一個(gè)迭代器List可以對元素的插入位置進(jìn)行精確控制,根據(jù)元素索引訪問元素等功能set(index,elemetn)修改指定索引下的元素Map關(guān)系集的形式查看某個(gè)映射的內(nèi)容put(objectkey,objectvalues)增加一個(gè)新的值get(objectkey)查找key上面的值SetkeySet將所有的key返回到一個(gè)set中Collectionvalues將所有的值返回到一個(gè)collection集合中Collection——set——hashset/treesetCollection--list——Arraylist/vector——Stack(棧)Map——hashmap/Treemap/hashtable——propertiesStringTokenizer——Enumeration(不是很常用)ArrayList類實(shí)現(xiàn)了list接口,用于表述長度可度的數(shù)組列表他允許取值為null,除實(shí)現(xiàn)了list接口的所有功能外,還有以下方法ArrayList創(chuàng)建一個(gè)容量為10的null的列表ArrayList創(chuàng)建一個(gè)指定長度的null的列表ensureCapacity(intminCapacity)增加此ArrayList實(shí)例的容量,以確保它至少能夠容納最小容量參數(shù)所指定的元素?cái)?shù)。trimToSize將此ArrayList實(shí)例的容量調(diào)整為列表的當(dāng)前大小(也就是說,出除后面為null的值)相關(guān)實(shí)例請查看:/space-447825-do-blog-id-16964.htmlVector也實(shí)現(xiàn)了list接口,其描述的也是可變長度的對象數(shù)組是同步(線程安全的),運(yùn)行效率要低一些,主要用于多線程環(huán)境中,而arryalist是不同步的,適合在單純種環(huán)境中使用vector創(chuàng)建一個(gè)長度為10的vector容器elementAt(intindex)得到指定的值addElement(Objectojb)增加值removeElementAt(intindex)移除指定的值insertElecentAt(Eobj,index)在指定位置查入相關(guān)的值removeElement(objectobj)刪除值,如果有重復(fù)的只刪除第一次出現(xiàn)的Object[]toArray將當(dāng)前集合中的元素全部返回到一個(gè)數(shù)組中相關(guān)實(shí)例請查看:/space-447825-do-blog-id-16965.htmlStack繼承了vector,對應(yīng)了數(shù)據(jù)結(jié)構(gòu)中的“后進(jìn)先出”存儲(chǔ)和操作數(shù)據(jù)結(jié)象棧Stack創(chuàng)建一個(gè)空的棧push在當(dāng)前棧中壓入一個(gè)數(shù)據(jù),把項(xiàng)壓入堆棧頂部。pop移除堆棧頂部的對象,并作為此函數(shù)的值返回該對象。peek查看堆棧頂部的對象,但不從堆棧中移除它。clear清空棧search(objecto)查看棧中的位置,返回最進(jìn)的一個(gè)。以1為基數(shù)相關(guān)實(shí)例請查看:/space-447825-do-blog-id-16966.htmlIterator接口描述的是以統(tǒng)一方式對各種集合元素遍歷/迭代工具,也稱"迭代器"。允許在遍歷過程中移除集合中的元素hasNext如果仍有元素可以迭代,則返回truenext返回迭代的下一個(gè)元素remove從迭代器指向的collection中移除迭代器返回的最后一個(gè)元素相關(guān)實(shí)例請查看:/space-447825-do-blog-id-16967.htmlHashSet類實(shí)現(xiàn)了set接口,描述典型的set集合結(jié)構(gòu)不允許出現(xiàn)重復(fù)元素,不保證集合中元素的序允許包含值為null的元素,但最多只能有一個(gè)。相關(guān)實(shí)例請查看/space-447825-do-blog-id-16968.htmlTreeSet類也實(shí)現(xiàn)了Set,它描述的是set的一種變體——可以實(shí)現(xiàn)排序功能的集合將對象元素添加到TreeSet集中時(shí)會(huì)自動(dòng)按照某種比較規(guī)則將其插入到有序的對象序列中以保證TreeSet集合元素組成的對象序列時(shí)刻按照“升序”排列相關(guān)實(shí)例請看:/space-447825-do-blog-id-16969.htmlComparable接口中定義的compareTo方法,實(shí)現(xiàn)對整體排序所需的比較邏輯排序稱為自然排序,和自然比較如果重寫了,compareTo那么要保證equals保持一致相關(guān)實(shí)例請查看:/space-447825-do-blog-id-16971.htmlHashMap實(shí)現(xiàn)了Map接口,基于哈希表的實(shí)現(xiàn)了前述的映射集合結(jié)構(gòu)不保證其中元素的先后順序,并且允許null值和null鍵當(dāng)集合中不存在當(dāng)前檢索的,get返回的是空,而不會(huì)報(bào)錯(cuò)影響hashMap性能的兩個(gè)參數(shù):初始容量和加載因子相關(guān)實(shí)例請看:/space-447825-do-blog-id-16972.htmlHashtable也是采用鍵和值,鍵和值不允許為null,是同步的,即線程安全的,效率相對要低一些,用于多線程,用法與hashmap完全一樣Enumeration接口:作用與iterator接口類似,但只提供遍歷vector和hashtable(及子類properties)且不支持集合元素的移除操作些接口不是很常用,這里就不給實(shí)例了Collections定義了多種集合操作的方法,實(shí)現(xiàn)對集合元素排序,取極值,批是拷貝,集合結(jié)構(gòu)轉(zhuǎn)換,循環(huán)移位以及匹配檢查等功能相關(guān)方法:sort(Listlist)根據(jù)元素的自然順序?qū)χ付斜戆瓷蜻M(jìn)行排序。reverse(Listlist)反轉(zhuǎn)指定列表中元素的順序。shuffle(Listlist)使用默認(rèn)隨機(jī)源對指定列表進(jìn)行置換。copy(Listdest,Listsrc)將所有元素從一個(gè)列表復(fù)制到另一個(gè)列表。list(Enumeratione)返回一個(gè)數(shù)組列表,它按返回順序包含指定枚舉返回的元素frequency(Collectionc,Objecto)返回指定collection中等于指定對象的元素?cái)?shù)max(Collectioncoll)根據(jù)指定比較器產(chǎn)生的順序,返回給定collection的最大元素rotate(Listlist,intdistance)根據(jù)指定的距離輪換指定列表中的元素。相關(guān)實(shí)例請查看:/space-447825-do-blog-id-16973.htmlArrays類定義了多種數(shù)組操作方法,實(shí)現(xiàn)了對數(shù)組元素排序,填充,轉(zhuǎn)換為列表或字符串形式、增強(qiáng)的檢索和深度比較等功能asList返回一個(gè)受指定數(shù)組支持的固定大小的列表sort對指定的byte型數(shù)組按數(shù)字升序進(jìn)行排序binarySearch(int[]a,intkey)使用二分搜索法來搜索指定的int型數(shù)組,以獲得指定的值。toString(Object[]a)返回指定數(shù)組內(nèi)容的字符串表示形式。Java知識點(diǎn)總結(jié)「篇四」1.Java中的原始數(shù)據(jù)類型都有哪些,它們的大小及對應(yīng)的封裝類是什么?byte——1byte——Byteshort——2bytes——Shortint——4bytes——Integerlong——8bytes——Longfloat——4bytes——Floatdouble——8bytes——Doublechar——2bytes——Characterbooleanboolean數(shù)據(jù)類型非true即false。這個(gè)數(shù)據(jù)類型表示1bit,但是它的大小并沒有精確定義。《Java虛擬機(jī)規(guī)范》中如是說:“雖然定義了boolean這種數(shù)據(jù)類型,但是只對它提供了非常有限的支持。在Java虛擬機(jī)中沒有任何供boolean值專用的字節(jié)碼指令,Java語言表達(dá)式所操作的boolean值,在編譯之后都使用Java虛擬機(jī)中的int數(shù)據(jù)類型來代替,而boolean數(shù)組將會(huì)被編碼成Java虛擬機(jī)的byte數(shù)組,每個(gè)元素boolean元素占8位”。這樣我們可以得出boolean類型單獨(dú)使用是4個(gè)字節(jié),在數(shù)組中又是1個(gè)字節(jié)。那虛擬機(jī)為什么要用int來代替boolean呢?為什么不用byte或short,這樣不是更節(jié)省內(nèi)存空間嗎?實(shí)際上,使用int的原因是,對于當(dāng)下32位的CPU來說,一次進(jìn)行32位的數(shù)據(jù)交換更加高效。綜上,我們可以知道:官方文檔對boolean類型沒有給出精確的定義,《Java虛擬機(jī)規(guī)范》給出了“單獨(dú)時(shí)使用4個(gè)字節(jié),boolean數(shù)組時(shí)1個(gè)字節(jié)”的定義,具體還要看虛擬機(jī)實(shí)現(xiàn)是否按照規(guī)范來,所以1個(gè)字節(jié)、4個(gè)字節(jié)都是有可能的。這其實(shí)是一種時(shí)空權(quán)衡。boolean類型的封裝類是Boolean。2.談一談”==“與”equals"的區(qū)別。《ThinkinJava》中說:“關(guān)系操作符生成的是一個(gè)boolean結(jié)果,它們計(jì)算的是操作數(shù)的值之間的關(guān)系”。"=="判斷的是兩個(gè)對象的內(nèi)存地址是否一樣,適用于原始數(shù)據(jù)類型和枚舉類型(它們的變量存儲(chǔ)的是值本身,而引用類型變量存儲(chǔ)的是引用);equals是Object類的方法,Object對它的實(shí)現(xiàn)是比較內(nèi)存地址,我們可以重寫這個(gè)方法來自定義“相等”這個(gè)概念。比如類庫中的String、Date等類就對這個(gè)方法進(jìn)行了重寫。綜上,對于枚舉類型和原始數(shù)據(jù)類型的相等性比較,應(yīng)該使用"==";對于引用類型的相等性比較,應(yīng)該使用equals方法。3.Java中的四種引用及其應(yīng)用場景是什么?強(qiáng)引用:通常我們使用new操作符創(chuàng)建一個(gè)對象時(shí)所返回的引用即為強(qiáng)引用軟引用:若一個(gè)對象只能通過軟引用到達(dá),那么這個(gè)對象在內(nèi)存不足時(shí)會(huì)被回收,可用于圖片緩存中,內(nèi)存不足時(shí)系統(tǒng)會(huì)自動(dòng)回收不再使用的Bitmap弱引用:若一個(gè)對象只能通過弱引用到達(dá),那么它就會(huì)被回收(即使內(nèi)存充足),同樣可用于圖片緩存中,這時(shí)候只要Bitmap不再使用就會(huì)被回收虛引用:虛引用是Java中最“弱”的引用,通過它甚至無法獲取被引用的對象,它存在的唯一作用就是當(dāng)它指向的對象回收時(shí),它本身會(huì)被加入到引用隊(duì)列中,這樣我們可以知道它指向的對象何時(shí)被銷毀。4.object中定義了哪些方法?cloneequalshashCodetoStringnotifynotifyAllwaitfinalizegetClass5.hashCode的作用是什么?請參見散列表的基本原理與實(shí)現(xiàn)6.ArrayList,LinkedList,Vector的區(qū)別是什么?ArrayList:內(nèi)部采用數(shù)組存儲(chǔ)元素,支持高效隨機(jī)訪問,支持動(dòng)態(tài)調(diào)整大小LinkedList:內(nèi)部采用鏈表來存儲(chǔ)元素,支持快速插入/刪除元素,但不支持高效地隨機(jī)訪問Vector:可以看作線程安全版的ArrayList7.String,StringBuilder,StringBuffer的區(qū)別是什么?String:不可變的字符序列,若要向其中添加新字符需要?jiǎng)?chuàng)建一個(gè)新的String對象StringBuilder:可變字符序列,支持向其中添加新字符(無需創(chuàng)建新對象)StringBuffer:可以看作線程安全版的StringBuilder8.Map,Set,List,Queue、Stack的特點(diǎn)及用法。Map:Java中存儲(chǔ)鍵值對的數(shù)據(jù)類型都實(shí)現(xiàn)了這個(gè)接口,表示“映射表”。支持的兩個(gè)核心操作是get(Objectkey)以及put(Kkey,Vvalue),分別用來獲取鍵對應(yīng)的值以及向映射表中插入鍵值對。Set:實(shí)現(xiàn)了這個(gè)接口的集合類型中不允許存在重復(fù)的元素,代表數(shù)學(xué)意義上的“集合”。它所支持的核心操作有add(Ee),remove(Objecto),contains(Objecto),分別用于添加元素,刪除元素以及判斷給定元素是否存在于集中。List:Java中集合框架中的列表類型都實(shí)現(xiàn)了這個(gè)接口,表示一種有序序列。支持get(intindex),add(Ee)等操作。Queue:Java集合框架中的隊(duì)列接口,代表了“先進(jìn)先出”隊(duì)列。支持add(Eelement),remove等操作。Stack:Java集合框架中表示堆棧的數(shù)據(jù)類型,堆棧是一種“后進(jìn)先出”的數(shù)據(jù)結(jié)構(gòu)。支持push(Eitem),pop等操作。更詳細(xì)的說明請參考官方文檔,對相關(guān)數(shù)據(jù)結(jié)構(gòu)不太熟悉的同學(xué)可以參考《算法導(dǎo)論》或其他相關(guān)書籍。9.HashMap和HashTable的區(qū)別HashTable是線程安全的,而HashMap不是HashMap中允許存在null鍵和null值,而HashTable中不允許10.HashMap的實(shí)現(xiàn)原理簡單的說,HashMap的底層實(shí)現(xiàn)是“基于拉鏈法的散列表”。詳細(xì)分析請參考深入解析HashMap、HashTable11.ConcurrentHashMap的實(shí)現(xiàn)原理ConcurrentHashMap是支持并發(fā)讀寫的HashMap,它的特點(diǎn)是讀取數(shù)據(jù)時(shí)無需加鎖,寫數(shù)據(jù)時(shí)可以保證加鎖粒度盡可能的小。由于其內(nèi)部采用“分段存儲(chǔ)”,只需對要進(jìn)行寫操作的數(shù)據(jù)所在的“段”進(jìn)行加鎖。關(guān)于ConcurrentHashMap底層實(shí)現(xiàn)的詳細(xì)分析請參考Java并發(fā)編程:并發(fā)容器之ConcurrentHashMap12.TreeMap,LinkedHashMap,HashMap的區(qū)別是什么?HashMap的底層實(shí)現(xiàn)是散列表,因此它內(nèi)部存儲(chǔ)的元素是無序的;TreeMap的底層實(shí)現(xiàn)是紅黑樹,所以它內(nèi)部的元素的有序的。排序的依據(jù)是自然序或者是創(chuàng)建TreeMap時(shí)所提供的比較器(Comparator)對象。LinkedHashMap可以看作能夠記住插入元素的順序的HashMap。13.Collection與Collections的區(qū)別是什么?Collection是Java集合框架中的基本接口;Collections是Java集合框架提供的一個(gè)工具類,其中包含了大量用于操作或返回集合的靜態(tài)方法。14.對于“try-catch-finally”,若try語句塊中包含“return”語句,finally語句塊會(huì)執(zhí)行嗎?會(huì)執(zhí)行。只有兩種情況finally塊中的語句不會(huì)被執(zhí)行:調(diào)用了System.exit方法;JVM“崩潰”了。15.Java中的異常層次結(jié)構(gòu)Java中的異常層次結(jié)構(gòu)如下圖所示:我
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025吉林銀行總行派駐四平審計(jì)分部現(xiàn)場審計(jì)中心副經(jīng)理社會(huì)招聘1人考前自測高頻考點(diǎn)模擬試題及1套完整答案詳解
- 2025廣東省生物制品與藥物研究所招聘12人考前自測高頻考點(diǎn)模擬試題及答案詳解(名師系列)
- 2025年河北承德平泉市公開招聘社區(qū)工作者97人模擬試卷及參考答案詳解
- 2025年滁州市揚(yáng)子工投集團(tuán)子公司社會(huì)招聘2人考前自測高頻考點(diǎn)模擬試題有答案詳解
- 2025年泉州泉港區(qū)部分公辦學(xué)校專項(xiàng)招聘編制內(nèi)新任教師(二)模擬試卷及答案詳解(考點(diǎn)梳理)
- 2025年4月重慶醫(yī)科大學(xué)附屬第三醫(yī)院招聘醫(yī)師、醫(yī)技、護(hù)理、行政、其他崗位考前自測高頻考點(diǎn)模擬試題及答案詳解(歷年真題)
- 2025北京大學(xué)醫(yī)學(xué)部總務(wù)處房地產(chǎn)管理中心宿舍管理員的招聘2人考前自測高頻考點(diǎn)模擬試題及答案詳解(網(wǎng)校專用)
- 2025貴州遵義市住房和城鄉(xiāng)建設(shè)局選調(diào)所屬事業(yè)單位工作人員考前自測高頻考點(diǎn)模擬試題及答案詳解(必刷)
- 2025年福建省莆田市湄洲灣北岸經(jīng)濟(jì)開發(fā)區(qū)國發(fā)投資有限公司招聘6人考前自測高頻考點(diǎn)模擬試題及答案詳解(全優(yōu))
- 2025江蘇南通市通州區(qū)教育體育系統(tǒng)招聘教師45人模擬試卷含答案詳解
- 浙江省強(qiáng)基聯(lián)盟2025-2026學(xué)年高三上學(xué)期10月聯(lián)考英語試題(含答案)
- 智慧校園XXX學(xué)院總體解決方案
- 2025-2026學(xué)年人教版(2024)七年級上學(xué)期第一次月考英語試題(含答案無聽力原文及音頻)
- 2025年大學(xué)實(shí)驗(yàn)室安全知識試題及答案
- 商場品牌引進(jìn)
- ICEEMDAN與優(yōu)化LSSVM結(jié)合的大壩變形預(yù)測模型研究
- 鋼結(jié)構(gòu)施工工藝指導(dǎo)手冊
- 人工智能技術(shù)及應(yīng)用 第2版 習(xí)題及答案
- 新編民航乘務(wù)員英語教程 課件 李勇 Unit 1 Briefing -Unit 8 meal and beverage service I
- 第二部分壓裂材料
- GB/T 10416-2007農(nóng)業(yè)機(jī)械環(huán)形變速V帶及帶輪輪槽截面
評論
0/150
提交評論