第2章 一切都是對象2.1 用句柄操縱對象2.2 必須創(chuàng )建所有對象2.2.1 保存在什么地方2.2.2 特殊情況:主類(lèi)型2.2.3 Java中的數組2.3 絕對不要清除對象2.3.1 作用域2.3.2 對象的作用域2.4 新建數據類(lèi)型:類(lèi)2.4.1 字段和方法2.5 方法、自變量和返回值2.5.1 自變量列表2.6 構建Java程序2.6.1 名字的可見(jiàn)性2.6.2 使用其他組件2.6.3 static關(guān)鍵字2.7 我們的第一個(gè)Java程序2.8 注釋和嵌入文檔2.8.1 注釋文檔2.8.2 具體語(yǔ)法2.8.3 嵌入HTML2.8.4 @see:引用其他類(lèi)2.8.5 類(lèi)文檔標記2.8.6 變量文檔標記2.8.7 方法文檔標記2.8.8 文檔示例2.9 編碼樣式2.10 總結2.11 練習 第3章 控制程序流程3.1 使用Java運算符3.1.1 優(yōu)先級3.1.2 賦值3.1.3 算術(shù)運算符3.1.4 自動(dòng)遞增和遞減3.1.5 關(guān)系運算符3.1.6 邏輯運算符3.1.7 按位運算符3.1.8 移位運算符3.1.9 三元if-else運算符3.1.10 逗號運算符3.1.11 字串運算符+3.1.12 運算符常規操作規則3.1.13 造型運算符3.1.14 Java沒(méi)有“sizeof”3.1.15 復習計算順序3.1.16 運算符總結3.2 執行控制3.2.1 真和假3.2.2 if-else3.2.3 反復3.2.4 do-while3.2.5 for3.2.6 中斷和繼續3.2.7 切換3.3 總結3.4 練習 第4章 初始化和清除4.1 由構建器保證初始化4.2 方法過(guò)載4.2.1 區分過(guò)載方法4.2.2 主類(lèi)型的過(guò)載4.2.3 返回值過(guò)載4.2.4 默認構建器4.2.5 this關(guān)鍵字4.3 清除:收尾和垃圾收集4.3.1 finalize()用途何在4.3.2 必須執行清除4.4 成員初始化4.4.1 規定初始化4.4.2 構建器初始化4.5 數組初始化4.5.1 多維數組4.6 總結4.7 練習 第5章 隱藏實(shí)施過(guò)程5.1 包:庫單元5.1.1 創(chuàng )建獨一無(wú)二的包名5.1.2 自定義工具庫5.1.3 利用導入改變行為5.1.4 包的停用5.2 Java訪(fǎng)問(wèn)指示符5.2.1 “友好的”5.2.2 public:接口訪(fǎng)問(wèn)5.2.3 private:不能接觸5.2.4 protected:“友好的一種”5.3 接口與實(shí)現5.4 類(lèi)訪(fǎng)問(wèn)5.5 總結5.6 練習 第6章 類(lèi)再生6.1 合成的語(yǔ)法6.2 繼承的語(yǔ)法6.2.1 初始化基礎類(lèi)6.3 合成與繼承的結合6.3.1 確保正確的清除6.3.2 名字的隱藏6.4 到底選擇合成還是繼承6.5 protected6.6 遞增開(kāi)發(fā)6.7 上溯造型6.7.1 何謂“上溯造型”?6.8 final關(guān)鍵字6.8.1 final數據6.8.2 final方法6.8.3 final類(lèi)6.8.4 final的注意事項6.9 初始化和類(lèi)裝載6.9.1 繼承初始化6.10 總結6.11 練習 第7章 多形性7.1 上溯造型7.1.1 為什么要上溯造型7.2 深入理解7.2.1 方法調用的綁定7.2.2 產(chǎn)生正確的行為7.2.3 擴展性7.3 覆蓋與過(guò)載7.4 抽象類(lèi)和方法7.5 接口7.5.1 Java的“多重繼承”7.5.2 通過(guò)繼承擴展接口7.5.3 常數分組7.5.4 初始化接口中的字段7.6 內部類(lèi)7.6.1 內部類(lèi)和上溯造型7.6.2 方法和作用域中的內部類(lèi)7.6.3 鏈接到外部類(lèi)7.6.4 static內部類(lèi)7.6.5 引用外部類(lèi)對象7.6.6 從內部類(lèi)繼承7.6.7 內部類(lèi)可以覆蓋嗎?7.6.8 內部類(lèi)標識符7.6.9 為什么要用內部類(lèi):控制框架7.7 構建器和多形性7.7.1 構建器的調用順序7.7.2 繼承和finalize()7.7.3 構建器內部的多形性方法的行為7.8 通過(guò)繼承進(jìn)行設計7.8.1 純繼承與擴展7.8.2 下溯造型與運行期類(lèi)型標識7.9 總結7.10 練習 第8章 對象的容納8.1 數組8.1.1 數組和第一類(lèi)對象8.1.2 數組的返回8.2 集合8.2.1 缺點(diǎn):類(lèi)型未知8.3 枚舉器(反復器)8.4 集合的類(lèi)型8.4.1 Vector8.4.2 BitSet8.4.3 Stack8.4.4 Hashtable8.4.5 再論枚舉器8.5 排序8.6 通用集合庫8.7 新集合8.7.1 使用Collections8.7.2 使用Lists8.7.3 使用Sets8.7.4 使用Maps8.7.5 決定實(shí)施方案8.7.6 未支持的操作8.7.7 排序和搜索8.7.8 實(shí)用工具8.8 總結8.9 練習 第9章 違例差錯控制9.1 基本違例9.1.1 違例自變量9.2 違例的捕獲9.2.1 try塊9.2.2 違例控制器9.2.3 違例規范9.2.4 捕獲所有違例9.2.5 重新“擲”出違例9.3 標準Java違例9.3.1 RuntimeException的特殊情況9.4 創(chuàng )建自己的違例9.5 違例的限制9.6 用finally清除9.6.1 用finally做什么9.6.2 缺點(diǎn):丟失的違例9.7 構建器9.8 違例匹配9.8.1 違例準則9.9 總結9.10 練習 第10章 Java IO系統10.1 輸入和輸出10.1.1 InputStream的類(lèi)型10.1.2 OutputStream的類(lèi)型10.2 增添屬性和有用的接口10.2.1 通過(guò)FilterInputStream從InputStream里讀入數據10.2.2 通過(guò)FilterOutputStream向OutputStream里寫(xiě)入數據10.3 本身的缺陷:RandomAccessFile10.4 File類(lèi)10.4.1 目錄列表器10.4.2 檢查與創(chuàng )建目錄10.5 IO流的典型應用10.5.1 輸入流10.5.2 輸出流10.5.3 快捷文件處理10.5.4 從標準輸入中讀取數據10.5.5 管道數據流10.6 StreamTokenizer10.6.1 StringTokenizer10.7 Java 1.1的IO流10.7.1 數據的發(fā)起與接收10.7.2 修改數據流的行為10.7.3 未改變的類(lèi)10.7.4 一個(gè)例子10.7.5 重定向標準IO10.8 壓縮10.8.1 用GZIP進(jìn)行簡(jiǎn)單壓縮10.8.2 用Zip進(jìn)行多文件保存10.8.3 Java歸檔(jar)實(shí)用程序10.9 對象串聯(lián)10.9.1 尋找類(lèi)10.9.2 序列化的控制10.9.3 利用“持久性”10.10 總結10.11 練習 第11章 運行期類(lèi)型鑒定11.1 對RTTI的需要11.1.1 Class對象11.1.2 造型前的檢查11.2 RTTI語(yǔ)法11.3 反射:運行期類(lèi)信息11.3.1 一個(gè)類(lèi)方法提取器11.4 總結11.5 練習 第12章 傳遞和返回對象12.1 傳遞句柄12.1.1 別名問(wèn)題12.2 制作本地副本12.2.1 按值傳遞12.2.2 克隆對象12.2.3 使類(lèi)具有克隆能力12.2.4 成功的克隆12.2.5 Object.clone()的效果12.2.6 克隆合成對象12.2.7 用Vector進(jìn)行深層復制12.2.8 通過(guò)序。
import java.io.IOException;import java.io.InputStream;public class Years{public static void main(String[] areg) throws IOException{System.out.println("請輸入年份,是判斷是否是閏年,輸入字母會(huì )報錯");InputStream in=System.in;int i=0;byte[] b=new byte[1024];i=in.read(b)-2;Integer inte=new Integer(new String(b,0,i));System.out.println(years(inte.intValue()));}private static String years(int year) {if (year<=0) {return "輸入的年份不能為負數";}else if ((year%100 !=0 || year%400 == 0) && year%4==0) {return "今年是閏年";}else {return "今年不是閏年";}}}希望采納。
import java.util.Scanner;public class Point { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("請輸入學(xué)生的個(gè)數"); int stuNum = sc.nextInt(); double[] stuStore = new double[stuNum]; double sum = 0.00; for(int i = 0; i < stuNum; i++){ System.out.println("請輸入第" + ( i + 1 ) + "個(gè)學(xué)生的成績(jì):"); double store = sc.nextDouble(); stuStore[i] = store; sum = sum + store; } for(int i = 0; i < stuNum; i++){ for(int j = 1; j stuStore[j]){ double temp = stuStore[i]; stuStore[i] = stuStore[j]; stuStore[j] = temp; } } } System.out.println("最高成績(jì)?yōu)椋? + stuStore[stuNum - 1]); System.out.println("最低成績(jì)?yōu)椋? + stuStore[0]); System.out.println("平均成績(jì)?yōu)椋? + sum/stuNum); }}。
對于Java開(kāi)發(fā)學(xué)習者來(lái)說(shuō),基礎掌握的知識點(diǎn)有以下幾種:
1. Java面向對象的優(yōu)點(diǎn):易維護、易復用、易擴展,由于面向對象有封裝、繼承、多態(tài)性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易于維護。
2. Java虛擬機的概念,任何一種可以運行Java字節碼的軟件均可看成是Java的虛擬機(JVM)
3. JDK顧名思義它是給開(kāi)發(fā)者提供的開(kāi)發(fā)工具箱,是給程序開(kāi)發(fā)者用的。它除了包括完整的JRE(Java Runtime Environment),Java運行環(huán)境,還包含了其他供開(kāi)發(fā)者使用的工具包。
4. JRE的概念,普通用戶(hù)而只需要安裝JRE(Java Runtime Environment)來(lái)運行Java程序。而程序開(kāi)發(fā)者必須安裝JDK來(lái)編譯、調試程序。
5. Java中覆蓋(Override)是指子類(lèi)對父類(lèi)方法的一種重寫(xiě),子類(lèi)只能拋出比父類(lèi)更少的異常,且訪(fǎng)問(wèn)權限不能比父類(lèi)的小。被覆蓋的方法不能是 private 的,否則只是在子類(lèi)中重新定義了一個(gè)方法。
Java中重載(Overload)表示同一個(gè)類(lèi)中可以有多個(gè)名稱(chēng)相同的方法,但這些方法的參數列表各不相同。
import java.util.Scanner;
public class Point {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入學(xué)生的個(gè)數");
int stuNum = sc.nextInt();
double[] stuStore = new double[stuNum];
double sum = 0.00;
for(int i = 0; i stuStore[j]){
double temp = stuStore[i];
stuStore[i] = stuStore[j];
stuStore[j] = temp;
}
}
}
System.out.println("最高成績(jì)?yōu)椋? + stuStore[stuNum - 1]);
System.out.println("最低成績(jì)?yōu)椋? + stuStore[0]);
System.out.println("平均成績(jì)?yōu)椋? + sum/stuNum);
}
}
建議你看本書(shū)《Think in java》。上邊的講解很容易懂。
學(xué)java:
先把基本語(yǔ)法搞懂,你學(xué)過(guò)C++,java的語(yǔ)法和C++很像。你只要著(zhù)重把他們不同的地方學(xué)清楚就行。
然后搞懂類(lèi)。java純面向對象的。所有的代碼都在類(lèi)中。所以你要把java中重要的類(lèi)學(xué)一遍。比如流類(lèi),集合類(lèi),數據庫操作類(lèi),網(wǎng)絡(luò )編程的類(lèi)等。當然,在這之前你要把java面向對象的思想弄懂,和C++有什么區別。這樣你學(xué)習類(lèi)的時(shí)候就容易多了。
最后多實(shí)踐點(diǎn),學(xué)了類(lèi)之后,就用你學(xué)的類(lèi)寫(xiě)點(diǎn)小程序,加深理解。
API說(shuō)白了就是別人寫(xiě)好的類(lèi)。像上邊說(shuō)的流類(lèi),集合類(lèi)等都是API。API都有相應的文檔供我們學(xué)習。你學(xué)java基礎,一般在下載JDK時(shí)會(huì )同時(shí)下載下相應的文檔。沒(méi)有的話(huà)你可以到官方網(wǎng)站上去下載。
java語(yǔ)法基礎1,關(guān)鍵字:其實(shí)就是某種語(yǔ)言賦予了特殊含義的單詞。
保留字:其實(shí)就是還沒(méi)有賦予特殊含義,但是準備日后要使用過(guò)的單詞。2,標示符:其實(shí)就是在程序中自定義的名詞。
比如類(lèi)名,變量名,函數名。包含 0-9、a-z、$、_ ; 注意: 1),數字不可以開(kāi)頭。
2),不可以使用關(guān)鍵字。3,常量:是在程序中的不會(huì )變化的數據。
4,變量:其實(shí)就是內存中的一個(gè)存儲空間,用于存儲常量數據。 作用:方便于運算。
因為有些數據不確定。所以確定該數據的名詞和存儲空間。
特點(diǎn):變量空間可以重復使用。什么時(shí)候定義變量?只要是數據不確定的時(shí)候,就定義變量。
變量空間的開(kāi)辟需要什么要素呢? 1,這個(gè)空間要存儲什么數據?數據類(lèi)型。 2,這個(gè)空間叫什么名字啊?變量名稱(chēng)。
3,這個(gè)空間的第一次的數據是什么? 變量的初始化值。變量的作用域和生存期:變量的作用域: 作用域從變量定義的位置開(kāi)始,到該變量所在的那對大括號結束;生命周期: 變量從定義的位置開(kāi)始就在內存中活了; 變量到達它所在的作用域的時(shí)候就在內存中消失了;數據類(lèi)型: 1):基本數據類(lèi)型:byte、short、int、long、float、double、char、boolean 2):引用數據類(lèi)型: 數組、類(lèi)、接口。
級別從低到高為:byte,char,short(這三個(gè)平級)-->int-->float-->long-->double 自動(dòng)類(lèi)型轉換:從低級別到高級別,系統自動(dòng)轉的;強制類(lèi)型轉換:什么情況下使用?把一個(gè)高級別的數賦給一個(gè)別該數的級別低的變量;運算符號: 1)、算術(shù)運算符。 + - * / % %:任何整數模2不是0就是1,所以只要改變被模數就可以實(shí)現開(kāi)關(guān)運算。
+:連接符。 ++,-- 2)、賦值運算符。
= += -= *= /= %= 3)、比較運算符。 特點(diǎn):該運算符的特點(diǎn)是:運算完的結果,要么是true,要么是false。
4)、邏輯運算符。 & | ^ ! && || 邏輯運算符除了! 外都是用于連接兩個(gè)boolean類(lèi)型表達式。
&: 只有兩邊都為true結果是true。否則就是false。
|:只要兩邊都為false結果是false,否則就是true ^:異或:和或有點(diǎn)不一樣。 兩邊結果一樣,就為false。
兩邊結果不一樣,就為true. & 和 &&區別: & :無(wú)論左邊結果是什么,右邊都參與運算。 &&:短路與,如果左邊為false,那么右邊不參數與運算。
| 和|| 區別:|:兩邊都運算。 ||:短路或,如果左邊為true,那么右邊不參與運算。
5)、位運算符:用于操作二進(jìn)制位的運算符。 & | ^ <> >>>(無(wú)符號右移) 練習:對兩個(gè)變量的數據進(jìn)行互換。
不需要第三方變量。 int a = 3,b = 5;-->b = 3,a = 5; a = a + b; a =8; b = a - b; b =3;c a = a - b; a =5; a = a ^ b;// b = a ^ b;//b= a ^ b ^ b = a a = a ^ b;//a= a ^ b ^ a = b; 練習:高效的算出 2*8 ------------------> 位移運算的考驗,java基礎面試中它的曝光率不低哦5,語(yǔ)句。
If switch do while while for 這些語(yǔ)句什么時(shí)候用? 1)、當判斷固定個(gè)數的值的時(shí)候,可以使用if,也可以使用switch。 但是建議使用switch,效率相對較高。
switch(變量){ case 值:要執行的語(yǔ)句;break; … default:要執行的語(yǔ)句; } 工作原理:用小括號中的變量的值依次和case后面的值進(jìn)行對比,和哪個(gè)case后面的值相同了 就執行哪個(gè)case后面的語(yǔ)句,如果沒(méi)有相同的則執行default后面的語(yǔ)句;細節:1):break是可以省略的,如果省略了就一直執行到遇到break為止; 2):switch 后面的小括號中的變量應該是byte,char,short,int四種類(lèi)型中的一種; 3):default可以寫(xiě)在switch結構中的任意位置;如果將default語(yǔ)句放在了第一行,則不管expression與case中的value是否匹配,程序會(huì )從default開(kāi)始執行直到第一個(gè)break出現。 2)、當判斷數據范圍,獲取判斷運算結果boolean類(lèi)型時(shí),需要使用if。
3)、當某些語(yǔ)句需要執行很多次時(shí),就用循環(huán)結構。 while和for可以進(jìn)行互換。
區別在于:如果需要定義變量控制循環(huán)次數。建議使用for。
因為for循環(huán)完畢,變量在內存中釋放。break:作用于switch ,和循環(huán)語(yǔ)句,用于跳出,或者稱(chēng)為結束。
break語(yǔ)句單獨存在時(shí),下面不要定義其他語(yǔ)句,因為執行不到,編譯會(huì )失敗。當循環(huán)嵌套時(shí),break只跳出當前所在循環(huán)。
要跳出嵌套中的外部循環(huán),只要給循環(huán)起名字即可,這個(gè)名字稱(chēng)之為標號。代碼片段:z: //for循環(huán)標號 for(int x=0;x<3;x++){ for(int y=0;y<2;y++){ //不帶標號的就是結束整個(gè)循環(huán)體的作用,在那個(gè)循環(huán)內部就結束哪個(gè)循環(huán) if(x==1)break; //帶標號跳過(guò)break后面的語(yǔ)句,回到標號位置的循環(huán),繼續該循環(huán)下次的條件判斷, //已決定是否執行該循環(huán)體 if(x==2&&y==1)break z; } } continue:只作用于循環(huán)結構,繼續循環(huán)用的。
作用:結束本次循環(huán),繼續下次循環(huán)。該語(yǔ)句單獨存在時(shí),下面不可以定義語(yǔ)句,執行不到。
6,函 數:為了提高代碼的復用性,可以將其定義成一個(gè)單獨的功能,該功能的體現就是java中的函數。函數就是體現之一。
java中的函數的定義格式: 修飾符 返回值類(lèi)型 函數名(參數類(lèi)型 形式參數1,參數類(lèi)型 形式參數1,…){ 執行語(yǔ)句; return 返回值; } 當函數沒(méi)有具體的返回值時(shí),返回的返回值類(lèi)型用void關(guān)鍵字表示。如果函數的返回值類(lèi)型是void時(shí),return語(yǔ)句可以省略不寫(xiě)的,系統會(huì )幫你自動(dòng)加上。
return的作用:結束函數。結束功能。
如何。
一、先明白了解什么是Java的四個(gè)方面。
初學(xué)者先弄清這些Java的基本概念也是必不可少的,死記硬背肯定是不行的,重在理解,理解它們之間的區別,分別有哪些應用。想想這些代碼中用到了哪些知識點(diǎn)。
不要一味地照著(zhù)書(shū)本敲代碼。而不去理解。
要知道java是分兩部分的:一個(gè)是編譯,一個(gè)是運行。 二、掌握靜態(tài)方法和屬性 靜態(tài)方法和屬性用于描述某一類(lèi)對象群體的特征,而不是單個(gè)對象的特征。
Java中大量應用了靜態(tài)方法和屬性,這是一個(gè)通常的技巧。但是這種技巧在很多語(yǔ)言中不被頻繁地使用。
理解靜態(tài)方法和屬性對于理解類(lèi)與對象的關(guān)系是十分有幫助的,在大量的Java規范中,靜態(tài)方法和屬性被頻繁使用。 因此學(xué)習者應該理解靜態(tài)方法和屬性。
Java在方法和屬性的調用上是一致的,區別只表現在聲明的時(shí)候,這和c++是不同的。 三、初學(xué)者還需明白JAVA的三個(gè)技術(shù)平臺的關(guān)系。
Java分為三個(gè)體系,分別為Java SE JavaEE Java ME 要知道java是分兩部分的:一個(gè)是編譯,一個(gè)是運行。 。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:3.556秒