封面图
目录
- 前言
- 第1章初识Java1
- 1.1第一个Java程序1
- 1.1.1编写Java程序1
- 1.1.2编译Java程序2
- 1.1.3运行Java程序2
- 1.2Java编码规范3
- 1.3 集成开发环境3
- 1.4小结4
- 习题4
- 第2章语言基础5
- 2.1ASCII和Unicode5
- 2.2分隔符7
- 2.3基本类型7
- 2.4变量8
- 2.4.1Java字母和Java数字9
- 2.4.2Sun公司的变量命名规范11
- 2.5常量11
- 2.6字面量11
- 2.6.1整数字面量11
- 2.6.2浮点字面量12
- 2.6.3布尔字面量14
- 2.6.4字符字面量14
- 2.7基本类型转换15
- 2.7.1扩大转换15
- 2.7.2缩小转换15
- 2.8运算符16
- 2.8.1 一元运算符17
- 2.8.2算术运算符18
- 2.8.3相等运算符19
- 2.8.4关系运算符20
- 2.8.5条件运算符20
- 2.8.6移位运算符21
- 2.8.7赋值运算符22
- 2.8.8整数按位运算符22
- 2.8.9逻辑运算符23
- 2.8.10运算符优先级23
- 2.8.11升级24
- 2.9注释24
- 2.10小结25
- 习题25
- 第3章 语句26
- 3.1Java语句概述26
- 3.2if语句27
- 3.3while语句29
- 3.4do-while语句31
- 3.5for语句31
- 3.6break语句34
- 3.7continue语句35
- 3.8switch语句36
- 3.9小结37
- 习题37
- 第4章对象和类38
- 4.1什么是Java对象38
- 4.2Java类39
- 4.2.1域40
- 4.2.2方法40
- 4.2.3UML类图中的类成员42
- 4.3创建对象42
- 4.4关键字null43
- 4.5内存中的对象44
- 4.6Java包45
- 4.7封装和存取控制46
- 4.7.1类访问控制修饰符47
- 4.7.2类成员访问控制修饰符48
- 4.8关键字this50
- 4.9使用其他类51
- 4.10final变量53
- 4.11静态成员53
- 4.12静态final变量55
- 4.13静态导入56
- 4.14变量作用域57
- 4.15方法重载58
- 4.16传值还是传引用59
- 4.17加载、连接和初始化59
- 4.17.1加载60
- 4.17.2链接60
- 4.17.3初始化60
- 4.18对象创建的初始化61
- 4.19对象的比较64
- 4.20垃圾回收器64
- 4.21小结65
- 习题65
- 第5章核心类66
- 5.1java.lang.Object67
- 5.2java.lang.String67
- 5.2.1比较两个String68
- 5.2.2字符串字面量69
- 5.2.3特定字符转义69
- 5.2.4对String使用switch语句70
- 5.2.5String类的构造器70
- 5.2.6String类的方法71
- 5.3StringBuffer和StringBuilder73
- 5.3.1StringBuilder类的构造器73
- 5.3.2StringBuilder类的方法74
- 5.4基本类型封装74
- 5.4.1java.lang.Integer75
- 5.4.2java.lang.Boolean75
- 5.4.3java.lang.Character76
- 5.5数组76
- 5.5.1迭代数组78
- 5.5.2修改数组大小78
- 5.5.3将String数组传递给main80
- 5.6java.lang.Class80
- 5.7java.lang.System81
- 5.8java.util.Scanner84
- 5.9装箱和拆箱85
- 5.10可变参数85
- 5.11格式和printf方法86
- 5.12小结87
- 习题87
- 第6章继承88
- 6.1继承概述88
- 6.1.1关键字extends88
- 6.1.2is-a关系89
- 6.2可访问性90
- 6.3方法覆盖91
- 6.4调用超类的构造器92
- 6.5调用超类的隐藏成员94
- 6.6类型转换95
- 6.7final类95
- 6.8关键字instanceof96
- 6.9小结96
- 习题96
- 第7章错误处理97
- 7.1捕捉异常97
- 7.2没有catch块的try词句99
- 7.3捕捉多个异常99
- 7.4try-with-resource语句100
- 7.5java.lang.Exception类101
- 7.6从方法抛出异常102
- 7.7用户自定义异常103
- 7.8异常处理总结104
- 7.9小结105
- 习题105
- 第8章数字和日期106
- 8.1数字解析106
- 8.2数字格式化107
- 8.3用java.text.NumberFormat
- 进行数字解析108
- 8.4java.lang.Math类109
- 8.5java.util.Date类109
- 8.6java.util.Calendar类110
- 8.7用DateFormat进行日期解析和格式化111
- 8.7.1DateFormat111
- 8.7.2SimpleDateFormat类113
- 8.8小结114
- 习题114
- 第9章接口和抽象类115
- 9.1接口的概念115
- 9.2从技术上来看的接口116
- 9.2.1接口中的域117
- 9.2.2方法118
- 9.3基类118
- 9.4抽象类119
- 9.5小结120
- 习题120
- 第10章枚举121
- 10.1枚举概述121
- 10.2类中的枚举122
- 10.3java.lang.Enum类123
- 10.4迭代枚举值123
- 10.5switch中的枚举123
- 10.6小结124
- 习题124
- 第11章集合框架125
- 11.1集合框架概述125
- 11.2Collection接口126
- 11.3List和ArrayList126
- 11.4用Iterator和for迭代集合128
- 11.5Set和HashSet129
- 11.6Queue和LinkedList130
- 11.7集合转换131
- 11.8Map和HashMap131
- 11.9对象的比较和排序132
- 11.9.1使用java.lang.Comparable132
- 11.9.2使用Comparable和Comparator135
- 11.10小结139
- 习题139
- 第12章泛型140
- 12.1没有泛型的生活140
- 12.2泛型类型简介141
- 12.3使用没有类型参数的泛型类型144
- 12.4使用 通配符144
- 12.5在方法中使用有界通配符146
- 12.6编写泛型类型147
- 12.7小结148
- 习题148
- 第13章输入 / 输出149
- 13.1文件系统和路径150
- 13.2文件和目录的处理与操作152
- 13.2.1创建和删除文件与目录152
- 13.2.2检索目录的对象152
- 13.2.3复制和移动文件153
- 13.2.4文件的读取和写入153
- 13.3输入/输出流155
- 13.4读取二进制数据156
- 13.5写入二进制数据159
- 13.6写入文本(字符)162
- 13.6.1Writer163
- 13.6.2OutputStreamWriter163
- 13.6.3PrintWriter164
- 13.7读取文本(字符)166
- 13.7.1Reader166
- 13.7.2InputStreamReader167
- 13.7.3BufferedReader168
- 13.8用PrintStream记录日志169
- 13.9随机访问文件170
- 13.10对象序列化174
- 13.11小结177
- 习题177
- 第14章嵌套类和内部类178
- 14.1嵌套类概述178
- 14.2静态嵌套类179
- 14.3成员内部类180
- 14.4局部内部类182
- 14.5匿名内部类184
- 14.6深入嵌套类和内部类185
- 14.7小结187
- 习题187
- 第15章Swing基础188
- 15.1AWT组件189
- 15.2有用的AWT类191
- 15.2.1java.awt.Color191
- 15.2.2java.awt.Font191
- 15.2.3java.awt.Point192
- 15.2.4java.awt.Dimension192
- 15.2.5java.awt.Rectangle192
- 15.2.6java.awt.Graphics192
- 15.2.7java.awt.Toolkit193
- 15.3基本Swing组件193
- 15.3.1JFrame194
- 15.3.2调整大小和定位197
- 15.3.3扩展JFrame198
- 15.3.4JComponent199
- 15.3.5Icon和ImageIcon200
- 15.3.6JLabel201
- 15.3.7JButton202
- 15.3.8JTextField和JPasswordField203
- 15.3.9JTextArea205
- 15.3.10JCheckbox207
- 15.3.11JRadioButton208
- 15.3.12Jlist209
- 15.3.13JComboBox211
- 15.3.14JDialog212
- 15.3.15JOptionPane215
- 15.3.16JFileChooser219
- 15.4小结221
- 习题221
- 第16章Swing进阶222
- 16.1布局管理器222
- 16.1.1BorderLayout223
- 16.1.2FlowLayout225
- 16.1.3BoxLayout227
- 16.1.4GridLayout228
- 16.1.5不使用LayoutManager229
- 16.2事件处理230
- 16.2.1Java事件模型230
- 16.2.2Swing事件处理231
- 16.2.3AWT事件API232
- 16.2.4处理ActionEvent235
- 16.2.5处理MouseEvent236
- 16.2.6将监听器写成匿名类237
- 16.2.7处理JRadioButton的ActionEvent240
- 16.2.8处理KeyEvent241
- 16.2.9处理WindowListener242
- 16.3使用菜单243
- 16.4界面外观245
- 16.5快速启动画面246
- 16.6系统托盘支持249
- 16.7桌面帮助程序251
- 16.8小结255
- 习题255
- 第17章多态256
- 17.1定义多态256
- 17.2多态的作用259
- 17.3绘图应用程序中的多态260
- 17.4多态和反射265
- 17.5小结266
- 习题266
- 第18章注解267
- 18.1注解概述267
- 18.1.1注解和注解类型267
- 18.1.2注解语法268
- 18.1.3注解接口268
- 18.2标准注解269
- 18.2.1Override269
- 18.2.2Deprecated270
- 18.2.3SuppressWarnings271
- 18.3通用注解272
- 18.4标准元注解272
- 18.4.1Documented272
- 18.4.2Inherited273
- 18.4.3Retention273
- 18.4.4Target273
- 18.5定制注解类型274
- 18.5.1编写自己的定制注解类型274
- 18.5.2使用定制注解类型275
- 18.5.3用反射查询注解275
- 18.6小结276
- 习题276
- 第19章国际化277
- 19.1Locales278
- 19.2国际化应用程序279
- 19.2.1将文本组件单独放进属性文件279
- 19.2.2用ResourceBundle读取属性文件280
- 19.3国际化的Swing应用程序280
- 19.4小结282
- 习题282
- 第20章Applet283
- 20.1Applet简史283
- 20.2Applet API284
- 20.2.1Applet类284
- 20.2.2AppletContext接口286
- 20.2.3AudioClip接口286
- 20.2.4AppletStub接口287
- 20.3安全限制287
- 20.4编写和部署Applet287
- 20.5AppletViewer工作原理289
- 20.6将参数传递给Applet290
- 20.7SoundPlayerApplet293
- 20.8JApplet294
- 20.9JAR文件中的Applet部署295
- 20.10更快速加载296
- 20.11小结296
- 习题296
- 第21章Java网络297
- 21.1网络概述297
- 21.2超文本传输协议(HTTP)298
- 21.2.1HTTP请求298
- 21.2.2HTTP响应299
- 21.3java.net.URL300
- 21.3.1解析URL300
- 21.3.2读取Web资源301
- 21.4java.net.URLConnection302
- 21.4.1读取Web资源303
- 21.4.2写入Web服务器305
- 21.5java.net.Socket305
- 21.6java.net.ServerSocket307
- 21.7Web服务器应用程序308
- 21.7.1HttpServer类308
- 21.7.2Request类312
- 21.7.3Response类313
- 21.7.4运行应用程序315
- 21.8小结316
- 习题316
- 第22章Java数据库连接317
- 22.1JDBC简介317
- 22.2数据访问的四个步骤318
- 22.2.1加载JDBC驱动程序318
- 22.2.2获得数据库连接319
- 22.2.3创建Statement对象320
- 22.2.4创建ResultSet对象321
- 22.3关闭JDBC对象322
- 22.4读取元数据323
- 22.5SQL Tool示例323
- 22.5.1准备MySQL324
- 22.5.2SQL Tool类325
- 22.6小结328
- 习题328
- 第23章Java线程329
- 23.1Java线程简介329
- 23.2创建线程330
- 23.2.1扩展线程331
- 23.2.2实现Runnable332
- 23.3使用多线程333
- 23.4线程优先级334
- 23.5停止线程336
- 23.6同步338
- 23.6.1线程冲突339
- 23.6.2方法同步340
- 23.6.3块同步341
- 23.7可见性341
- 23.8线程协调344
- 23.9使用Timer348
- 23.10Swing Timer350
- 23.11小结352
- 习题352
- 第24章并发工具353
- 24.1原子变量353
- 24.2Executor和ExecutorService354
- 24.3Callable和Future358
- 24.4Swing Worker361
- 24.5锁364
- 习题365
- 第25章安全366
- 25.1Java安全概述366
- 25.2使用安全管理器367
- 25.3策略文件368
- 25.3.1keystore369
- 25.3.2grant369
- 25.4权限370
- 25.4.1java.io.FilePermission371
- 25.4.2java.security.BasicPermission371
- 25.4.3java.util.Property-Permission371
- 25.4.4java.net.SocketPermission371
- 25.4.5java.security.Unresolve-Permission372
- 25.4.6java.lang.Runtime-Permission372
- 25.4.7java.awt.AWTPermission372
- 25.4.8java.net.NetPermission372
- 25.4.9java.lang.reflect.ReflectPermission373
- 25.4.10java.io.Serializable-Permission373
- 25.4.11java.security.Security-Permission373
- 25.4.12java.security.AllPermission373
- 25.4.13javax.security.auth.AuthPermission373
- 25.5使用Policy Tool374
- 25.6Applet安全375
- 25.7安全编程375
- 25.8加密概述376
- 25.8.1加密/解密377
- 25.8.2认证377
- 25.8.3数据完整性378
- 25.8.4SSL工作原理379
- 25.9创建证书380
- 25.10KeyTool程序380
- 25.10.1生成密钥对380
- 25.10.2认证382
- 25.10.3将证书导入密钥库382
- 25.10.4从密钥库导出证书382
- 25.10.5列出密钥库条目383
- 25.11JarSigner工具383
- 25.11.1签署JAR文件383
- 25.11.2验证已签署的JAR文件383
- 25.11.3范例:签署Applet384
- 25.12Java Cryptography API386
- 25.13小结386
- 习题386
- 第26章Java Web应用程序387
- 26.1Servlet应用程序架构387
- 26.2Servlet API概述388
- 26.3Servlet389
- 26.4编写基本Servlet应用程序390
- 26.4.1安装Tomcat390
- 26.4.2编写和编译Servlet类390
- 26.4.3应用程序的目录结构392
- 26.4.4调用Servlet393
- 26.5ServletRequest393
- 26.6ServletResponse394
- 26.7ServletConfig394
- 26.8ServletContext396
- 26.9GenericServlet397
- 26.10HTTP Servlet398
- 26.10.1HttpServlet399
- 26.10.2HttpServletRequest400
- 26.10.3HttpServletResponse401
- 26.10.4编写Http Servlet401
- 26.11使用部署描述符404
- 26.12小结407
- 习题407
- 第27章JavaServer Pages408
- 27.1JSP概述408
- 27.2jspInit、jspDestroy以及其他方法410
- 27.3隐式对象411
- 27.4JSP语法元素412
- 27.4.1指令412
- 27.4.2脚本元素415
- 27.5处理错误416
- 27.6小结417
- 习题417
- 第28章Javadoc418
- 28.1在Java类中编写文档418
- 28.1.1@author419
- 28.1.2{@code}419
- 28.1.3{@docRoot}420
- 28.1.4@deprecated420
- 28.1.5@exception420
- 28.1.6{@inheritDoc}420
- 28.1.7{@link}420
- 28.1.8{@linkplain}421
- 28.1.9{@literal}421
- 28.1.10{@param}421
- 28.1.11@return421
- 28.1.12@see422
- 28.1.13@serial422
- 28.1.14@serialData422
- 28.1.15@serialField422
- 28.1.16@since423
- 28.1.17@throws423
- 28.1.18{@value}423
- 28.1.19@version423
- 28.2Javadoc语法423
- 28.2.1Javadoc选项424
- 28.2.2标准doclet选项425
- 28.2.3生成文档426
- 28.3小结427
- 习题427
- 第29章应用程序部署428
- 29.1JWS 概述428
- 29.2JNLP文件语法429
- 29.2.1jnlp元素429
- 29.2.2information元素430
- 29.2.3security元素431
- 29.2.4resources元素431
- 29.2.5application-desc元素431
- 29.2.6applet-desc元素431
- 29.3部署范例432
- 29.4安全关注434
- 29.5小结435
- 习题435
- 第30章反射436
- 30.1概述436
- 30.2java.lang.Class437
- 30.3创建对象438
- 30.4创建数组440
- 30.5域操作442
- 30.6方法操作443
- 30.7调用方法444
- 30.8小结446
- 习题446
- 第31章JavaFX概述447
- 31.1概述447
- 31.2安装448
- 31.3第一个JavaFX应用程序448
- 31.4Application、Stage和Scene449
- 31.4.1Application类450
- 31.4.2Stage类450
- 31.4.3Scene类450
- 31.5UI组件451
- 31.6控件451
- 31.7Region454
- 31.8事件处理456
- 31.9CSS样式459
- 31.10小结462
- 习题462
- 第32章使用FXML的JavaFX463
- 32.1概述463
- 32.2一个基于FXML的简单应用程序465
- 32.3用FXML进行事件处理467
- 32.4小结470
- 习题470
- 第33章Android编程介绍471
- 33.1概述471
- 33.2下载安装Android开发工具471
- 33.3第一个Android应用程序472
- 33.4Android清单474
- 33.5在仿真器上运行应用程序475
- 33.6应用程序结构478
- 33.7替换应用程序图标478
- 33.8日志记录478
- 33.9调试应用程序479
- 33.10在实际设备上运行481
- 33.11更新SDK481
- 33.12小结482
- 习题482
- 第34章创建Android应用程序483
- 34.1概述483
- 34.2活动的生命周期484
- 34.3Android UI组件485
- 34.3.1使用ADT Eclipse UI工具486
- 34.3.2示例:使用Basic Components486
- 34.4布局组件489
- 34.5监听器490
- 34.6启动另一个活动493
- 34.7小结497
- 习题497
- 第35 章更多的Android应用程序498
- 35.1处理Handler498
- 35.2MediaRecorder502
- 35.3异步任务506
- 35.4小结511
- 习题511
- 附录 Ajavac512
- 附录B java517
- 附录 Cjar522
- 附录 DNetBeans526
- 附录 EEclipse530