| | | Java 開發從入門到精通 第2版 | 該商品所屬分類:圖書 -> 編程語言 | 【市場價】 | 872-1264元 | 【優惠價】 | 545-790元 | 【作者】 | 扶松柏王洋陳小玉 | 【出版社】 | 人民郵電出版社 | 【ISBN】 | 9787115504104 | 【折扣說明】 | 一次購物滿999元台幣免運費+贈品 一次購物滿2000元台幣95折+免運費+贈品 一次購物滿3000元台幣92折+免運費+贈品 一次購物滿4000元台幣88折+免運費+贈品
| 【本期贈品】 | ①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
| |
版本 | 正版全新電子版PDF檔 | 您已选择: | 正版全新 | 溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。 *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。 *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。 | | | | 內容介紹 | |
![](/c3/56822447060.jpg)
出版社:人民郵電出版社 ISBN:9787115504104 商品編碼:56822447060 品牌:文軒 出版時間:2019-09-01 代碼:109 作者:扶松柏,王洋,陳小玉
"![](https://img10.360buyimg.com/imgzone/jfs/t1/102105/7/33921/65220/637ad2fbE3747b3ac/8e9da447b03cae40.jpg)
![](http://img14.360buyimg.com/cms/jfs/t1/203358/9/26405/134589/62f4a34cEcdefae53/84e082ed3b03dbc0.jpg) 作 者:扶松柏,王洋,陳小玉 著 定 價:109 出 版 社:人民郵電出版社 出版日期:2019年09月01日 頁 數:648 裝 幀:平裝 ISBN:9787115504104 ●第1章計算機基礎和Java開發入門1 1.1計算機基礎2 1.1.1中央處理器2 1.1.2比特和字節2 1.1.3二進制3 1.1.4編碼格式3 1.2初識Java4 1.2.1何謂Java4 1.2.2Java的特點5 1.2.3Java的地位5 1.3技術解惑6 1.3.1對初學者的建議6 1.3.2理解Java的垃圾回收機制6 1.3.3充分利用JavaAPI文檔7 1.4課後練習7 第2章第一段Java程序8 2.1搭建Java開發環境9 2.1.1安裝JDK9 2.1.2配置開發環境—Windows711 2.1.3配置開發環境—Windows1011 2.2編寫第一段Java程序13 2.2.1第一段Java代碼13 2.2.2關鍵字13 2.2.3標識符14 2.2.4注釋14 2.2.5main()方法15 2.2.6控制臺的輸入和輸出15 2.3編譯並運行Java程序15 2.3.1編譯Java程序15 2.3.2運行Java程序16 2.3.3Java11新特性:新的程序運行方式16 2.4使用IDE工具—Eclipse17 2.4.1Eclipse17 2.4.2獲得並安裝Eclipse17 2.4.3新建一個Eclipse項目20 2.4.4編譯並運行Eclipse項目23 2.4.5使用Eclipse打開一個Java項目24 2.5Java的運行機制25 2.5.1編譯型/解釋型語言的運行機制25 2.5.2Java程序則要先編譯、後運行25 2.6技術解惑26 2.6.1遵循Java源文件的命名規則26 2.6.2忽視繫統文件的擴展名26 2.6.3環境變量的問題26 2.6.4大小寫的問題27 2.6.5main()方法的問題27 2.6.6注意空格問題27 2.6.7到底用不用IDE工具27 2.6.8區分JRE和JDK28 2.7課後練習28 第3章Java語法基礎29 3.1常量和變量30 3.1.1常量30 3.1.2變量31 3.2數據類型33 3.2.1為什麼要使用數據類型33 3.2.2簡單數據類型的取值範圍34 3.2.3字符型34 3.2.4整型35 3.2.5浮點型36 3.2.6布爾型37 3.3運算符38 3.3.1算術運算符38 3.3.2關繫運算符和邏輯運算符41 3.3.3位邏輯運算符42 3.3.4條件運算符43 3.3.5賦值運算符44 3.3.6運算符的優先級45 3.4字符串46 3.4.1字符串的初始化46 3.4.2String類47 3.4.3StringBuffer類49 3.5類型轉換50 3.5.1自動類型轉換50 3.5.2強制類型轉換51 3.6Java11新特性:新增的String函數51 3.7技術解惑54 3.7.1定義常量時的注意事項54 3.7.2char類型中單引號的意義54 3.7.3正無窮和負無窮的問題55 3.7.4移位運算符的55 3.8課後練習55 第4章條件語句56 4.1if語句詳解57 4.1.1if語句57 4.1.2if語句的延伸58 4.1.3有多個條件判斷的if語句59 4.2switch語句詳解60 4.2.1switch語句的形式61 4.2.2無break的情況62 4.2.3case語句後沒有執行語句62 4.2.4default可以不在末尾63 4.3條件語句演練64 4.3.1正確使用switch語句64 4.3.2正確使用if語句64 4.3.3switch語句的執行順序65 4.4技術解惑66 4.4.1if…else語句的意義66 4.4.2使用switch語句時的幾個注意事項67 4.4.3switch語句和if…elseif語句的選擇68 4.5課後練習68 第5章循環語句69 5.1循環語句70 5.1.1for循環70 5.1.2while循環語句72 5.1.3do…while循環語句73 5.2跳轉語句74 5.2.1break語句的應用74 5.2.2return語句的應用76 5.2.3continue語句77 5.3技術解惑77 5.3.1使用for循環的技巧77 5.3.2跳轉語句的選擇技巧78 5.4課後練習79 第6章數組80 6.1簡單的一維數組81 6.1.1聲明一維數組81 6.1.2創建一維數組81 6.1.3初始化一維數組82 6.2二維數組83 6.2.1聲明二維數組83 6.2.2創建二維數組83 6.2.3初始化二維數組84 6.3三維數組85 6.3.1聲明三維數組86 6.3.2創建三維數組的方法86 6.3.3初始化三維數組86 6.4操作數組87 6.4.1復制數組87 6.4.2比較數組87 6.4.3排序數組88 6.4.4搜索數素89 6.4.5填充數組89 6.4.6遍歷數組90 6.5技術解惑90 6.5.1動態初始化數組的規則90 6.5.2引用類型91 6.5.3數組的初始化91 6.6課後練習91 第7章Java的面向對像(上)93 7.1面向對像的基礎94 7.1.1面向對像的定義94 7.1.2Java的面向對像編程94 7.1.3一切皆為對像94 7.1.4Java面向對像的幾個核心概念95 7.2創建類96 7.2.1定義類96 7.2.2定義屬性97 7.2.3定義方法97 7.2.4定義構造器98 7.3修飾符98 7.3.1public修飾符98 7.3.2private修飾符99 7.3.3protected修飾符100 7.3.4其他修飾符100 7.4方法詳解101 7.4.1方法與函數的關繫101 7.4.2傳遞方法參數102 7.4.3長度可變的方法102 7.4.4不使用void關鍵字構造方法名103 7.4.5遞歸方法104 7.5使用this105 7.6使用類和對像105 7.6.1創建和使用對像106 7.6.2使用靜態變量和靜態方法106 7.7抽像類和抽像方法107 7.7.1抽像類和抽像方法的基礎107 7.7.2抽像類必須有一個抽像方法108 7.7.3抽像類的作用109 7.8軟件包110 7.8.1軟件包的定義110 7.8.2在Eclipse中定義軟件包110 7.8.3在程序裡插入軟件包111 7.9技術解惑112 7.9.1在Java中傳遞引用類型的實質112 7.9.2掌握this的好處113 7.9.3推出抽像方法的原因114 7.9.4使用抽像類的時機114 7.9.5static修飾的作用115 7.9.6數組內是同一類型的數據115 7.10課後練習115 第8章Java的面向對像(中)116 8.1類的繼承117 8.1.1繼承的定義117 8.1.2父類和子類117 8.1.3調用父類的構造方法118 8.1.4訪問父類的屬性和方法119 8.1.5多重繼承120 8.1.6重寫父類的方法121 8.2重寫和重載122 8.2.1重寫122 8.2.2重載124 8.3隱藏和封裝125 8.3.1Java中的封裝125 8.3.2訪問控制符125 8.3.3Java中的包127 8.3.4import129 8.4接口129 8.4.1定義接口129 8.4.2接口裡的常量和方法130 8.4.3引用接口132 8.4.4接口間的繼承134 8.4.5接口的私有方法134 8.5技術解惑137 8.5.1重寫方法的注意事項137 8.5.2重寫和重載的區別138 8.5.3舉例理解類的意義138 8.5.4Java包的一些規則138 8.5.5探討package和import機制138 8.5.6接口編程的機理139 8.5.7接口和抽像類的區別和聯繫140 8.6課後練習141 第9章Java的面向對像(下)142 9.1構造器詳解143 9.1.1初始化構造器143 9.1.2構造器重載143 9.1.3調用父類構造器144 9.2多態145 9.2.1多態的定義145 9.2.2演示Java中的多態147 9.2.3使用instanceof運算符148 9.3引用類型149 9.3.14種引用類型150 9.3.2引用變量的強制類型轉換151 9.4組合152 9.5初始化塊154 9.5.1初始化塊概述154 9.5.2靜態初始化塊155 9.6包裝類156 9.7final修飾符157 9.7.1用final修飾變量158 9.7.2final方法159 9.8內部類160 9.8.1內部類概述160 9.8.2非靜態內部類160 9.8.3成員內部類162 9.8.4局部內部類162 9.8.5靜態內部類163 9.9匿名類163 9.9.1定義匿名類164 9.9.2匿名內部類164 9.9.3匿名內部類使用final形參165 9.10枚舉類166 9.10.1枚舉類的方法166 9.10.2模擬枚舉類167 9.10.3枚舉類型168 9.11Java11新特性:嵌套訪問控制170 9.12技術解惑172 9.12.1構造器和方法的區別172 9.12.2this在構造器中的作用173 9.12.3子類構造器調用父類構造器的情況173 9.12.4強制類型轉換的局限性174 9.12.5繼承和組合的選擇174 9.12.6發生異常的原因174 9.12.7用final修飾基本類型和引用類型變量之間的區別174 9.12.8類的4種權限174 9.12.9手工實現枚舉類的缺點175 9.13課後練習175 第10章集合176 10.1Java中的集合類177 10.2Collection接口和Iterator接口178 10.2.1Collection接口概述178 10.2.2Iterator接口概述179 10.2.3使用Collection接口中的方法來操作集素179 10.3Set接口180 10.3.1Set接口概述180 10.3.2使用HashSet183 10.3.3使用TreeSet類184 10.3.4使用EnumSet類186 10.4List接口188 10.4.1List接口概述188 10.4.2根據索引操作集素190 10.4.3使用ArrayList和Vector類191 10.5Map接口192 10.5.1Map接口中的方法192 10.5.2Map接口中的接口和類193 10.5.3使用HashMap和Hashtable實現類196 10.5.4使用SortedMap接口和TreeMap實現類197 10.5.5使用WeakHashMap類199 10.5.6使用IdentityHashMap類200 10.5.7使用EnumMap類201 10.6Queue接口201 10.6.1LinkedList類202 10.6.2PriorityQueue類203 10.7集合工具類Collections203 10.7.1排序操作203 10.7.2查找和替換操作204 10.8其他集合類205 10.8.1Stack類205 10.8.2屬性類Properties206 10.9創建不可變的List、Set和Map(Java9新增功能)209 10.9.1Java9以前版本的解決方案209 10.9.2Java9版本的解決方案209 10.10使用var類型推斷(Java10新增功能)211 10.11技術解惑212 10.11.1Collectio素的改變問題212 10.11.2深入理解HashSet212 10.11.3使用類EnumSet的注意事項213 10.11.4ArrayList和Vector的區別213 10.11.5TreeMap判素相等的標準213 10.11.6分析Map類的性能213 10.11.7LinkedList、ArrayList、Vector的性能問題214 10.11.8用swap()方法交換集合中兩個位置的內容214 10.12課後練習214 第11章常用的類庫215 11.1StringBuffer類216 11.1.1StringBuffer類概述216 11.1.2使用StringBuffer類216 11.2Runtime類218 11.2.1Runtime類概述218 11.2.2使用Runtime類218 11.3程序國際化220 11.3.1國際化基礎220 11.3.2Locale類221 11.3.3ResourceBundle類221 11.3.4處理動態文本222 11.3.5使用類代替資源文件223 11.4System類224 11.4.1使用System類224 11.4.2垃圾對像的回收225 11.5Date類225 11.5.1使用Date類226 11.5.2使用Calendar類226 11.5.3使用DateFormat類227 11.5.4使用SimpleDateFormat類228 11.6Math類229 11.7Random類230 11.8NumberFormat類231 11.9BigInteger類232 11.10BigDecimal類233 11.11復制對像235 11.12Arrays類235 11.13Comparable接口236 11.13.1Comparable接口概述236 11.13.2使用Comparable接口238 11.13.3使用Comparator接口238 11.14Observable類和Observer接口239 11.15正則表達式241 11.15.1正則表達式概述241 11.15.2Java中的正則表達式類242 11.15.3使用Pattern類和Matcher類243 11.15.4String類和正則表達式243 11.15.5Java9新增的正則表達式方法244 11.15.6Java11新特性:正則表達式參數的局部變量語法245 11.16Timer類和TimerTask類245 11.16.1Timer類246 11.16.2TimerTask類246 11.17技術解惑247 11.17.1StringBuffer和String的異同247 11.17.2通過System類獲取本機的全部環境屬性247 11.17.3分析對像的生命周期248 11.17.4若未實現Comparable接口會出現異常248 11.17.5正則表達式的好處248 11.18課後練習249 第12章泛型250 12.1泛型概述251 12.1.1泛型的優點251 12.1.2類型檢查251 12.1.3使用泛型253 12.2泛型詳解253 12.2.1定義泛型接口和類253 12.2.2派生子類254 12.2.3並不存在泛型類255 12.3類型通配符255 12.3.1設置類型實參的上限256 12.3.2設置類型形參的上限257 12.3.3設置通配符的下限258 12.4泛型方法258 12.5泛型接口260 12.6泛型繼承261 12.6.1以泛型類為父類261 12.6.2以非泛型類為父類262 12.7強制類型轉換263 12.8擦除263 12.8.1擦除的定義263 12.8.2擦除帶來的問題265 12.9技術解惑266 12.9.1Java語言中泛型的本質266 12.9.2泛型方法和類型通配符的區別267 12.9.3泛型類的繼承規則268 12.9.4類型擦除和泛型特性之間的聯繫268 12.9.5使用原則和注意事項268 12.10課後練習268 第13章異常處理270 13.1異常概述271 13.1.1認識異常271 13.1.2Java提供的異常處理類271 13.2異常處理方式272 13.2.1try…catch語句272 13.2.2處理多個異常273 13.2.3finally語句274 13.2.4訪問異常信息275 13.3拋出異常276 13.3.1使用throws拋出異常276 13.3.2使用throw拋出異常278 13.4自定義異常279 13.4.1Throwable類及其子類279 13.4.2使用Throwable類自定義異常281 13.5Checked異常和Runtime異常的區別282 13.5.1機制上的差異282 13.5.2邏輯上的差異283 13.6技術解惑283 13.6.1使用嵌套異常處理是更合理的方法283 13.6.2區別throws關鍵字和throw關鍵字284 13.6.3異常類的繼承關繫284 13.6.4子類Error和Exception284 13.7課後練習284 第14章I/O文件處理和流處理285 14.1JavaI/O概述286 14.2File類286 14.2.1File類中的方法286 14.2.2使用File類操作文件287 14.3RandomAccessFile類290 14.3.1RandomAccessFile類的常用方法290 14.3.2使用RandomAccessFile類291 14.4字節流與字符流292 14.4.1字節流類和字符流類292 14.4.2使用字節流292 14.4.3使用字符流296 14.5字節轉換流299 14.6內存操作流299 14.7管道流301 14.8打印流302 14.8.1打印流概述302 14.8.2使用打印流303 14.9System類303 14.9.1System.out304 14.9.2System.err304 14.9.3System.in305 14.9.4輸入/輸出重定向305 14.10BufferedReader類307 14.10.1BufferedReader類概述307 14.10.2使用BufferedReader類308 14.11Scanner類309 14.11.1Scanner類概述310 14.11.2使用Scanner類310 14.12數據操作流312 14.12.1DataOutputStream類313 14.12.2DataInputStream類313 14.13合並流315 14.14壓縮流316 14.14.1ZIP壓縮輸入/輸出流概述316 14.14.2ZipOutputStream類316 14.14.3ZipFile類319 14.14.4ZipInputStream類319 14.15回退流320 14.16字符編碼321 14.16.1得到本機編碼322 14.16.2產生亂碼322 14.17對像序列化323 14.17.1Serializable接口323 14.17.2對像輸出流ObjectOutputStream324 14.17.3對像輸入流ObjectInputStream324 14.17.4Externalizable接口325 14.17.5關鍵字transient326 14.17.6序列化一組對像327 14.18Buffer類328 14.18.1Buffer類中的主要方法329 14.18.2使用Buffer類330 14.19Channel類331 14.20使用流API333 14.20.1Java8中的流333 14.20.2Java9中新增的Stream335 14.21使用try…with…resources語句337 14.21.1try…with…resources語句概述337 14.21.2try…with…resources的改進(Java9新增功能)338 14.22技術解惑341 14.22.1使用File.separator表示分隔符341 14.22.2綜合演練創建和刪除文件341 14.22.3File類的復雜用法342 14.22.4字節流和字符流的區別342 14.22.5System.err和System.out的選擇344 14.22.6使用I/O實現一個簡單的菜單效果344 14.22.7對像序列化和對像反序列化操作時的版本兼容性問題345 14.22.8不能讓所有的類都實現Serializable接口346 14.23課後練習346 第15章AWT的奇幻世界347 15.1GUI框架概述348 15.1.1AWT框架348 15.1.2Swing框架348 15.1.3JavaFX框架348 15.2AWT框架的結構349 15.3容器350 15.3.1容器概述350 15.3.2容器中的常用組件351 15.4布局管理器352 15.4.1FlowLayout布局353 15.4.2BorderLayout布局353 15.4.3GridLayout布局355 15.4.4GridBagLayout布局356 15.4.5CardLayout布局356 15.4.6BoxLayout布局管理器357 15.5AWT中的常用組件357 15.5.1AWT組件概覽358 15.5.2使用組件358 15.6AWT中的對話框360 15.6.1AWT對話框概述360 15.6.2使用AWT對話框360 15.7使用圖像多分辨率API361 15.7.1圖像多分辨率概述361 15.7.2圖像多分辨率API詳解361 15.7.3圖像多分辨率API實戰362 15.8javax.imageio.plugins.tiff364 15.8.1ImageIO模塊概述364 15.8.2TIFF接口366 15.9技術解惑367 15.9.1使用絕對定位367 15.9.2對事件處理模型的簡化368 15.9.3使用AWT開發動畫368 15.9.4圖片縮放在現實中的意義368 15.9.5AWT和Swing是窗體編程的兩個主角368 15.9.6AWT中的菜單組件不能創建圖標菜單368 15.9.7Java的事件模型368 15.9.8事件和事件監聽器370 15.10課後練習372 第16章Swing373 16.1Swing概述374 16.2Swing的組件375 16.2.1Swing組件的層次結構375 16.2.2Swing實現AWT組件376 16.3拖放處理380 16.4實現進度條效果381 16.4.1創建一個進度條381 16.4.2使用ProgressMonitor創建進度條對話框383 16.5技術解惑383 16.5.1貫穿Java開發的MVC模式383 16.5.2Swing的優勢383 16.5.3使用JSlider和BoundedRangeModel測試滑動條效果384 16.5.4使用ListCellRenderer改變窗體中列表項的外觀385 16.6課後練習385 第17章JavaFX開發基礎386 17.1JavaFX概述387 17.1.1JavaFX的特色387 17.1.2安裝e(fx)clipse插件387 17.1.3認識第一個JavaFX程序389 17.2JavaFX界面結構389 17.2.1窗體結構剖析389 17.2.2屬性綁定391 17.2.3樣式屬性和角度屬性392 17.3使用Color類設置顏色393 17.3.1設置顏色的方法393 17.3.2使用RGB方式設置顏色395 17.3.3使用Web方式設置顏色395 17.4繪制文字396 17.4.1Text包概述396 17.4.2繪制指定樣式的文本397 17.5繪制形狀398 17.5.1使用Line繪制線條398 17.5.2使用Rectangle繪制矩形399 17.5.3使用Circle繪制圓401 17.5.4使用Ellipse繪制橢圓402 17.5.5使用Arc繪制圓弧403 17.5.6使用Polygon繪制多邊形404 17.5.7使用Polyline繪制折線405 17.5.8使用CubicCurve繪制三次曲線406 17.5.9使用QuadCurve繪制二次曲線407 17.6顯示圖像408 17.6.1使用Image顯示圖像408 17.6.2使用ImageView顯示圖像409 17.7界面布局410 17.7.1使用Pane的畫布功能411 17.7.2使用StackPane實現特定面板功能412 17.7.3使用FlowPane實現序列放置412 17.7.4使用GridPane實現網格布局414 17.7.5使用BorderPane實現區域布局415 17.7.6使用HBox實現水平布局417 17.7.7使用VBox實現垂直布局418 17.8技術解惑419 17.8.1Swing、AWT和JavaFX的區別419 17.8.2JavaFX的屬性類型419 17.9課後練習420 第18章使用JavaFXUI組件421 18.1使用標簽組件422 18.1.1標簽屬性和方法422 18.1.2標簽組件實戰演練423 18.2使用按鈕組件424 18.2.1按鈕屬性和方法424 18.2.2按鈕組件實戰演練425 18.3使用復選框組件426 18.3.1復選框屬性和方法426 18.3.2復選框組件實戰演練427 18.4使用單選按鈕組件428 18.4.1單選按鈕屬性和方法428 18.4.2單選按鈕組件實戰演練429 18.5使用文本框組件430 18.5.1文本框的屬性和方法430 18.5.2文本框組件實戰演練431 18.6使用文本域組件432 18.6.1文本域的屬性和方法432 18.6.2文本域組件實戰演練432 18.7使用選擇框組件434 18.7.1選擇框的屬性和方法434 18.7.2選擇框組件實戰演練434 18.8使用密碼框組件435 18.8.1密碼框的屬性和方法435 18.8.2密碼框組件實戰演練436 18.9使用組合框組件437 18.9.1組合框的屬性和方法437 18.9.2組合框實戰演練438 18.10使用列表視圖組件439 18.10.1列表視圖的屬性和方法439 18.10.2列表視圖組件實戰演練440 18.11使用滾動條組件442 18.11.1滾動條的屬性和方法442 18.11.2滾動條組件實戰演練442 18.12使用滑塊組件444 18.12.1滑塊的屬性和方法444 18.12.2滑塊組件實戰演連445 18.13使用樹視圖組件446 18.13.1樹視圖的屬性和方法446 18.13.2樹視圖組件實戰演練447 18.14使用進度組件448 18.14.1進度指示器448 18.14.2進度條448 18.14.3進度組件實戰演練448 18.15使用HTML編輯器組件449 18.15.1HTML編輯器組件概述450 18.15.2HTML編輯器組件實戰演練450 18.16使用菜單組件451 18.16.1菜單組件概述451 18.16.2創建菜單欄452 18.17使用文件選擇框組件453 18.17.1文件選擇框概述453 18.17.2文件選擇框組件實戰演練454 18.18使用顏色選擇器組件456 18.18.1顏色選擇器概述456 18.18.2顏色選擇器組件實戰演練458 18.19技術解惑459 18.19.1制作圓形按鈕459 18.19.2設置按鈕的內容460 18.19.3樹表視圖460 18.20課後練習460 第19章JavaFX事件處理程序461 19.1JavaFX事件處理繫統概述462 19.1.1Java的事件模型462 19.1.2JavaFX中的事件462 19.1.3事件處理機制的流程463 19.1.4事件處理465 19.1.5事件和事件源465 19.2使用快捷方法實現事件處理467 19.2.1快捷方法概述467 19.2.2處理按鈕事件468 19.3處理鼠標事件469 19.3.1鼠標事件概述469 19.3.2使用鼠標事件469 19.4處理鍵盤事件470 19.4.1鍵盤事件概述470 19.4.2使用鍵盤事件471 19.5使用事件過濾器472 19.5.1注冊和移除事件過濾器472 19.5.2使用事件過濾器473 19.6使用事件處理程序475 19.6.1注冊和移除事件處理程序475 19.6.2使用事件處理程序476 19.7使用可觸摸設備的事件477 19.7.1手勢和觸摸事件477 19.7.2手勢事件實戰478 19.8技術解惑483 19.8.1實現鼠標移到按鈕上按鈕變大的效果483 19.8.2實現JavaFX綁定483 19.9課後練習483 第20章JavaFX框架下的Web開發484 20.1JavaFX內嵌瀏覽器概述485 20.2使用WebView組件486 20.2.1WebView組件概述486 20.2.2WebView組件實戰演練487 20.3使用WebEngine接口488 20.3.1WebEngine概述488 20.3.2在JavaFX中執行JavaScript程序489 20.3.3在Web頁面中調用JavaFX程序492 20.3.4實現彈出式窗口493 20.4管理Web歷史記錄495 20.4.1WebHistory概述495 20.4.2網頁瀏覽歷史記錄實戰495 20.5使用CSS文件496 20.6使用FXML499 20.6.1FXML概述499 20.6.2FXML實戰演練500 20.7技術解惑504 20.7.1JavaFX集合504 20.7.2使用標題面板505 20.8課後練習505 第21章JavaFX框架下的多媒體開發506 21.1變換操作507 21.1.1變換概述507 21.1.2變換操作507 21.2動畫效果510 21.2.1過渡動畫510 21.2.2時間軸動畫512 21.3視覺特效514 21.3.1混合特效514 21.3.2發光特效515 21.3.3模糊特效517 21.3.4陰影特效519 21.3.5內陰影特效520 21.3.6倒影特效522 21.3.7光照特效523 21.43D特效524 21.4.1JavaFX3D概述524 21.4.2使用3D形狀524 21.4.33D鏡頭525 21.4.4使用子場景527 21.4.5使用光照529 21.4.6使用材質530 21.5音頻和視頻532 21.5.1使用Media獲取獲得媒體源532 21.5.2使用MediaPlayer播放並控制媒體532 21.5.3使用MediaView顯示視頻533 21.5.4控制播放的視頻演練533 21.6CSSAPI(Java9新增功能)535 21.6.1使用傳統方式535 21.6.2使用SkinAPI536 21.7技術解惑538 21.7.1注冊一個事件處理程序538 21.7.2注意場景背景圖的問題539 21.7.3y-down坐標繫和y-up坐標繫539 21.8課後練習539 第22章數據庫編程540 22.1SQL基礎541 22.1.1數據定義541 22.1.2數據操縱542 22.2初識JDBC544 22.2.1JDBCAPI544 22.2.2JDBC驅動類型544 22.2.3JDBC的常用接口和類545 22.2.4JDBC編程的一般步驟547 22.3連接Access數據庫549 22.3.1Access數據庫概述549 22.3.2連接本地Access數據庫550 22.4連接SQLServer數據庫552 22.4.1下載並安裝SQLSever2016驅動552 22.4.2測試連接553 22.4.3獲取SQLServer數據庫中指定的表554 22.5連接MySQL數據庫555 22.5.1下載並配置MySQL驅動555 22.5.2將MySQL驅動加載到Eclipse中556 22.5.3測試連接557 22.6技術解惑557 22.6.1連接池的功效557 22.6.2服務器自帶連接池的問題557 22.6.3連接池模型559 22.6.4數據模型、概念模型和關繫數據模型559 22.6.5數據庫繫統的結構560 22.7課後練習560 第23章網絡與通信編程561 23.1Java中的網絡包562 23.1.1InetAddress類562 23.1.2URLDecoder類和URLEncoder類562 23.1.3URL類和URLConnection類563 23.1.4實踐演練564 23.2TCP編程567 23.2.1使用ServerSocket567 23.2.2使用Socket568 23.2.3TCP中的多線程569 23.3UDP編程572 23.3.1使用DatagramSocket572 23.3.2使用 lticastSocket574 23.4代理服務器577 23.4.1代理服務器概述577 23.4.2使用Proxy創建連接578 23.4.3使用ProxySelector選擇代理服務器579 23.5HTTP/2ClientAPI(Java10的改進)581 23.5.1孵化器模塊usergrid概述581 23.5.2HTTP/2ClientAPI概述582 23.5.3處理HTTP請求582 23.6技術解惑584 23.6.1使用異常處理完善程序584 23.6.2使用ServerSocketChannel的弊端584 23.6.3體會復雜的DatagramPacket585 23.6.4 lticastSocket類的重要意義585 23.6.5繼承ProxySelector時需要做的工作585 23.6.6代理服務無止境585 23.6.7生成jdk.incubator.httpclient模塊的Javadoc586 23.7課後練習586 第24章多線程和進程587 24.1線程概述588 24.1.1線程與進程588 24.1.2線程的意義588 24.1.3Java的線程模型589 24.2創建線程590 24.2.1使用Thread類創建線程590 24.2.2使用Runnable接口創建線程592 24.2.3使用Thread.onSpinWait()方法實現循環等待593 24.3線程的生命周期594 24.3.1線程的運行與停止594 24.3.2線程的掛起和喚醒595 24.3.3終止線程的3種方法596 24.3.4線程的阻塞597 24.3.5線程的死亡597 24.4控制線程598 24.4.1使用join方法599 24.4.2慎重使用volatile關鍵字599 24.4.3後臺、讓步和睡眠602 24.5線程傳遞數據603 24.5.1向線程傳遞數據的方法603 24.5.2線程中返回數據的方法605 24.6進程606 24.6.1使用類ProcessBuilder606 24.6.2使用類Process609 24.6.3使用類ProcessHandle(Java9新增功能)609 24.7技術解惑612 24.7.1線程和函數的關繫612 24.7.2在run方法中使用線程名時產生的問題612 24.7.3繼承Thread類或實現Runnable接口的比較612 24.7.4start()和run()的區別613 24.7.5使用sleep()方法的注意事項613 24.7.6線程的優先級613 24.7.7如何確定發生死鎖613 24.7.8關鍵字synchronized和volatile的區別614 24.7.9sleep()方法和yield()方法的區別614 24.7.10分析Swing的多線程死鎖問題614 24.8課後練習615 第25章大數據綜合實戰:爬取並分析知乎用戶信息616 25.1繫統設計617 25.1.1繫統目標617 25.1.2繫統功能結構617 25.2數據庫設計618 25.3知乎爬蟲請求分析618 25.4繫統文件夾組織結構621 25.5繫統詳細運行流程圖622 25.6具體編碼623 25.6.1核心模塊代碼的編寫623 25.6.2知乎抓取功能模塊629 25.6.3代理功能模塊637 25.7知乎用戶大數據分析645 25.7.1數據展示模塊645 25.7.2運行展示646 25.8項目開發難點分析648 本書專門介紹Java編程,主要內容包括:Java基礎知識、Java語法基礎、條件語句、循環語句、數組、Java面向對像編程、集合、常用的類庫、泛型、異常處理、I/O文件處理和流程、AWT、Swing、JavaFX基礎知識、UI組件、事件處理程序、基於JavaFX框架的Web和多媒體開發、數據庫編程、網絡與通信編程、多線程和進程等。本書適合Java開發人員閱讀,也適合計算機相關專業的師生閱讀。 ![](https://img10.360buyimg.com/imgzone/jfs/t1/147514/7/5440/73116/5f34a3beE3ba58783/f5b2391383f5625c.jpg)
" | | | | | |