Ⅰ java開發實戰1200例的作品目錄
第1篇 圖形圖像篇
第1章 Java圖形與文本 2
1.1 繪制圖形和文本 3
實例001 繪制直線 3
實例002 繪制矩形 4
實例003 繪制正方形 5
實例004 繪制橢圓 6
實例005 繪制圓弧 7
實例006 繪制指定角度的填充扇形 8
實例007 繪制多邊形 9
實例008 繪制二次曲線 10
實例009 繪制三次曲線 12
實例010 繪制文本 13
實例011 設置文本的字體 14
實例012 設置文本和圖形的顏色 15
1.2 筆畫和圖形處理 16
實例013 設置筆畫的粗細 16
實例014 設置筆畫樣式 18
實例015 設置連接方式 19
實例016 設置虛線模式 20
實例017 縮放圖形 22
實例018 旋轉圖形 23
實例019 斜切圖形 24
實例020 為圖形填充漸變色 25
實例021 平移坐標軸 27
1.3 繪制圖案 28
實例022 繪制五環圖案 28
實例023 繪制藝術圖案 29
實例024 繪制花瓣 30
實例025 繪制公章 32
1.4 圖形的合並運算 33
實例026 圖形的加運算 33
實例027 圖形的減運算 35
實例028 圖形的交運算 36
實例029 圖形的異或運算 37
第2章 Java圖像處理 39
2.1 圖像處理 40
實例030 繪制圖像 40
實例031 縮放圖像 41
實例032 翻轉圖像 42
實例033 旋轉圖像 44
實例034 傾斜圖像 45
實例035 裁剪圖片 46
2.2 顏色處理 47
實例036 調整圖片的亮度 47
實例037 轉換彩色圖片為灰度圖片 49
實例038 使用像素值生成圖像 50
第3章 繪圖特效 52
3.1 文字特效 53
實例039 立體效果的文字 53
實例040 陰影效果的文字 54
實例041 傾斜效果的文字 55
實例042 漸變效果的文字 56
實例043 會變色的文字 58
實例044 水印文字特效 59
實例045 順時針旋轉文字 60
實例046 動態繪制文本 62
實例047 中文驗證碼 64
實例048 圖片驗證碼 65
實例049 帶干擾線的驗證碼 66
3.2 圖片特效 68
實例050 紋理填充特效 68
實例051 水波效果的圖片 69
實例052 局部圖像放大 71
實例053 圖片半透明特效 73
實例054 圖片溶合特效 74
實例055 以橢圓形顯示圖像 75
實例056 圖片百葉窗特效 76
實例057 圖片馬賽克特效 78
實例058 模糊 80
實例059 銳化 81
實例060 照亮邊緣 82
實例061 反向 84
實例062 光柵圖像 85
實例063 圖片倒影效果 87
第4章 動畫和游戲 90
4.1 文字動畫 91
實例064 文字淡入淡出 91
實例065 文字縮放 93
實例066 文字跑馬燈 94
實例067 字幕顯示 96
實例068 文字閃現 98
實例069 滾動廣告字幕 99
4.2 圖片動畫 101
實例070 圖片淡入淡出 101
實例071 隨滑鼠指針移動的圖片 103
實例072 通過鍵盤移動圖片 104
實例073 圖片動態拉伸 106
實例074 桌面彈球 107
實例075 循環滾動圖片 109
實例076 撞球動畫 111
實例077 電影膠片特效 113
實例078 隨機移動的圖片 115
實例079 雪花飄落動畫 116
實例080 圖片旋轉動畫 118
實例081 圖片閃現動畫 119
實例082 幀動畫效果 121
實例083 水波動畫 123
4.3 游戲開發 125
實例084 圖片配對游戲 125
實例085 小豬走迷宮 128
實例086 拼圖游戲 130
實例087 海灘捉螃蟹 133
實例088 荒山打獵游戲 135
實例089 打字母游戲 137
實例090 警察抓小偷 139
實例091 擲骰子 141
實例092 畫梅花 143
實例093 打造自己的開心農場 144
第5章 列印報表 147
5.1 列印控制 148
實例094 列印對話框 148
實例095 實現列印 149
實例096 列印圖形 150
實例097 列印圖片 152
實例098 列印預覽 153
實例099 倒序列印 155
實例100 為列印內容添加水印 157
實例101 自動為列印內容添加水印 158
5.2 列印的應用 160
實例102 列印快遞單 160
實例103 列印報表 162
實例104 列印桌面圖片 164
實例105 列印柱形圖表 165
實例106 列印餅形圖表 167
實例107 列印折線圖表 169
實例108 列印區域圖表 170
實例109 列印帶柱形圖表的報表 172
實例110 列印帶餅形圖表的報表 174
實例111 列印帶折線圖表的報表 175
實例112 導出報表到Excel表格 177
實例113 導出報表到pdf文檔 179
實例114 批量列印條形碼 181
實例115 相冊特效列印程序 183
實例116 鏡面效果文本列印 186
實例117 透明的列印預覽對話框 187
第6章 管理圖像文件 189
6.1 圖像的修改與保存 190
實例118 保存圖片文件 190
實例119 修改圖片文件名 191
實例120 縮放圖片並保存 192
實例121 為圖片添加水印並保存 194
實例122 溶合兩張圖片並保存 196
實例123 模糊圖片並保存 197
實例124 銳化圖片並保存 199
實例125 照亮邊緣並保存 200
實例126 反向並保存圖片 202
實例127 填充紋理並保存為圖片 204
6.2 圖片在資料庫中的存取 205
實例128 圖片存儲到Access資料庫中 205
實例129 圖片存儲到MySQL資料庫中 206
實例130 圖片存儲到SQLServer資料庫中 208
實例131 讀取Access資料庫中存儲的圖片 209
實例132 讀取MySQL資料庫中存儲的圖片 210
實例133 讀取SQLServer資料庫中存儲的圖片 211
實例134 修改Access資料庫中存儲的圖片 212
實例135 修改MySQL資料庫中存儲的圖片 214
實例136 修改SQLServer資料庫中存儲的圖片 215
6.3 其他應用 216
實例137 獲取滑鼠指針在任意位置的顏色值 216
實例138 圖片瀏覽器 218
實例139 轉換圖片格式 219
實例140 繪制石英鍾 221
實例141 畫圖程序 222
實例142 屏幕抓圖程序 224
實例143 屏幕放大鏡 225
第2篇 JFreeChart圖表篇
第7章 JFreeChart基本操作 230
7.1 JFreeChart基礎操作 231
實例144 基本餅圖 231
實例145 顯示圖示 232
實例146 工具欄提示 233
實例147 亂碼問題 235
實例148 顯示數值 237
實例149 抗鋸齒設置 238
7.2 設置圖表背景 239
實例150 設置背景圖片 239
實例151 設置圖片對齊方式 241
實例152 設置背景圖片透明度 242
實例153 設置背景顏色 243
7.3 處理圖表的邊框 244
實例154 隱藏圖表邊框 244
實例155 圖表邊框筆觸 245
實例156 圖表邊框顏色 247
7.4 修改圖表的圖示 248
實例157 設置圖示背景色 248
實例158 設置圖示邊框 249
實例159 設置圖示邊框顏色 250
實例160 設置圖示邊緣間距 251
實例161 設置圖示字體顏色 252
實例162 設置圖示位置 253
第8章 基礎圖表技術 255
8.1 普通餅圖 256
實例163 分離餅圖 256
實例164 橢圓形餅圖 257
實例165 餅圖的陰影 258
實例166 餅圖的分類邊框顏色 260
實例167 加粗餅圖分類邊框 261
實例168 設置餅圖顏色 262
實例169 餅圖旋轉角度 263
實例170 餅圖旋轉順序 265
實例171 隱藏分類標簽連接線 266
8.2 3D餅圖 267
實例172 創建3D餅圖 267
實例173 3D餅圖透明度 269
實例174 3D餅圖的Z軸 270
實例175 逆時針旋轉3D餅圖 271
實例176 順時針旋轉3D餅圖 272
8.3 多餅圖 274
實例177 實現多餅圖 274
實例178 多餅圖亂碼 275
實例179 多餅圖的展示方式 277
實例180 3D多餅圖 278
8.4 基本柱形圖 280
實例181 簡單柱型圖 280
實例182 柱形圖角度 282
實例183 柱形圖負值 283
8.5 X坐標軸 285
實例184 X軸字體 285
實例185 X軸標簽字體 287
實例186 X軸標簽角度 288
實例187 X軸顯示情況 290
實例188 X軸尺度顏色 292
實例189 隱藏X軸尺度 293
實例190 X軸尺度筆觸 295
實例191 X軸尺度標簽角度 296
實例192 X軸分類的間距 298
實例193 X軸分類與原點的間距 299
實例194 X軸的顯示位置 300
8.6 Y坐標軸 302
實例195 Y軸字體 302
實例196 Y軸標簽字體 304
實例197 Y軸顯示情況 305
實例198 Y軸尺度顏色 307
實例199 隱藏Y軸尺度 309
實例200 Y軸尺度筆觸 310
實例201 Y軸尺度標簽角度 312
實例202 Y軸起始值 313
實例203 Y軸箭頭 314
實例204 Y軸主要刻度線 316
實例205 Y軸主要刻度線長度 317
實例206 Y軸次要刻度線 319
實例207 Y軸次要刻度線長度 320
實例208 設置Y軸最大值 322
實例209 設置Y軸數據范圍 323
實例210 Y軸的顯示位置 324
8.7 高級柱形圖 326
實例211 設置網格豎線 326
實例212 設置網格豎線顏色 328
實例213 設置柱形圖文本註解 329
實例214 設置柱形圖文本註解字體 331
實例215 設置柱形圖文本註解顏色 333
實例216 設置柱形圖文本註解錨點 334
實例217 設置柱形圖文本註解類別錨點 336
實例218 設置柱形圖文本註解旋轉錨點 338
實例219 設置柱形圖線條註解 339
實例220 繪制柱形效果 341
實例221 柱形圖陰影 342
實例222 柱形圖陰影偏移 344
實例223 設置柱形的顏色 345
實例224 繪制3D柱形圖 346
實例225 標記柱形圖區間 348
實例226 多系列柱形圖 350
實例227 多系列3D柱形圖 352
第9章 擴展圖表技術 354
9.1 區域圖 355
實例228 基本區域圖 355
實例229 顯示多分類區域圖 357
實例230 設置區域圖透明度 359
實例231 添加說明文字 360
實例232 設置說明文字位置 362
實例233 區域圖X軸顯示位置 363
實例234 區域圖X軸標簽角度 364
實例235 區域圖X軸尺度標簽角度 366
實例236 設置區域顏色 367
9.2 氣泡圖 368
實例237 基本氣泡圖 368
實例238 氣泡圖X軸標簽 371
實例239 氣泡圖Y軸標簽 372
實例240 設置坐標范圍 374
實例241 設置透明度 375
實例242 設置氣泡顏色 377
實例243 氣泡圖X軸標簽角度 378
實例244 氣泡圖X軸尺度標簽角度 379
9.3 分步圖 381
實例245 基本分步圖 381
實例246 加粗分步圖 383
實例247 顯示虛線效果 385
實例248 設置分步圖顏色 386
實例249 隱藏分步圖 387
實例250 分步圖X軸顯示位置 389
實例251 分步圖X軸標簽角度 390
實例252 分步圖X軸尺度標簽角度 391
9.4 聯合分類圖 393
實例253 生成線形圖與柱形圖 393
實例254 設置圖表高度 395
實例255 設置圖表位置 397
實例256 線形圖與分布圖 398
9.5 雙軸圖 400
實例257 基本雙軸圖 400
實例258 基本雙Y圖 402
實例259 雙Y軸字體 404
實例260 3D雙軸圖 406
實例261 設置雙軸圖顏色 407
實例262 雙軸圖X軸標簽角度 409
實例263 雙軸圖X軸尺度標簽角度 410
9.6 折線圖 412
實例264 基本折線圖 412
實例265 多條折線圖 414
實例266 水平折線圖 416
實例267 隱藏折線圖 417
實例268 加粗折線 419
實例269 顯示折線節點 420
實例270 生成節點圖 421
實例271 設置虛線圖 423
實例272 設置折線顏色 424
實例273 3D折線圖 426
實例274 XY折線圖 427
實例275 排序折線圖 429
9.7 環形圖 431
實例276 基本環形圖 431
實例277 環形圖字體 432
實例278 設置環形深度 434
實例279 分離環形圖 436
實例280 橢圓環形圖 437
實例281 環形的陰影偏移 438
實例282 環形的簡單標簽 439
實例283 環形的旋轉角度 441
9.8 堆積條形圖 442
實例284 基本堆積條形圖 442
實例285 橫向堆積條形圖 445
實例286 設置邊線距離 446
實例287 渲染分組堆積條形圖 447
9.9 時序圖 450
實例288 基本時序圖 450
實例289 設置時間顯示格式 452
實例290 添加雙時間軸 453
實例291 雙時間軸位置 455
實例292 動態顯示十字標記 456
實例293 添加Y軸標記 458
實例294 添加X軸標記 459
實例295 設置刻度單位 461
實例296 設置時間軸范圍 462
第3篇 網路技術篇
第10章 網路應用基礎 466
10.1 網路地址解析 467
實例297 獲取本地主機的IP地址 467
實例298 獲取本地主機的域名和主機名 468
實例299 通過域名獲得IP地址 469
實例300 通過IP地址獲得域名和主機名 470
實例301 獲得內網的所有IP地址 472
10.2 網路資源管理 474
實例302 獲取網路資源的大小 474
實例303 解析網頁中的內容 475
實例304 網路資源的單線程下載 476
實例305 網路資源的多線程下載 478
實例306 下載網路資源的斷點繼傳 480
第11章 TCP套接字 483
11.1 Socket基礎 484
實例307 建立伺服器套接字 484
實例308 建立客戶端套接字 485
實例309 設置等待連接的超時時間 486
實例310 獲取Socket信息 487
實例311 接收和發送Socket信息 488
實例312 關閉Socket緩沖 491
11.2 TCP網路通信 492
實例313 使用Socket通信 492
實例314 防止Socket傳遞漢字亂碼 495
實例315 使用Socket傳遞對象 497
實例316 使用Socket傳輸圖片 499
實例317 使用Socket傳輸音頻 501
實例318 使用Socket傳輸視頻 503
實例319 一個伺服器與一個客戶端通信 504
實例320 一個伺服器與多個客戶端通信 506
實例321 客戶端一對多通信 508
實例322 客戶端一對一通信 509
實例323 基於Socket的資料庫編程 511
實例324 使用Proxy創建代理伺服器 513
實例325 使用ProxySelector選擇代理伺服器 514
11.3 TCP實用程序 516
實例326 聊天室伺服器端 516
實例327 聊天室客戶端 518
第12章 郵件收發 521
12.1 簡單郵件 522
實例328 配置郵件服務 522
實例329 發送郵件 526
實例330 接收郵件 528
12.2 復雜郵件 529
實例331 發送帶附件的郵件 529
實例332 接收帶附件的郵件 531
實例333 發送郵件時進行身份驗證 533
實例334 接收郵件時進行身份驗證 535
實例335 顯示未讀郵件 536
實例336 顯示已讀郵件 539
第4篇 Java安全與Applet應用篇
第13章 Java安全 544
13.1 Java對稱加密 545
實例337 使用BASE64加密 545
實例338 使用BASE64解密 546
實例339 生成DES的密鑰 547
實例340 使用DES加密 548
實例341 使用DES解密 549
實例342 PBE的鹽值 551
實例343 生成PBE的密鑰 552
實例344 使用PBE加密 552
實例345 使用PBE解密 553
13.2 Java非對稱加密 555
實例346 生成RSA密鑰對 555
實例347 使用RSA的簽名 556
實例348 RSA服務端加密 557
實例349 RSA客戶端加密 559
實例350 DH服務端加密 560
實例351 DH客戶端加密 563
13.3 Java單項加密 565
實例352 使用MD5加密 565
實例353 使用Hmac加密 566
實例354 使用DSA加密 568
第14章 Applet的應用 570
14.1 Applet在html中的使用 571
實例355 在html中顯示Applet 571
實例356 設置Applet的顯示位置 572
實例357 Applet獲取頁面傳遞的參數 573
實例358 使用<applet>標記中的archive屬性 574
14.2 Applet的方法 576
實例359 使用paint()方法繪制頁面內容 576
實例360 使用update()方法更新頁面內容 577
實例361 使用repaint()方法重新繪制頁面 578
實例362 Applet顯示地址欄上的路徑 579
實例363 Applet顯示class存放的路徑 581
14.3 Applet中的文字處理 582
實例364 控制Applet字體大小 582
實例365 控制Applet文字位置 583
實例366 控制Applet字體樣式 584
實例367 Applet中繪制立體效果的文字 585
實例368 Applet中繪制陰影效果的文字 586
實例369 Applet中繪制傾斜效果的文字 587
實例370 Applet中繪制漸變效果的文字 588
實例371 Applet中繪制會變色的文字 590
實例372 Applet中繪制順時針旋轉的文字 591
實例373 Applet中動態繪制文本 593
14.4 Applet中的圖形處理 594
實例374 Applet繪制直線 594
實例375 Applet繪制矩形 596
實例376 Applet繪制圓角矩形 597
實例377 Applet繪制橢圓 598
實例378 Applet繪制圓弧 599
實例379 Applet繪制折線 600
實例380 Applet繪制多角形 601
實例381 Applet繪制圖片 602
實例382 Applet中的圖形加運算 603
實例383 Applet中的圖形減運算 604
實例384 Applet中的圖形交運算 606
實例385 Applet中的圖形異或運算 607
實例386 Applet中繪制紋理填充圖形 608
14.5 Applet中的圖像處理 609
實例387 Applet中縮放圖像 609
實例388 Applet中翻轉圖像 610
實例389 Applet中旋轉圖像 612
實例390 Applet中傾斜圖像 613
實例391 Applet中調整圖片的亮度 614
實例392 Applet中繪制中文驗證碼 615
實例393 Applet中繪制圖片驗證碼 617
實例394 Applet中繪制帶干擾線的驗證碼 618
實例395 Applet中模糊圖像 620
實例396 Applet中銳化圖像 621
實例397 Applet中照亮圖像邊緣 622
實例398 Applet中反向圖像 624
實例399 Applet中圖像動態拉伸 625
14.6 Applet中的文字動畫 627
實例400 Applet中文字縮放動畫 627
實例401 Applet中文字跑馬燈動畫 628
實例402 Applet中字幕顯示動畫 630
實例403 Applet中文字閃現動畫 631
實例404 Applet中滾動廣告字幕動畫 633
第5篇 XML篇
第15章 初識XML 636
15.1 XML語言基礎 637
實例405 簡單的XML 637
實例406 驗證XML的格式 638
實例407 XML屬性的使用 639
實例408 XML中CDATA的使用 640
15.2 XML與CSS 642
實例409 在XML中使用CSS 642
實例410 CSS格式化XML布局 643
實例411 CSS格式化XML背景色 645
實例412 CSS格式化XML字體 647
實例413 CSS改變XML中的滑鼠手勢 649
實例414 CSS在XML中添加背景圖 651
實例415 CSS製作XML表格 652
15.3 XML與XSLT的元素 654
實例416 在XML使用XSLT 654
實例417 使用XSLT中的template 656
實例418 使用XSLT中的value-of 657
實例419 使用XSLT中的for-each 659
實例420 使用XSLT中的if 660
實例421 使用XSLT中的sort 662
實例422 使用XSLT中的choose 664
實例423 使用XSLT中的-of 665
實例424 使用XSLT中的apply-templates 667
實例425 使用XSLT中的attribute 669
實例426 使用XSLT中的elements 670
15.4 XML與XSLT的內建函數 672
實例427 使用XSLT中的generate-id() 672
實例428 使用XSLT中的format-number() 674
實例429 使用XSLT中的document() 675
15.5 DTD的引用與驗證 678
實例430 在XML內部定義DTD 678
實例431 在XML外部引用DTD 679
實例432 驗證XML是否符合DTD的定義 680
15.6 使用DTD定義XML元素 682
實例433 在DTD聲明元素 682
實例434 在DTD聲明重復元素 683
實例435 在DTD聲明選擇性元素 684
實例436 在DTD中使用ENTITY 686
15.7 使用DTD定義XML屬性 687
實例437 在DTD聲明元素屬性 687
實例438 在DTD聲明帶有#IMPLIED的屬性 688
實例439 在DTD聲明帶有#REQUIRED的屬性 690
實例440 在DTD聲明帶有#FIXED的屬性 691
實例441 在DTD聲明列舉屬性值 692
實例442 類型為ID的屬性實例 693
實例443 類型為IDREF的屬性實例 695
實例444 類型為NMTOKEN的屬性實例 697
第16章 XML Schema 699
16.1 XSD的引用與驗證 700
實例445 在XML中使用XML Schema 700
實例446 驗證XML是否符合Schema的描述 701
實例447 XSD文檔根元素的引用 703
實例448 在XSD中使用注釋 703
16.2 使用XSD簡單類型定義XML元素 704
實例449 在XSD定義XML元素 704
實例450 使用xs:simpleType和xs:restriction 705
實例451 使用xs:list 706
實例452 使用xs:enumeration 708
實例453 使用xs:pattern 710
16.3 使用XSD復雜類型定義XML元素 711
實例454 使用xs:complexType和xs:sequence 711
實例455 使用xs:choice 713
實例456 使用xs:all 714
實例457 使用xs:group 716
實例458 使用xs:extension和xs:simpleContent 718
實例459 使用xs:extension和xs:complexContent 719
實例460 使用xs:restriction和xs:simpleContent 721
實例461 使用xs:restriction和xs:complexContent 723
實例462 使用xs:attributeGroup和xs:attribute 725
16.4 使用XSD的普通類型 727
實例463 在XSD中對字元進行限制 727
實例464 在XSD中對數值進行限制 728
第17章 解析XML文件 730
17.1 使用SAX讀取XML 731
實例465 從文件中讀取XML 731
實例466 從數據流中讀取XML 732
實例467 從數據源中讀取XML 733
17.2 使用SAX解析XML 734
實例468 解析XML元素名稱 734
實例469 解析XML元素名稱和內容 736
實例470 解析XML元素屬性和屬性值 738
實例471 使用VO解析XML元素 740
實例472 使用VO解析XML元素和屬性 741
實例473 使用SAX驗證DTD 743
17.3 使用DOM讀取XML 745
實例474 從文件中讀取XML 745
實例475 從數據流中讀取XML 746
實例476 從數據源中讀取XML 747
17.4 使用DOM解析XML 748
實例477 解析XML元素名稱 748
實例478 解析XML元素名稱和內容 749
實例479 解析XML元素屬性和屬性值 751
實例480 使用VO解析XML元素 752
實例481 使用VO解析XML元素和屬性 753
17.5 使用DOM操作XML 755
實例482 創建簡單的XML文件 755
實例483 創建基本的XML文件 757
實例484 使用VO創建XML文件 759
實例485 使用DOM添加XML元素 761
實例486 使用DOM修改XML元素 764
實例487 使用DOM刪除XML元素 766
第6篇 操作PDF篇
第18章 操作PDF文檔 770
18.1 文檔和文檔屬性 771
實例488 創建PDF文檔 771
實例489 添加PDF文檔標題 772
實例490 添加PDF文檔主題 773
實例491 添加PDF文檔關鍵詞 774
實例492 添加PDF文檔作者 775
實例493 添加PDF文檔創建者 776
實例494 添加PDF文檔製作者 777
實例495 添加PDF文檔創建日期 778
18.2 初始化操作 779
實例496 設置頁面大小 779
實例497 橫向顯示頁面 780
實例498 縱向顯示頁面 781
實例499 添加水印 782
實例500 添加頁眉和頁腳 783
實例501 創建新頁 784
實例502 為PDF文檔添加頁碼 785
18.3 字體與中文處理 786
實例503 設置特殊的文本字體 786
實例504 加粗字體 787
實例505 添加下劃線 788
實例506 添加刪除線 789
實例507 在PDF文檔中顯示中文 790
實例508 設置PDF文檔密碼 791
18.4 塊、短語、段落、章節和區域 792
實例509 添加和創建塊 792
實例510 設置上標和下標 793
實例511 設置文本背景顏色 794
實例512 添加和創建短語 795
實例513 添加和創建段落 796
實例514 設置段落首行縮進 797
實例515 設置段落的上下間距 798
實例516 設置段落左右縮進 799
實例517 設置段落的對齊方式 800
實例518 設置段落字體大小 801
實例519 設置段落文本顏色 802
實例520 添加章節 803
實例521 在章節中添加小節 804
實例522 在小節中添加列表 805
實例523 在小節中添加段落 807
實例524 在小節中添加表格 808
實例525 在小節中添加圖片 809
18.5 讀取PDF文檔 810
實例526 文本文件轉換為PDF文檔 810
實例527 讀取PDF文檔 812
實例528 讀取加密的PDF文檔 813
實例529 編輯PDF文檔 814
實例530 導入已有文檔 816
實例531 導入並添加頁碼 817
實例532 導入並添加水印 818
實例533 導入並添加新頁和內容 819
實例534 拆分PDF文檔 821
實例535 合並PDF文檔 822
實例536 列印PDF文檔 823
……
第19章 繪制PDF圖形和圖像
第20章 繪制PDF表格
第21章 設置閱讀器參數
Ⅱ Java操作pdf表格數據
用Java簡單的讀取pdf文件中的數據:
第一步:下載PDFBox-0.7.2.jar。提供一個下載地址: http://pdfhome.hope.com.cn/Resource.aspx?CID=63844604-5253-4ae1-b023-258c9e324061&RID=20cd8f94-1cee-40b6-a3df-0ef024f8e0d2解壓後,把lib文件下的PDFBox-0.7.2.jar,PDFBox-0.7.2-log4j.jar放到你classpath路徑下。(我把源碼以及jar包都放到下面的附件里,方面你的使用。)
第二步:寫個簡單的讀取pdf文件的程序。(PdfReader.java)
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
public class PdfReader {
public void readFdf(String file) throws Exception {
// 是否排序
boolean sort = false;
// pdf文件名
String pdfFile = file;
// 輸入文本文件名稱
String textFile = null;
// 編碼方式
String encoding = "UTF-8";
// 開始提取頁數
int startPage = 1;
// 結束提取頁數
int endPage = Integer.MAX_VALUE;
// 文件輸入流,生成文本文件
Writer output = null;
// 內存中存儲的PDF Document
PDDocument document = null;
try {
try {
// 首先當作一個URL來裝載文件,如果得到異常再從本地文件系統//去裝載文件
URL url = new URL(pdfFile);
//注意參數已不是以前版本中的URL.而是File。
document = PDDocument.load(pdfFile);
// 獲取PDF的文件名
String fileName = url.getFile();
// 以原來PDF的名稱來命名新產生的txt文件
if (fileName.length() > 4) {
File outputFile = new File(fileName.substring(0, fileName
.length() - 4)
+ ".txt");
textFile = outputFile.getName();
}
} catch (MalformedURLException e) {
// 如果作為URL裝載得到異常則從文件系統裝載
//注意參數已不是以前版本中的URL.而是File。
document = PDDocument.load(pdfFile);
if (pdfFile.length() > 4) {
textFile = pdfFile.substring(0, pdfFile.length() - 4)
+ ".txt";
}
}
// 文件輸入流,寫入文件倒textFile
output = new OutputStreamWriter(new FileOutputStream(textFile),
encoding);
// PDFTextStripper來提取文本
PDFTextStripper stripper = null;
stripper = new PDFTextStripper();
// 設置是否排序
stripper.setSortByPosition(sort);
// 設置起始頁
stripper.setStartPage(startPage);
// 設置結束頁
stripper.setEndPage(endPage);
// 調用PDFTextStripper的writeText提取並輸出文本
stripper.writeText(document, output);
} finally {
if (output != null) {
// 關閉輸出流
output.close();
}
if (document != null) {
// 關閉PDF Document
document.close();
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PdfReader pdfReader = new PdfReader();
try {
// 取得E盤下的SpringGuide.pdf的內容
pdfReader.readFdf("E:\\SpringGuide.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
這樣就簡單的完成了從pdf中讀取數據了。在你的pdf文件所在的目錄下生成一個同名的txt文件。
Ⅲ java 生成PDF表格
實現代碼如下:
package com.qhdstar.java.pdf;
import java.awt.Color;
import java.io.FileOutputStream;
import com.lowagie.text.Chapter;
import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Section;
import com.lowagie.text.pdf.PdfWriter;
/**
* 描述:TODO 【JAVA生成PDF】
*
*
* @title GeneratePDF
* @version V1.0
*/
public class GeneratePDF {
public static void main(String[] args) {
//調用第一個方法,向C盤生成一個名字為ITextTest.pdf 的文件
try {
writeSimplePdf();
}
catch (Exception e) { e.printStackTrace(); }
//調用第二個方法,向C盤名字為ITextTest.pdf的文件,添加章節。
try {
writeCharpter();
}
catch (Exception e) { e.printStackTrace(); }
}
public static void writeSimplePdf() throws Exception {
// 1.新建document對象
// 第一個參數是頁面大小。接下來的參數分別是左、右、上和下頁邊距。
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
// 2.建立一個書寫器(Writer)與document對象關聯,通過書寫器(Writer)可以將文檔寫入到磁碟中。
// 創建 PdfWriter 對象 第一個參數是對文檔對象的引用,第二個參數是文件的實際名稱,在該名稱中還會給出其輸出路徑。
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:\\ITextTest.pdf"));
// 3.打開文檔
document.open();
// 4.向文檔中添加內容
// 通過 com.lowagie.text.Paragraph 來添加文本。可以用文本及其默認的字體、顏色、大小等等設置來創建一個默認段落
document.add(new Paragraph("First page of the document."));
document.add(new Paragraph("Some more text on the first page with different color and font type.", FontFactory.getFont(FontFactory.COURIER, 14, Font.BOLD, new Color(255, 150, 200))));
// 5.關閉文檔
document.close();
}
/**
* 添加含有章節的pdf文件
*
* @throws Exception
*/
public static void writeCharpter() throws Exception {
// 新建document對象 第一個參數是頁面大小。接下來的參數分別是左、右、上和下頁邊距。
Document document = new Document(PageSize.A4, 20, 20, 20, 20);
// 建立一個書寫器(Writer)與document對象關聯,通過書寫器(Writer)可以將文檔寫入到磁碟中。
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("c:\\ITextTest.pdf"));
// 打開文件
document.open();
// 標題
document.addTitle("Hello mingri example");
// 作者
document.addAuthor("wolf");
// 主題
document.addSubject("This example explains how to add metadata.");
document.addKeywords("iText, Hello mingri");
document.addCreator("My program using iText");
// document.newPage();
// 向文檔中添加內容
document.add(new Paragraph("\n"));
document.add(new Paragraph("\n"));
document.add(new Paragraph("\n"));
document.add(new Paragraph("\n"));
document.add(new Paragraph("\n"));
document.add(new Paragraph("First page of the document."));
document.add(new Paragraph("First page of the document."));
document.add(new Paragraph("First page of the document."));
document.add(new Paragraph("First page of the document."));
document.add(new Paragraph("Some more text on the first page with different color and font type.", FontFactory.getFont(FontFactory.defaultEncoding, 10, Font.BOLD, new Color(0, 0, 0))));
Paragraph title1 = new Paragraph("Chapter 1", FontFactory.getFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255)));
// 新建章節
Chapter chapter1 = new Chapter(title1, 1);
chapter1.setNumberDepth(0);
Paragraph title11 = new Paragraph("This is Section 1 in Chapter 1", FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0)));
Section section1 = chapter1.addSection(title11);
Paragraph someSectionText = new Paragraph("This text comes as part of section 1 of chapter 1.");
section1.add(someSectionText);
someSectionText = new Paragraph("Following is a 3 X 2 table.");
section1.add(someSectionText);
document.add(chapter1);
// 關閉文檔
document.close();
}
}
Ⅳ 求《Java範例開發大全》張帆著 pdf ,不要源代碼
是這個吧!
Ⅳ java編程規范!!!
名稱 Java語言編碼規范(Java Code Conventions)
簡介 本文檔講述了Java語言的編碼規范,較之陳世忠先生《c++編碼規范》的浩繁詳盡,此文當屬短小精悍了。而其中所列之各項條款,從編碼風格,到注意事項,不單只Java,對於其他語言,也都很有借鑒意義。因為簡短,所以易記,大家不妨將此作為handbook,常備案頭,逐一對驗。
1 介紹
1.1 為什麼要有編碼規范
1.2 版權聲明
2 文件名
2.1 文件後綴
2.2 常用文件名
3 文件組織
3.1 Java源文件
3.1.1 開頭注釋
3.1.2 包和引入語句
3.1.3 類和介面聲明
4 縮進排版
4.1 行長度
4.2 換行
5 注釋
5.1 實現注釋的格式
5.1.1 塊注釋
5.1.2 單行注釋
5.1.3 尾端注釋
5.1.4 行末注釋
5.2 文擋注釋
6 聲明
6.1 每行聲明變數的數量
6.2 初始化
6.3 布局
6.4 類和介面的聲明
7 語句
7.1 簡單語句
7.2 復合語句
7.3 返回語句
7.4 if,if-else,if else-if else語句
7.5 for語句
7.6 while語句
7.7 do-while語句
7.8 switch語句
7.9 try-catch語句
8 空白
8.1 空行
8.2 空格
9 命名規范
10 編程慣例
10.1 提供對實例以及類變數的訪問控制
10.2 引用類變數和類方法
10.3 常量
10.4 變數賦值
10.5 其它慣例
10.5.1 圓括弧
10.5.2 返回值
10.5.3 條件運算符"?"前的表達式"?"前的表達式
10.5.4 特殊注釋
11 代碼範例
11.1 Java源文件範例
1 介紹(Introction)
1.1 為什麼要有編碼規范(Why Have Code Conventions)
編碼規范對於程序員而言尤為重要,有以下幾個原因:
- 一個軟體的生命周期中,80%的花費在於維護
- 幾乎沒有任何一個軟體,在其整個生命周期中,均由最初的開發人員來維護
- 編碼規范可以改善軟體的可讀性,可以讓程序員盡快而徹底地理解新的代碼
- 如果你將源碼作為產品發布,就需要確任它是否被很好的打包並且清晰無誤,一如你已構建的其它任何產品
為了執行規范,每個軟體開發人員必須一致遵守編碼規范。每個人。
1.2 版權聲明(Acknowledgments)
本文檔反映的是Sun MicroSystems公司,Java語言規范中的編碼標准部分。主要貢獻者包括:Peter King,Patrick Naughton,Mike DeMoney,Jonni Kanerva,Kathy Walrath以及Scott Hommel。
本文檔現由Scott Hommel維護,有關評論意見請發至[email protected]
2 文件名(File Names)
這部分列出了常用的文件名及其後綴。
2.1 文件後綴(File Suffixes)
Java程序使用下列文件後綴:
文件類別 文件後綴
Java源文件 .java
Java位元組碼文件 .class
2.2 常用文件名(Common File Names)
常用的文件名包括:
文件名 用途
GNUmakefile makefiles的首選文件名。我們採用gnumake來創建(build)軟體。
README 概述特定目錄下所含內容的文件的首選文件名
3 文件組織(File Organization)
一個文件由被空行分割而成的段落以及標識每個段落的可選注釋共同組成。超過2000行的程序難以閱讀,應該盡量避免。"Java源文件範例"提供了一個布局合理的Java程序範例。
3.1 Java源文件(Java Source Files)
每個Java源文件都包含一個單一的公共類或介面。若私有類和介面與一個公共類相關聯,可以將它們和公共類放入同一個源文件。公共類必須是這個文件中的第一個類或介面。
Java源文件還遵循以下規則:
- 開頭注釋(參見"開頭注釋")
- 包和引入語句(參見"包和引入語句")
- 類和介面聲明(參見"類和介面聲明")
3.1.1 開頭注釋(Beginning Comments)
所有的源文件都應該在開頭有一個C語言風格的注釋,其中列出類名、版本信息、日期和版權聲明:
/*
* Classname
*
* Version information
*
* Date
*
* Copyright notice
*/
3.1.2 包和引入語句(Package and Import Statements)
在多數Java源文件中,第一個非注釋行是包語句。在它之後可以跟引入語句。例如:
package java.awt;
import java.awt.peer.CanvasPeer;
3.1.3 類和介面聲明(Class and Interface Declarations)
下表描述了類和介面聲明的各個部分以及它們出現的先後次序。參見"Java源文件範例"中一個包含注釋的例子。
類/介面聲明的各部分 註解
1 類/介面文檔注釋(/**……*/) 該注釋中所需包含的信息,參見"文檔注釋"
2 類或介面的聲明
3 類/介面實現的注釋(/*……*/)如果有必要的話 該注釋應包含任何有關整個類或介面的信息,而這些信息又不適合作為類/介面文檔注釋。
4 類的(靜態)變數 首先是類的公共變數,隨後是保護變數,再後是包一級別的變數(沒有訪問修飾符,access modifier),最後是私有變數。
5 實例變數 首先是公共級別的,隨後是保護級別的,再後是包一級別的(沒有訪問修飾符),最後是私有級別的。
6 構造器
7 方法 這些方法應該按功能,而非作用域或訪問許可權,分組。例如,一個私有的類方法可以置於兩個公有的實例方法之間。其目的是為了更便於閱讀和理解代碼。
4 縮進排版(Indentation)
4個空格常被作為縮進排版的一個單位。縮進的確切解釋並未詳細指定(空格 vs. 製表符)。一個製表符等於8個空格(而非4個)。
4.1 行長度(Line Length)
盡量避免一行的長度超過80個字元,因為很多終端和工具不能很好處理之。
注意:用於文檔中的例子應該使用更短的行長,長度一般不超過70個字元。
4.2 換行(Wrapping Lines)
當一個表達式無法容納在一行內時,可以依據如下一般規則斷開之:
- 在一個逗號後面斷開
- 在一個操作符前面斷開
- 寧可選擇較高級別(higher-level)的斷開,而非較低級別(lower-level)的斷開
- 新的一行應該與上一行同一級別表達式的開頭處對齊
- 如果以上規則導致你的代碼混亂或者使你的代碼都堆擠在右邊,那就代之以縮進8個空格。
以下是斷開方法調用的一些例子:
someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
var = someMethod1(longExpression1,
someMethod2(longExpression2,
longExpression3));
以下是兩個斷開算術表達式的例子。前者更好,因為斷開處位於括弧表達式的外邊,這是個較高級別的斷開。
longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; //PREFFER
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; //AVOID
以下是兩個縮進方法聲明的例子。前者是常規情形。後者若使用常規的縮進方式將會使第二行和第三行移得很靠右,所以代之以縮進8個空格
//CONVENTIONAL INDENTATION
someMethod(int anArg, Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
//INDENT 8 SPACES TO AVOID VERY DEEP INDENTS
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
if語句的換行通常使用8個空格的規則,因為常規縮進(4個空格)會使語句體看起來比較費勁。比如:
//DON』T USE THIS INDENTATION
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) { //BAD WRAPS
doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS
}
//USE THIS INDENTATION INSTEAD
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
//OR USE THIS
if ((condition1 && condition2) || (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
這里有三種可行的方法用於處理三元運算表達式:
alpha = (aLongBooleanExpression) ? beta : gamma;
alpha = (aLongBooleanExpression) ? beta
: gamma;
alpha = (aLongBooleanExpression)
? beta
: gamma;
5 注釋(Comments)
Java程序有兩類注釋:實現注釋(implementation comments)和文檔注釋(document comments)。實現注釋是那些在C++中見過的,使用/*...*/和//界定的注釋。文檔注釋(被稱為"doc comments")是Java獨有的,並由/**...*/界定。文檔注釋可以通過javadoc工具轉換成HTML文件。
實現注釋用以注釋代碼或者實現細節。文檔注釋從實現自由(implementation-free)的角度描述代碼的規范。它可以被那些手頭沒有源碼的開發人員讀懂。
注釋應被用來給出代碼的總括,並提供代碼自身沒有提供的附加信息。注釋應該僅包含與閱讀和理解程序有關的信息。例如,相應的包如何被建立或位於哪個目錄下之類的信息不應包括在注釋中。
在注釋里,對設計決策中重要的或者不是顯而易見的地方進行說明是可以的,但應避免提供代碼中己清晰表達出來的重復信息。多餘的的注釋很容易過時。通常應避免那些代碼更新就可能過時的注釋。
注意:頻繁的注釋有時反映出代碼的低質量。當你覺得被迫要加註釋的時候,考慮一下重寫代碼使其更清晰。
注釋不應寫在用星號或其他字元畫出來的大框里。注釋不應包括諸如製表符和回退符之類的特殊字元。
5.1 實現注釋的格式(Implementation Comment Formats)
程序可以有4種實現注釋的風格:塊(block)、單行(single-line)、尾端(trailing)和行末(end-of-line)。
5.1.1 塊注釋(Block Comments)
塊注釋通常用於提供對文件,方法,數據結構和演算法的描述。塊注釋被置於每個文件的開始處以及每個方法之前。它們也可以被用於其他地方,比如方法內部。在功能和方法內部的塊注釋應該和它們所描述的代碼具有一樣的縮進格式。
塊注釋之首應該有一個空行,用於把塊注釋和代碼分割開來,比如:
/*
* Here is a block comment.
*/
塊注釋可以以/*-開頭,這樣indent(1)就可以將之識別為一個代碼塊的開始,而不會重排它。
/*-
* Here is a block comment with some very special
* formatting that I want indent(1) to ignore.
*
* one
* two
* three
*/
注意:如果你不使用indent(1),就不必在代碼中使用/*-,或為他人可能對你的代碼運行indent(1)作讓步。
參見"文檔注釋"
5.1.2 單行注釋(Single-Line Comments)
短注釋可以顯示在一行內,並與其後的代碼具有一樣的縮進層級。如果一個注釋不能在一行內寫完,就該採用塊注釋(參見"塊注釋")。單行注釋之前應該有一個空行。以下是一個Java代碼中單行注釋的例子:
if (condition) {
/* Handle the condition. */
...
}
5.1.3 尾端注釋(Trailing Comments)
極短的注釋可以與它們所要描述的代碼位於同一行,但是應該有足夠的空白來分開代碼和注釋。若有多個短注釋出現於大段代碼中,它們應該具有相同的縮進。
以下是一個Java代碼中尾端注釋的例子:
if (a == 2) {
return TRUE; /* special case */
} else {
return isPrime(a); /* works only for odd a */
}
5.1.4 行末注釋(End-Of-Line Comments)
注釋界定符"//",可以注釋掉整行或者一行中的一部分。它一般不用於連續多行的注釋文本;然而,它可以用來注釋掉連續多行的代碼段。以下是所有三種風格的例子:
if (foo > 1) {
// Do a double-flip.
...
}
else {
return false; // Explain why here.
}
//if (bar > 1) {
//
// // Do a triple-flip.
// ...
//}
//else {
// return false;
//}
5.2 文檔注釋(Documentation Comments)
注意:此處描述的注釋格式之範例,參見"Java源文件範例"
若想了解更多,參見"How to Write Doc Comments for Javadoc",其中包含了有關文檔注釋標記的信息(@return, @param, @see):
http://java.sun.com/javadoc/writingdoccomments/index.html
若想了解更多有關文檔注釋和javadoc的詳細資料,參見javadoc的主頁:
http://java.sun.com/javadoc/index.html
文檔注釋描述Java的類、介面、構造器,方法,以及欄位(field)。每個文檔注釋都會被置於注釋定界符/**...*/之中,一個注釋對應一個類、介面或成員。該注釋應位於聲明之前:
/**
* The Example class provides ...
*/
public class Example { ...
注意頂層(top-level)的類和介面是不縮進的,而其成員是縮進的。描述類和介面的文檔注釋的第一行(/**)不需縮進;隨後的文檔注釋每行都縮進1格(使星號縱向對齊)。成員,包括構造函數在內,其文檔注釋的第一行縮進4格,隨後每行都縮進5格。
若你想給出有關類、介面、變數或方法的信息,而這些信息又不適合寫在文檔中,則可使用實現塊注釋(見5.1.1)或緊跟在聲明後面的單行注釋(見5.1.2)。例如,有關一個類實現的細節,應放入緊跟在類聲明後面的實現塊注釋中,而不是放在文檔注釋中。
文檔注釋不能放在一個方法或構造器的定義塊中,因為Java會將位於文檔注釋之後的第一個聲明與其相關聯。
6 聲明(Declarations)
6.1 每行聲明變數的數量(Number Per Line)
推薦一行一個聲明,因為這樣以利於寫注釋。亦即,
int level; // indentation level
int size; // size of table
要優於,
int level, size;
不要將不同類型變數的聲明放在同一行,例如:
int foo, fooarray[]; //WRONG!
注意:上面的例子中,在類型和標識符之間放了一個空格,另一種被允許的替代方式是使用製表符:
int level; // indentation level
int size; // size of table
Object currentEntry; // currently selected table entry
6.2 初始化(Initialization)
盡量在聲明局部變數的同時初始化。唯一不這么做的理由是變數的初始值依賴於某些先前發生的計算。
6.3 布局(Placement)
只在代碼塊的開始處聲明變數。(一個塊是指任何被包含在大括弧"{"和"}"中間的代碼。)不要在首次用到該變數時才聲明之。這會把注意力不集中的程序員搞糊塗,同時會妨礙代碼在該作用域內的可移植性。
void myMethod() {
int int1 = 0; // beginning of method block
if (condition) {
int int2 = 0; // beginning of "if" block
...
}
}
該規則的一個例外是for循環的索引變數
for (int i = 0; i < maxLoops; i++) { ... }
避免聲明的局部變數覆蓋上一級聲明的變數。例如,不要在內部代碼塊中聲明相同的變數名:
int count;
...
myMethod() {
if (condition) {
int count = 0; // AVOID!
...
}
...
}
6.4 類和介面的聲明(Class and Interface Declarations)
當編寫類和介面是,應該遵守以下格式規則:
- 在方法名與其參數列表之前的左括弧"("間不要有空格
- 左大括弧"{"位於聲明語句同行的末尾
- 右大括弧"}"另起一行,與相應的聲明語句對齊,除非是一個空語句,"}"應緊跟在"{"之後
class Sample extends Object {
int ivar1;
int ivar2;
Sample(int i, int j) {
ivar1 = i;
ivar2 = j;
}
int emptyMethod() {}
...
}
- 方法與方法之間以空行分隔
7 語句(Statements)
7.1 簡單語句(Simple Statements)
每行至多包含一條語句,例如:
argv++; // Correct
argc--; // Correct
argv++; argc--; // AVOID!
7.2 復合語句(Compound Statements)
復合語句是包含在大括弧中的語句序列,形如"{ 語句 }"。例如下面各段。
- 被括其中的語句應該較之復合語句縮進一個層次
- 左大括弧"{"應位於復合語句起始行的行尾;右大括弧"}"應另起一行並與復合語句首行對齊。
- 大括弧可以被用於所有語句,包括單個語句,只要這些語句是諸如if-else或for控制結構的一部分。這樣便於添加語句而無需擔心由於忘了加括弧而引入bug。
7.3 返回語句(return Statements)
一個帶返回值的return語句不使用小括弧"()",除非它們以某種方式使返回值更為顯見。例如:
return;
return myDisk.size();
return (size ? size : defaultSize);
7.4 if,if-else,if else-if else語句(if, if-else, if else-if else Statements)
if-else語句應該具有如下格式:
if (condition) {
statements;
}
if (condition) {
statements;
} else {
statements;
}
if (condition) {
statements;
} else if (condition) {
statements;
} else{
statements;
}
注意:if語句總是用"{"和"}"括起來,避免使用如下容易引起錯誤的格式:
if (condition) //AVOID! THIS OMITS THE BRACES {}!
statement;
7.5 for語句(for Statements)
一個for語句應該具有如下格式:
for (initialization; condition; update) {
statements;
}
一個空的for語句(所有工作都在初始化,條件判斷,更新子句中完成)應該具有如下格式:
for (initialization; condition; update);
當在for語句的初始化或更新子句中使用逗號時,避免因使用三個以上變數,而導致復雜度提高。若需要,可以在for循環之前(為初始化子句)或for循環末尾(為更新子句)使用單獨的語句。
7.6 while語句(while Statements)
一個while語句應該具有如下格式
while (condition) {
statements;
}
一個空的while語句應該具有如下格式:
while (condition);
7.7 do-while語句(do-while Statements)
一個do-while語句應該具有如下格式:
do {
statements;
} while (condition);
7.8 switch語句(switch Statements)
一個switch語句應該具有如下格式:
switch (condition) {
case ABC:
statements;
/* falls through */
case DEF:
statements;
break;
case XYZ:
statements;
break;
default:
statements;
break;
}
每當一個case順著往下執行時(因為沒有break語句),通常應在break語句的位置添加註釋。上面的示例代碼中就包含注釋/* falls through */。
7.9 try-catch語句(try-catch Statements)
一個try-catch語句應該具有如下格式:
try {
statements;
} catch (ExceptionClass e) {
statements;
}
一個try-catch語句後面也可能跟著一個finally語句,不論try代碼塊是否順利執行完,它都會被執行。
try {
statements;
} catch (ExceptionClass e) {
statements;
} finally {
statements;
}
8 空白(White Space)
8.1 空行(Blank Lines)
空行將邏輯相關的代碼段分隔開,以提高可讀性。
下列情況應該總是使用兩個空行:
- 一個源文件的兩個片段(section)之間
- 類聲明和介面聲明之間
下列情況應該總是使用一個空行:
- 兩個方法之間
- 方法內的局部變數和方法的第一條語句之間
- 塊注釋(參見"5.1.1")或單行注釋(參見"5.1.2")之前
- 一個方法內的兩個邏輯段之間,用以提高可讀性
8.2 空格(Blank Spaces)
下列情況應該使用空格:
- 一個緊跟著括弧的關鍵字應該被空格分開,例如:
while (true) {
...
}
注意:空格不應該置於方法名與其左括弧之間。這將有助於區分關鍵字和方法調用。
- 空白應該位於參數列表中逗號的後面
- 所有的二元運算符,除了".",應該使用空格將之與操作數分開。一元操作符和操作數之間不因該加空格,比如:負號("-")、自增("++")和自減("--")。例如:
a += c + d;
a = (a + b) / (c * d);
while (d++ = s++) {
n++;
}
printSize("size is " + foo + "\n");
- for語句中的表達式應該被空格分開,例如:
for (expr1; expr2; expr3)
- 強制轉型後應該跟一個空格,例如:
myMethod((byte) aNum, (Object) x);
myMethod((int) (cp + 5), ((int) (i + 3)) + 1);
9 命名規范(Naming Conventions)
命名規范使程序更易讀,從而更易於理解。它們也可以提供一些有關標識符功能的信息,以助於理解代碼,例如,不論它是一個常量,包,還是類。
標識符類型 命名規則 例子
包(Packages) 一個唯一包名的前綴總是全部小寫的ASCII字母並且是一個頂級域名,通常是com,e,gov,mil,net,org,或1981年ISO 3166標准所指定的標識國家的英文雙字元代碼。包名的後續部分根據不同機構各自內部的命名規范而不盡相同。這類命名規范可能以特定目錄名的組成來區分部門(department),項目(project),機器(machine),或注冊名(login names)。 com.sun.eng
com.apple.quicktime.v2
e.cmu.cs.bovik.cheese
類(Classes) 命名規則:類名是個一名詞,採用大小寫混合的方式,每個單詞的首字母大寫。盡量使你的類名簡潔而富於描述。使用完整單詞,避免縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML) class Raster;
class ImageSprite;
介面(Interfaces) 命名規則:大小寫規則與類名相似 interface RasterDelegate;
interface Storing;
方法(Methods) 方法名是一個動詞,採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。 run();
runFast();
getBackground();
變數(Variables) 除了變數名外,所有實例,包括類,類常量,均採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。變數名不應以下劃線或美元符號開頭,盡管這在語法上是允許的。
變數名應簡短且富於描述。變數名的選用應該易於記憶,即,能夠指出其用途。盡量避免單個字元的變數名,除非是一次性的臨時變數。臨時變數通常被取名為i,j,k,m和n,它們一般用於整型;c,d,e,它們一般用於字元型。 char c;
int i;
float myWidth;
實例變數(Instance Variables) 大小寫規則和變數名相似,除了前面需要一個下劃線 int _employeeId;
String _name;
Customer _customer;
常量(Constants) 類常量和ANSI常量的聲明,應該全部大寫,單詞間用下劃線隔開。(盡量避免ANSI常量,容易引起錯誤) static final int MIN_WIDTH = 4;
static final int MAX_WIDTH = 999;
static final int GET_THE_CPU = 1;
10 編程慣例(Programming Practices)
10.1 提供對實例以及類變數的訪問控制(Providing Access to Instance and Class Variables)
若沒有足夠理由,不要把實例或類變數聲明為公有。通常,實例變數無需顯式的設置(set)和獲取(gotten),通常這作為方法調用的邊緣效應 (side effect)而產生。
一個具有公有實例變數的恰當例子,是類僅作為數據結構,沒有行為。亦即,若你要使用一個結構(struct)而非一個類(如果java支持結構的話),那麼把類的實例變數聲明為公有是合適的。
Ⅵ 求《實戰Java高並發程序設計第二版》全文免費下載百度網盤資源,謝謝~
《實戰Java高並發程序設計第二版》網路網盤pdf最新全集下載:
鏈接: https://pan..com/s/1SUfrgnv_8mlRsYEy_bGMBg
Ⅶ 求《Java常用演算法手冊第三版》全文免費下載百度網盤資源,謝謝~
《Java常用演算法手冊第三版》網路網盤pdf最新全集下載:
鏈接: https://pan..com/s/1PJdaTXXYyhN23tyJjMbIWw
Ⅷ 《Java網路編程核心技術詳解》pdf下載在線閱讀全文,求百度網盤雲資源
《Java網路編程核心技術詳解》網路網盤pdf最新全集下載:
鏈接: https://pan..com/s/1_XTd5UzNdDfNK3oN7lcUYQ
Ⅸ 《GoogleAndroidSDK開發範例大全》pdf下載在線閱讀,求百度網盤雲資源
《Google Android SDK開發範例大全》(余志龍//陳昱勛//鄭名傑//陳小鳳//郭秩均|改編)電子書網盤下載免費在線閱讀
鏈接:https://pan..com/s/1UhHOPp6lo7VDFOmYrOINNg
書名:早悉畢Google Android SDK開發範例大全
作者:余志龍//陳昱勛//鄭名傑//陳小鳳//郭秩均|改編
豆瓣評分:7.3
出版社:人民郵電
出版年份:2010-6
頁數:654
內容簡介:
《Google Android SDK開發範例大全(第2版)》在上一版陸芹的基礎上,以Android手機應用程序開發(採用AndroidSDK2.1)為主題,通過160多個範例全面且深度地整合了手機、網陸租絡及服務等多個開發領域,為讀者提高程序設計功力提供了很大的幫助。
全書共分10章,主要以範例集的方式來講述Android的知識點,詳細介紹了開發Android的人機交互界面、Android常用的開發控制項、使用Android手機收發簡訊等通信服務、開發Android手機的自動服務功能和娛樂多媒體功能以及整合Android與Aoogle強大的網路服務等內容。隨書光碟中包括了所有範例的程序代碼。
《Google Android SDK開發範例大全(第2版)》講述由淺入深,由Android的基礎知識到實際開發應用,結構清晰、語言簡潔,非常適合Android的初學者和Android的進階程序開發者閱讀參考。
更強大的手機服務×更先進的影音功能×更優化的G00gIe服務整合,更多不容錯過的精彩範例。
《Google Android SDK開發範例大全(第2版)》範例繼承Java優良傳統,使用開放架構。彈性修改隨心所欲。
易於閱讀的架構設計,每個範例均搭配步驟及完成畫面!
汲取專家開發經驗,指引快速上手捷徑。
Ⅹ 求《Java性能權威指南》全文免費下載百度網盤資源,謝謝~
《Java性能權威指南》網路網盤pdf最新全集下載:
鏈接: https://pan..com/s/1fBeYftOeUM9fz1iBi1HwKA