內容簡介
內容簡介 程式設計師在求職時,經常會被問到有關開發經驗的問題。例如,“從事多少年的開發?"、“參與了哪些大型專案?"……為何面試官對專案經驗豐富的求職者青睞有加?究其根源,是由於程式開發是一門實作性非常強的學科。程式設計經驗是程式開發者在長期的實作中逐步累積的、屬於自己的技術資源庫,其中包括各種習慣用法、知識理論、程式部分、應用技巧等。要想成為經驗豐富的程式設計高手,除了勤學苦練,也要學會站在前人的肩膀上,分析別人的程式而有所領悟,或者借鏡他人的經驗技巧形成自己的技能,在認識錯誤與解決問題中進步。這也是每個程式設計者的必經之路。 本書匯集了300 個一線開發人員常見的疑難問題,每個問題都列出詳細的解答與總結,圖文並茂、難易兼具。透過本書,讀者可以盡享前人的開發經驗,迅速提升個人的開發能力。 本書特色接近應用:精選的疑難問題都是在實際專案開發中經常會遇到的,目的就是為讀 者答疑解惑。解析透徹:對每個問題的相關知識都作了詳細講解,並進行知識拓展,使讀者不 僅知其然而且知其所以然。能力培養:講解技術的同時,還注重對讀者能力的培養,幫助其掌握分析問題與 解決問題的能力。本書內容第1 章 Java 語言概述1 Java 語言有哪些特性? 2 如何選擇Java 的分支? 3 如何學好Java 語言? 4 如何安裝JDK ? 5 如何測試JDK 是否設定成功? 第2 章 Eclipse 開發工具6 常用的Java 開發套件包括哪些? 7 如何獲得和安裝Eclipse 開發工具? 8 如何中文化Eclipse ? 9 如何為Eclipse 安裝WindowBuilder外掛程式? 10 如何使用WindowBuilder 外掛程式?第3 章 Java 語言基礎11 char 型態變數是否能儲存一個中文字? 12 Java 中是否有goto 敘述? 13 變數和常數有什麼區別? 14 敘述 float num = 3.14159 是否正確?15 short 和char 型態的取值範圍各是多少? 16 final 參數可以修改嗎? 17 區域變數可以定義私有修飾型態嗎?18 運算式3-2.6 == 0.4 的值是什麼?19 自增、自減運算元放在變數前後的區別是什麼?20 用最有效率的方法算出2 乘以16等於幾? 21 & 和&& 兩個運算元的區別是什麼? 22 運算元= 與== 有何區別? 23 能正確編譯“short s = 1;s = s + 1;"嗎? 24 運算式9 2 與9 2.0 的結果是否相等? 25 如何判斷一個整數是奇數還是偶數? 26 不使用迴圈和條件陳述式如何求1+2+…+n 的值? 27 複合設定運算元+= 計算的結果一定正確嗎? 28 兩個整數相乘的結果一定正確嗎? 29 如何使用位元運算符計算2 的n次冪? 30 如何自訂類別實現數值的四捨五入? 第4 章 流程控制31 如何應用if 敘述判斷某一年是否為閏年? 32 if 敘述如何進行嵌套使用?33 是否可以進行字元與編碼的比較? 34 如何修改失敗的if…else 敘述? 35 兩個if 敘述為什麼執行結果不一樣? 36 可以用switch 分支敘述代替if條件陳述式嗎? 37 switch 敘述的條件運算式有哪些型態? 38 如何防止switch 分支之間的串聯? 39 如何定義滿足條件的變數? 40 while 與do…while 敘述的區別是什麼? 41 為什麼會出現無窮迴圈? 42 無窮迴圈屬不屬於合法的迴圈? 43 如何確定是使用for 迴圈還是while 迴圈? 44 如何程式設計實現圖形輸出? 45 如何跳出目前的多重嵌套迴圈? 46 for 迴圈中定義的變數的作用範圍是什麼? 47 如何程式設計解決李白提壺買酒的問題? 48 如何程式設計計算黃蓉難倒瑛姑的數學題? 49 break 敘述和continue 敘述有什麼區別? 50 如何程式設計列印出7 行的巴斯卡三角?51 如何宣告和初始化陣列? 52 陣列元素預設的初值都是什麼? 53 如何獲得二維陣列的行、列數? 54 如何使用for 迴圈和簡易for 迴圈檢查一維陣列? 55 如何將陣列arr1 中的部分資料成員複製到陣列arr2 中? 56 如何獲得一維陣列中的最大值和最小值? 57 如何進行陣列尋找? 58 陣列的排序演算法有哪些?如何實現? 59 儲存相同資料量的一維陣列和二維陣列所占記憶體是否相同? 60 為什麼下面的程式會出現陣列索引越界例外? 第6 章 物件導向入門61 物件導向的特徵有哪些? 62 為什麼需要物件導向? 63 什麼是物件導向程式設計? 64 什麼是類別? 65 類別和物件的區別是什麼? 66 抽象類別與抽象方法有什麼作用? 67 如何設定類別成員存取權限? 68 建構方法有何作用? 69 什麼是方法重載? 70 如何定義類別的成員變數和方法?71 變數的作用範圍是什麼? 72 類別的成員變數和方法的命名標準是什麼? 73 只能透過建構方法建立物件嗎? 74 什麼是Java 應用程式的主類別? 75 如何隱藏類別的屬性,使其不會被其他類別使用? 76 什麼是靜態變數和靜態常數? 77 什麼是靜態方法? 78 靜態敘述區塊有什麼作用? 79 如何存取類別的成員變數和方法? 80 如何在一個類別中存取另一個類別的方法? 第7 章 物件導向進階81 是值傳遞還是參考傳遞? 82 final 參數可以被修改嗎? 83 介面和抽象類別有何區別? 84 如何呼叫父類別的建構方法? 85 如何操作被隱藏的成員變數和被重新定義的成員方法? 86 什麼是方法的重新定義,以及如何實現方法重新定義? 87 final、finally 和finalize 有什麼區別? 88 Java 中如何模擬多重繼承? 89 Java 中如何使用clone() 方法複製物件?90 有兩種方式可以實現深複製,其效率如何? 91 內部類別是否可以被繼承? 92 如何呼叫內部類別和外部類別同名的成員? 93 什麼是匿名內部類別,以及如何定義匿名內部類別? 94 如何建立Class 物件? 95 如何透過反射獲得類別的資訊? 96 如何使用反射建立物件? 97 如何透過反射呼叫方法? 98 如何透過反射存取欄位(成員變數)? 99 在Java 語言標準中,對equals()方法有何要求? 100 如何重新定義equals() 方法? 第8 章 字串與包裝類別101 什麼是自動裝包 拆包? 102 int 和Integer 有什麼區別? 103 String 是Java 的基底資料型別嗎? 104 運算式“3+5=" + 3 + 5 的傳回值是什麼? 105 Java 中String str = null 與String str = " " 的區別是什麼? 106 String 類別是否可以被繼承? 107 如何實現字串的大小寫轉換? 108 如何實現字串的反向輸出? 109 運算子“=="與equals() 比較物件的區別是什麼?110 判斷字串是否為空有幾種方式? 111 如何實現對日期的格式化? 112 如何實現對時間變數的格式化? 113 如何實現日期或時間組合的格式化? 114 如何實現正常型態資料的格式化? 115 如何實現對電話號碼有效性的驗證? 116 如何實現對手機號碼的驗證? 117 如何實現對IP 地址有效性的驗證? 118 如何實現字串型態和數值型態的轉換? 119 如何去掉字串中的空格? 120 如何獲得子字串? 121 如何判斷字串中是否包含數字? 122 如何實現各進位間的轉換? 123 String 與StringBuilder 的區別是什麼? 124 如何替換字串中的內容? 125 如何獲得指定編碼格式的字串? 126 如何實現中文字轉區位碼? 127 如何實現區位碼轉中文字? 128 如何實現字串加密? 129 如何判斷字元是英文還是中文字? 130 如何實現大小寫金額之間的轉換?第9 章 Java 集合類別框架131 陣列的效率一定比集合類別高嗎? 132 陣列和集合類別之間如何轉換? 133 陣列與ArrayList 有區別嗎? 134 Collection 和Collections 的區別是什麼? 135 有哪些方式可用於檢查集合類別? 136 List 介面的實現類別之間的繼承關係如何? 137 Iterator 介面和ListIterator 介面有何區別? 138 Iterator 和Enumeration 的區別是什麼? 139 ArrayList 和LinkedList 的區別是什麼? 140 ArrayList 和Vector 的區別是什麼? 141 Queue 介面的實現類別之間的繼承關係如何? 142 Set 介面的實現類別之間的繼承關係如何? 143 如何使用TreeSet 實現排序功能? 144 常用Set 介面實現類別是否支援執行緒同步? 145 Map 介面有何特性? 146 Map 和Hashtable 有何區別? 147 如何獲得Map 中全部鍵?148 如何獲得Map 中全部值? 149 如何獲得Map 中全部鍵值對? 150 如何自訂TreeMap 排序方式? 第10 章 常用數學工具類別151 常見數制包括哪些?相互間如何轉換? 152 什麼是原碼、反碼和補數? 153 電腦如何儲存浮點數? 154 Math 類別與StrictMath 類別有何異同? 155 電腦中浮點數是連續的嗎? 156 什麼是亂數? Java 支援亂數嗎? 157 如何完成高精度整數運算? 158 如何設定數字的捨入模式? 159 如何完成高精度浮點數運算? 160 如何格式化數字? 第11 章 例外處理161 什麼是例外? 162 Java 中的例外如何分類? 163 如何使用try…catch 捕捉並處理例外? 164 try…catch…finally 是如何處理例外的? 165 使用try…finally 能處理例外嗎? 166 如何使用throws 關鍵字宣告方法拋出的例外?167 如何使用throw 關鍵字在方法中拋出例外? 168 關鍵字throw 與throws 的用法有什麼差異? 169 如何建立自訂例外類別? 170 例外處理機制有哪些優勢? 第12 章 輸入 輸出171 什麼是流? 172 Java 中與流相關的類別有哪些? 173 如何使用位元組流複製檔案? 174 如何使用字元流複製文字檔? 175 如何提昇字元複製效率? 176 如何求和文字檔中的數字? 177 如何從主控台接收密碼? 178 如何獲得指定格式的字串? 179 如何使用資料流程? 180 如何使用物件流? 181 transient 關鍵字有何作用? 182 如何檢視Windows 硬碟空間? 183 如何檢視檔案的屬性? 184 如何修改檔案的屬性? 185 如何在磁碟上建立檔案? 186 如何建立暫存檔案? 187 如何獲得磁碟中全部檔案? 188 如何獲得指定型態的檔案? 189 如何刪除指定型態的檔案? 190 如何使用ZIP 格式壓縮檔夾? 191 如何解壓縮ZIP 格式檔案? 192 如何在程式中增加行號?193 如何比較原始程式碼中不同之處? 194 如何使用SequenceInputStream類別? 195 如何使用StreamTokenizer 類別? 196 如何讀取屬性檔案的值? 197 為何需要新IO ?它有哪些核心物件? 198 如何使用新IO 讀、寫、複製資料? 199 緩衝區內部是如何實現的? 200 什麼是記憶體映射檔案IO ?第16 章 網路通訊266 按通訊距離,網路是怎樣劃分的? 267 局域網的主要特點是什麼? 268 廣域網路的主要特點是什麼? 269 常用的網路拓撲結構有哪些?270 ISO OSI 參考模型各層的功能是什麼? 271 TCP IP 參考模型對OSI 參考模型的改進有哪些? 272 IP 地址是如何劃分的?可以分為哪幾種? 273 如何獲得局域網的所有IP 位址? 274 怎樣獲得網路資源的大小? 275 如何實現網路資源的多執行緒下載? 276 如何實現下載網路資源的中斷點繼傳? 277 如何使用Socket 傳輸圖片? 278 如何實現基於Socket 的資料庫程式設計? 279 如何實現聊天室伺服器端? 280 如何實現聊天室用戶端? 第17 章 資料庫操作281 什麼是資料庫驅動? 282 JDBC 驅動程式型態如何區分? 283 Java 程式如何實現呼叫預存程序? 284 SQL Server 資料庫幾種登入方式之間的區別有哪些? 285 資料庫管理系統、資料庫系統的區別? 286 Statement 和PreparedStatement 的區別?287 如何透過JDBC 控制資料庫交易? 288 Java 程式如何獲得表結構? 289 如何實現在資料庫中儲存圖片? 290 如何實現從資料庫中讀取圖片? 291 如何實現最佳化SQL 敘述? 292 如何防止MySQL 資料庫亂碼問題? 293 如何實現將純文字檔案儲存到資料庫中? 294 如何實現從資料庫中讀取純文字? 295 如何獲得資料庫中的所有表? 296 如何實現備份與恢復MySQL資料庫? 297 如何實現多表連接查詢? 298 如何實現去除重複行? 299 如何實現在資料庫中儲存日期物件? 300 如何實現讀取資料庫中的日期欄位?