欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Java學(xué)習筆記
Java學(xué)習筆記 - 基礎篇 一、面向對象的編程概念觀(guān)察現實(shí)對象兩個(gè)性質(zhì):狀態(tài)、行為。面向對象的好處:模塊化、隱藏信息。繼承:子類(lèi)從父類(lèi)(超類(lèi))繼承狀態(tài)和行為;子類(lèi)可以改變父類(lèi)的狀態(tài)和行為。接口:是無(wú)關(guān)對象用來(lái)進(jìn)行彼此交互的設備;一個(gè)對象可以實(shí)現多個(gè)接口。二、語(yǔ)言基礎變量對象將它的狀態(tài)存儲在變量中;變量是一個(gè)由標識符命名的數據項。聲明變量的形式:<類(lèi)型> <名稱(chēng)>JAVA語(yǔ)言?xún)纱髷祿?lèi)型原始類(lèi)型數據(基本數據類(lèi)型)、引用類(lèi)型。原始類(lèi)型數據是不能再分解的數據類(lèi)型(8種:byte、short、int、long、float、double、char、boolean),數據在作為函數參數是以“傳值”方式工作的;整數 byte:1字節長(cháng)的整數;8位有符號的二進(jìn)制補碼整數 short:短整數;16位有符號的二進(jìn)制補碼整數 int:整數;32位有符號的二進(jìn)制補碼整數 long:長(cháng)整數;64位有符號的二進(jìn)制補碼整數實(shí)數 flat:?jiǎn)尉雀↑c(diǎn)數;32位IEEE 754浮點(diǎn)數 double:雙精度浮點(diǎn)數;64位IEEE 754浮點(diǎn)數其他類(lèi)型 char:?jiǎn)我籙nicode字符;16位Unicode字符 boolean:布爾值(true或false);8位/1位(8位空間,1位數據) 引用類(lèi)型包括類(lèi)(class)、接口(interface)、數組(array)。引用類(lèi)型有時(shí)也稱(chēng)復合類(lèi)型,它是可以分解為基本類(lèi)型的數據類(lèi)型,其數據在作為函數參數時(shí)是以“傳址”的方式工作的。與原始類(lèi)型相對,引用類(lèi)型變量的值是對由此變量代表的一個(gè)值或一組值的引用(也就是地址)。如:原始類(lèi)型 int a = 3; //“a”表示變量名稱(chēng),“3”表示變量值;如果寫(xiě)成“final int a = 3;”,“final”表示不可改變值,所以這里的3(變量值)不可變引用類(lèi)型 Staing b = "Hello Java"; //“b”表示引用名稱(chēng),“Hello Java”表示字浮串數組流程控制語(yǔ)句循環(huán) while、do - while、for判斷 if - else、switch - case異常處理 try – catch – finally、throw分支 break、continue、label :、return循環(huán):while和do – while語(yǔ)句:While語(yǔ)句用于在條件保持為true時(shí)反復執行一個(gè)代碼塊;do – while語(yǔ)句的代碼塊中的語(yǔ)句至少被執行一次。for語(yǔ)句:for語(yǔ)句提供一種迭代某個(gè)范圍內的值的緊湊方式。判斷:if – else 語(yǔ)句:if語(yǔ)句使程序能夠根據某些條件有選擇地執行其他語(yǔ)句;switch語(yǔ)句用于根據一個(gè)整數表達式有條件的執行語(yǔ)句;注意:必須要有明確的break語(yǔ)句,否則,流程控制將一個(gè)接一個(gè)的經(jīng)過(guò)后面的case語(yǔ)句比較if語(yǔ)句和switch語(yǔ)句(if語(yǔ)句可以用于根據某范圍的值或條件進(jìn)行判斷;switch語(yǔ)句只用于根據單個(gè)整數值進(jìn)行判斷)。異常處理語(yǔ)句:當程序發(fā)生錯誤時(shí),程序會(huì )拋出一個(gè)異常,程序的正常流程被中斷;分支語(yǔ)句:break、continue語(yǔ)句可以和標簽語(yǔ)句一起使用,也可以沒(méi)有標簽;標簽是放在一個(gè)語(yǔ)句前的標識符,標識符后跟一個(gè)冒號;continue 語(yǔ)句:continue語(yǔ)句用于跳過(guò)for、while、do – while循環(huán)的當前迭代;return 語(yǔ)句:返回一個(gè)值;不返回值。三、對象基礎和簡(jiǎn)單數據結構創(chuàng )建對象:聲明一個(gè)變量來(lái)引用變量;對對象進(jìn)行實(shí)例化(構造器);用new操作符和構造器從類(lèi)創(chuàng )建對象。兩種方式使用一個(gè)對象:引用一個(gè)對象的變量;調用對象的方法。字符和字符串JAVA平臺包含三個(gè)用于處理字符數據的類(lèi):Character:包含單個(gè)字符值;定義了一些可用于操作和檢查單字符數據的方法(Character類(lèi)的對象實(shí)例包含單個(gè)字符值,可用Character對象替代基本類(lèi)型char)。String:這個(gè)類(lèi)用于處理由多個(gè)字符組成的不可改變的數據。StringBuffer:存儲和操作由多個(gè)字符組成的可改變的數據。字符串和字符串緩沖區String:不能改變自身的值。StringBuffer:用于將被修改的字符串。得到字符串或字符串緩沖區的長(cháng)度length方法:返回字符串或字符串緩沖區中包含的字符數。capacity方法:StringBuffer特有;返回分配給字符串緩沖區的空間量,而不是被使用的空間量。String類(lèi)沒(méi)有capacity方法,因為字符串不能改變。通過(guò)索引從字符串或字符串緩沖區得到字符charAt(int)方法:得到字符串或字符串緩沖區某索引位置上的字符。注意:第一個(gè)字符串的索引為0;最后一個(gè)字符的索引為length – 1;subString(int), subString(int,int):從字符串或字符串緩沖區中得到多個(gè)字符。在字符串中搜索字符或子字符串String類(lèi)提供了兩個(gè)訪(fǎng)問(wèn)器方法:indexOf 方法從字符串的開(kāi)頭向前搜索;lastIndexOf 方法從字符串的末尾向后搜索;StringBuffer類(lèi)不支持indexOf和lastIndexOf方法。操作字符串String類(lèi)有幾個(gè)方法看起來(lái)可以修改字符串。當然,字符串是不能被修改的,所以,這些方法實(shí)際上是創(chuàng )建并返回包含結果的另一個(gè)字符串。修改字符串緩沖字符串緩沖是可以修改的,StingBuffer提供了幾個(gè)用于修改字符串緩沖區的數據的方法;如果修改字符串緩沖區的操作造成字符串緩沖區的大小超出它的當前容量,那么字符串緩沖區會(huì )自動(dòng)分配更多的內存。字符串和編譯器編譯器在很多地方自動(dòng)的使用String和StringBuffer類(lèi)來(lái)處理字符串直接值和字符串連接;編譯器為它遇到的每個(gè)字符串直接值自動(dòng)創(chuàng )建一個(gè)新的String對象;可以使用+操作符連接字符串。四、類(lèi)和繼承實(shí)現繼承:extends關(guān)鍵字為類(lèi)提供構造器構造器用于初始化類(lèi)的新對象:構造器不是方法,沒(méi)有返回類(lèi)型;構造器的聲明中可以使用以下訪(fǎng)問(wèn)說(shuō)明符:– private– protected– public– 無(wú)說(shuō)明符將信息傳遞給方法或構造器參數類(lèi)型;參數名稱(chēng);按值傳遞:參數是原始類(lèi)型,方法不能改變其值;參數是引用類(lèi)型,方法不能改變其引用,但可以改變引用對象的值。從方法返回值在方法聲明中聲明方法的返回類(lèi)型;eturn語(yǔ)句返回值的數據類(lèi)型必須匹配方法聲明的返回類(lèi)型;方法可以返回原始類(lèi)型,也可以返回引用類(lèi)型。使用this關(guān)鍵字在實(shí)例方法或構造器中,this引用當前對象,也就是被調用的方法或構造器所屬的對象;在構造器中,還可以使用this關(guān)鍵字調用相同類(lèi)中的另一個(gè)構造器??刂茖︻?lèi)成員的訪(fǎng)問(wèn)訪(fǎng)問(wèn)說(shuō)明符決定其他類(lèi)是否可以使用某個(gè)成員或調用某個(gè)方法。Java編程語(yǔ)言支持四種用于成員變量和方法的訪(fǎng)問(wèn)級別:private、protected、public和(如果沒(méi)有指定)package。訪(fǎng)問(wèn)級別Private:類(lèi)無(wú)說(shuō)明符:類(lèi)、包Protected:類(lèi)、包、子類(lèi)Public:類(lèi)、包、子類(lèi)、所有類(lèi)實(shí)例和類(lèi)成員的初始化可以在聲明的同時(shí)進(jìn)行初始化,但是有一些限制:– 必須以一個(gè)賦值語(yǔ)句表達初始化方式– 初始化表達式不能調用任何被聲明為拋出非運行時(shí)異常的方法– 如果初始化表達式調用一個(gè)拋出運行時(shí)異常的方法,那么它不能進(jìn)行錯誤恢復使用靜態(tài)初始化塊初始化類(lèi)成員;實(shí)例成員的初始化。覆蓋和隱藏方法覆蓋(override)(實(shí)例方法):– 子類(lèi)中的 個(gè)實(shí)例方法與超類(lèi)中的實(shí)例方法具有相同的標記和返回類(lèi)型– 方法的標記:名稱(chēng),參數數量、參數類(lèi)型– 覆蓋方法可以具有不同的throws子句– 覆蓋方法的訪(fǎng)問(wèn)說(shuō)明符允許訪(fǎng)問(wèn)限制只能比被覆蓋方法的多– 子類(lèi)不能覆蓋超類(lèi)中聲明為final的方法– 子類(lèi)必須覆蓋超類(lèi)中聲明為abstract的方法,否則子類(lèi)本身必須是抽象的覆蓋和重載(overload);覆蓋和隱藏(類(lèi)方法)。隱藏成員變量在類(lèi)中,如果一個(gè)成員變量與超類(lèi)中的成員變量同名(即使它們的類(lèi)型不同),那么它隱藏超類(lèi)成員變量;在子類(lèi)中,不能通過(guò)簡(jiǎn)單名稱(chēng)引用超類(lèi)中的成員變量,而是必須通過(guò)super訪(fǎng)問(wèn)它;代碼可讀性差,不建議隱藏成員變量。使用super使用super調用被覆蓋的方法;使用super調用被隱藏的成員變量;使用super在構造器中調用超類(lèi)的構造器。使用Object的后代每個(gè)類(lèi)都是Object類(lèi)的直接后代或間接后代;Object類(lèi)定義了所有類(lèi)都必須有的基本狀態(tài)和行為:– clone– equals和hashCode– finalize– toString– getClass– notify、notifyAll和wait編寫(xiě)final類(lèi)和方法將類(lèi)聲明為final,即類(lèi)不能被子類(lèi)化:– 通過(guò)防止系統被改版來(lái)提高系統的安全性– 出于設計上的原因,某些類(lèi)不需要子類(lèi)final方法:– 在方法聲明中使用final關(guān)鍵字表示這個(gè)方法不能被子類(lèi)覆蓋編寫(xiě)抽象類(lèi)和方法抽象類(lèi):– 表示一個(gè)抽象的概念,不應該被實(shí)例化– abstract關(guān)鍵字抽象方法:– 沒(méi)有實(shí)現的方法,允許子類(lèi)提供這些方法的實(shí)現細節– 如果抽象類(lèi)只包含抽象方法,那么它應該被定義成接口創(chuàng )建類(lèi)的小結 類(lèi)的定義有兩個(gè)部分:– 類(lèi)聲明– 類(lèi)體:成員變量、方法、構造器訪(fǎng)問(wèn)說(shuō)明符——控制對成員變量和方法的訪(fǎng)問(wèn)方式;類(lèi)變量、類(lèi)方法,static方法關(guān)鍵字實(shí)例成員、實(shí)例方法五、接口和包實(shí)現接口:implements關(guān)鍵字類(lèi)可以實(shí)現多個(gè)接口,implements關(guān)鍵字后面跟以逗號分隔的接口列表;如果有extends關(guān)鍵字,implements子句應該在extends子句的后面;類(lèi)要么必需實(shí)現接口及其超接口中的所有方法,要么類(lèi)必須被聲明為抽象的;類(lèi)中的方法標記(名稱(chēng)和參數列表)必須匹配接口中的方法標記。將接口作為類(lèi)型使用在定義了一個(gè)新接口是,就是在定義一個(gè)新的引用數據類(lèi)型;定義可一用接口,實(shí)例化是必須用類(lèi)。接口不能改變從語(yǔ)法的角度看,接口可以被改變;從設計的角度看,一個(gè)已經(jīng)在系統中被廣泛使用的接口,不能輕易被改變;如果改變了接口,實(shí)現原接口的類(lèi)都將無(wú)法工作;應該盡可能的考慮接口所提供的方法;如果要改變接口,用繼承的方式定義新的接口。接口小結接口定義了一種功能描述,定義了對象之間進(jìn)行通訊的協(xié)議;接口定義由接口聲明和接口體組成;接口包含一組方法的聲明,但沒(méi)有方法的實(shí)現;實(shí)現接口的類(lèi)必須實(shí)現接口中聲明的所有方法;接口名稱(chēng)可以作為數據類(lèi)型使用。創(chuàng )建和使用包創(chuàng )建包:– 將package語(yǔ)句作為類(lèi)或接口源代碼文件中的第一條語(yǔ)句– 類(lèi)或接口的源代碼和類(lèi)文件的路徑名與包的名稱(chēng)相對應使用另一個(gè)包中的接口或類(lèi):– 類(lèi)或接口的限定名– 導入類(lèi)或接口– 導入類(lèi)或接口所在的整個(gè)包六、使用異常處理錯誤什么是異常:異常(exception)是在程序執行期間中斷指令的正常流程的事件。try塊try { statements}statements是包含一個(gè)或多個(gè)可能拋出異常的語(yǔ)句。catch塊每個(gè)catch塊是一個(gè)異常處理器,它處理由其參數指定的異常類(lèi)型try{ ......} catch(ExceptionType name) { ……} catch (ExceptionType name) { ……}finally塊finally塊是可選的,它提供一種機制,其目的是無(wú)論try塊中是否發(fā)生異常都確保進(jìn)行清理工作;無(wú)論是否發(fā)生異常,都會(huì )執行finally塊中的代碼。throw語(yǔ)句throw語(yǔ)句需要一個(gè)參數:一個(gè)可拋出的(Throwable)對象;可拋出對象是Throwable類(lèi)的子類(lèi)。Throwable類(lèi)及其子類(lèi)Throwable類(lèi)有兩個(gè)直接子類(lèi):– Error– ExceptionError:– JAVA虛擬機的動(dòng)態(tài)鏈接故障或其它“硬”故障,一般的程序不應該捕獲Error,也不能拋出ErrorException:大多數程序拋出并捕獲從Exception類(lèi)派生的對象。Exception表示發(fā)生了一個(gè)問(wèn)題,但并不是嚴重的系統問(wèn)題。你寫(xiě)的多數程序將拋出并捕獲Exception(而不是Error)。– Exception表示發(fā)生了一個(gè)問(wèn)題,但并不是嚴重的系統問(wèn)題– Exception的不同子類(lèi)表示可能發(fā)生的各種異常異常的優(yōu)點(diǎn):將錯誤代碼與“常規”代碼分離;將錯誤沿調用堆棧向上傳遞;對錯誤類(lèi)型進(jìn)行分組和區分。異常的小結程序可以使用異常表明發(fā)生了錯誤;程序可以使用throw語(yǔ)句拋出異常;異常是一個(gè)對象(Throwable的子類(lèi));程序可以使用try、catch語(yǔ)句finally來(lái)捕獲異常:– try語(yǔ)句標識出可能發(fā)生的異常– catch語(yǔ)句標識出異常處理器– finally代碼塊不論拋出異常與否都會(huì )被執行,適用于清理工作七、線(xiàn)程:同時(shí)執行多個(gè)任務(wù)只要用到線(xiàn)程就必須繼承或接口:Thread。只要用到線(xiàn)程就必須要用run方法。什么是線(xiàn)程:– 線(xiàn)程是程序內的一個(gè)單一的順序控制流程– 線(xiàn)程本身不是程序,不能單獨運行,它在一個(gè)程序內運行– 多個(gè)線(xiàn)程可以同時(shí)運行,在一個(gè)程序內執行不同的任務(wù)定制線(xiàn)程的run方法run方法執行線(xiàn)程的工作;run方法實(shí)現了線(xiàn)程的運行行為;run方法可以做任何可以用語(yǔ)句實(shí)現的事。為線(xiàn)程提供run方法:– 繼承Thread類(lèi),并覆蓋run方法– 實(shí)現Runnable接口對Thread類(lèi)進(jìn)行子類(lèi)化和覆蓋runpublic class SimpleThread extends Thread { public SimpleThread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { system.out.println(i + " " + getname()); try { sleep((long)(math.random() * 1000)); } catch (interruptedexception e) {} } system.out.println("done! " + getname()); }}實(shí)現runnable接口:如果一個(gè)類(lèi)已經(jīng)繼承了另一個(gè)類(lèi),那么要想實(shí)現線(xiàn)程就必須實(shí)現runnable接口。在線(xiàn)程中結果是隨機產(chǎn)生的,如果想鎖定對象就要使用synchronized關(guān)鍵字意思為鎖定方法所有在的對象。在對象被解鎖前,其他線(xiàn)程不能調用相同對象上的被同步的方法。意思為執行一個(gè)對象后激活另一個(gè)對象,自身暫時(shí)睡眠,等待另一個(gè)對象執行完畢,在執行下一步,反復如此。八、io:讀和寫(xiě)如何使用管道流:管道用于將一個(gè)線(xiàn)程的輸出連接到另一個(gè)線(xiàn)程的輸入如何封裝流:流經(jīng)常被以下的這種形式封裝起來(lái),以便組合許多流的各種功能對象的串行化:java.io包中的兩個(gè)流——objectinputstream和objectoutputstream是字節流,他們的工作與其他輸入和輸出流類(lèi)似。但他們的特殊之處在于它們可以讀寫(xiě)對象。對對象進(jìn)行串行化:如果將一個(gè)不能串行化的對象傳遞給writeobject方法,那么它拋出一個(gè)notserializable exception。對象只能在它的類(lèi)實(shí)現了serializable接口的情況下被串行化。為類(lèi)提供對象串行化:只有在對象的類(lèi)實(shí)現了serializable接口情況下,對象才是可串行化的。所有,如果想要對你的類(lèi)的實(shí)例進(jìn)串行化,這個(gè)類(lèi)必須實(shí)現serializable接口。serializable接口是一個(gè)空接口,也就是說(shuō),他不包含任何方法聲明;它的作用只是表明這個(gè)類(lèi)的對象可以被串行化。i/o復制小程序(copy.java),如下:import java.io.file;import java.io.filereader;import java.io.filewriter;import java.io.ioexception;//以上是此程序用到的io類(lèi)的包,也可以用“import java.io.*”public class copy { public static void main(string[] args) throws ioexception {file inputfile = new file("d:\\temp\\helloworld.java"); //目標文件路徑,java中路徑地址只能用“\\”或“/”不能使用“\”file outputfile = new file("d:\\temp\\outagain.java"); //復制后新文件保存路徑 filereader in = new filereader(inputfile); filewriter out = new filewriter(outputfile); int c; while ((c = in.read()) != -1) //一直循環(huán)到0表示已經(jīng)復制完畢,所以這里使用不等于負1 out.write(c); in.close(); //關(guān)閉讀文件對象 out.close(); //關(guān)閉寫(xiě)文件對象 }凡是有該標志的文章,都是該blog博主caoer(草兒)原創(chuàng ),凡是索引、收藏、轉載請注明來(lái)處和原文作者。非常感謝。 10;="" i++)="" {="" system.out.println(i="" +="" "="" "="" +="" getname());="" try="" {="" sleep((long)(math.random()="" *="" 1000));="" }="" catch="" (interruptedexception="" e)="" {}="" }="" system.out.println("done!="" "="" +="" getname());="" }}實(shí)現runnable接口:如果一個(gè)類(lèi)已經(jīng)繼承了另一個(gè)類(lèi),那么要想實(shí)現線(xiàn)程就必須實(shí)現runnable接口。在線(xiàn)程中結果是隨機產(chǎn)生的,如果想鎖定對象就要使用synchronized關(guān)鍵字意思為鎖定方法所有在的對象。在對象被解鎖前,其他線(xiàn)程不能調用相同對象上的被同步的方法。意思為執行一個(gè)對象后激活另一個(gè)對象,自身暫時(shí)睡眠,等待另一個(gè)對象執行完畢,在執行下一步,反復如此。八、io:讀和寫(xiě)如何使用管道流:管道用于將一個(gè)線(xiàn)程的輸出連接到另一個(gè)線(xiàn)程的輸入如何封裝流:流經(jīng)常被以下的這種形式封裝起來(lái),以便組合許多流的各種功能對象的串行化:java.io包中的兩個(gè)流——objectinputstream和objectoutputstream是字節流,他們的工作與其他輸入和輸出流類(lèi)似。但他們的特殊之處在于它們可以讀寫(xiě)對象。對對象進(jìn)行串行化:如果將一個(gè)不能串行化的對象傳遞給writeobject方法,那么它拋出一個(gè)notserializable="" exception。對象只能在它的類(lèi)實(shí)現了serializable接口的情況下被串行化。為類(lèi)提供對象串行化:只有在對象的類(lèi)實(shí)現了serializable接口情況下,對象才是可串行化的。所有,如果想要對你的類(lèi)的實(shí)例進(jìn)串行化,這個(gè)類(lèi)必須實(shí)現serializable接口。serializable接口是一個(gè)空接口,也就是說(shuō),他不包含任何方法聲明;它的作用只是表明這個(gè)類(lèi)的對象可以被串行化。i/o復制小程序(copy.java),如下:import="" java.io.file;import="" java.io.filereader;import="" java.io.filewriter;import="" java.io.ioexception;//以上是此程序用到的io類(lèi)的包,也可以用“import="" java.io.*”public="" class="" copy="" {="" public="" static="" void="" main(string[]="" args)="" throws="" ioexception="" {file="" inputfile="new" file("d:\\temp\\helloworld.java");="" 目標文件路徑,java中路徑地址只能用“\\”或“/”不能使用“\”file="" outputfile="new" file("d:\\temp\\outagain.java");="" 復制后新文件保存路徑="" filereader="" in="new" filereader(inputfile);="" filewriter="" out="new" filewriter(outputfile);="" int="" c;="" while="" ((c="in.read())" !="-1)" 一直循環(huán)到0表示已經(jīng)復制完畢,所以這里使用不等于負1="" out.write(c);="" in.close();="" 關(guān)閉讀文件對象="" out.close();="" 關(guān)閉寫(xiě)文件對象="">
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
java總結
一天快速入門(mén)python
Java基礎
JAVA
Java語(yǔ)言程序設計基礎Java知識點(diǎn)串講課件ppt
Java必備基礎知識點(diǎn)(超全)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久