书籍详情

深入浅出JDK 6.0

深入浅出JDK 6.0

作者:涂传滨

出版社:电子工业出版社

出版时间:2008-01-01

ISBN:9787121055034

定价:¥79.80

购买这本书可以去
内容简介
  本书从Java语言的特点、语法、开发环境入手,深入讲解如何利用JDK提供的API进行应用开发,如输入输出、线程、图形界面、数据库存取、XML等,并对Java语言的高级开发技巧,如分布式计算、本地调用、Annotation、反射、动态代理、JMX等进行详细的阐述。本书基于最新的JDK 6.0,对该版本新引入的特性:JDBC 4.0、内嵌Apache Derby数据库、动态语言支持、本地化桌面支持、增强的XML解析引擎等,均开辟专题予以介绍。并对Java相关技术和常用软件工具包进行详细讲解,包括:Java客户端开发技术SWT和JavaFX,数据库存取框架Hibernate和iBatis,Groovy,以及Java与Ruby、Python、PHP等动态语言的结合,日志和日程工具包等。本书既可供Java语言的初学者作为入门书籍使用,也可供具有一定开发经验的人员作为进阶材料阅读。
作者简介
  涂传滨,1999年毕业于南昌大学。拥有多年的企业应用开发经验,现任厦门三五互联科技股份有限公司(http://www.35.com)技术专家,从事基于互联网的应用系统研发,研究范围包括基于互联网的应用系统架构、应用集成、安全技术、软件过程等。在CN级刊物上发表论文多篇,从2004年底开始技术书籍的写作。
目录
第1章  Java基础    1
1.1  认识Java    2
1.1.1  Java语言的特点    2
1.1.2  Java程序运行环境    3
1.2  Java语法    4
1.2.1  数据类型    4
1.2.2  数组    5
1.2.3  运算符和表达式    6
1.2.4  流程控制    9
1.2.4.1  选择结构    9
1.2.4.2  循环结构    11
1.2.4.3  跳转结构    13
1.2.5  关键字    14
1.3  Java语言的对象性    14
1.3.1  类和包    15
1.3.2  类的继承    17
1.3.3  抽象类和接口    19
1.4  总结    20
第2章  Java进阶    21
2.1  Java内存管理    22
2.1.1  垃圾收集原理    22
2.1.2  对象引用的类型    24
2.2 “栈”和“堆”的区别    28
2.2.1  变量比较    28
2.2.2  变量复制    29
2.2.3  引用传递和值传递    30
2.3  异常机制    32
2.3.1  异常的原理    32
2.3.2  发生异常时的程序流程    33
2.3.3  巧妙利用异常    35
2.4  集合框架    36
2.4.1  集合框架概述    36
2.4.2  按键值自动排序的Map    38
2.4.3  元素位置固定的Map    39
2.4.4  线程安全的容器    40
2.4.5  存放弱引用的容器    40
2.5  其他方面    40
2.5.1  改进的诊断能力    41
2.5.2  Annotation    41
2.5.3  泛型    43
2.5.4  自动装/拆箱    43
2.5.5  静态引入    44
2.5.6  格式化输入/输出    44
2.5.7  参数数量可变    45
2.5.8  并行工具包    46
2.6  实用工具    46
2.6.1  程序注释    46
2.6.2  Java类包管理工具    48
2.6.2.1  可执行的JAR文件    49
2.6.2.2  JAR文件的索引    50
2.6.3  Java虚拟机启动参数    52
2.6.4  Java程序调试工具    55
2.6.5  Java进程监控平台    57
2.6.6  JVM内存分析工具    60
2.7  总结    61
第3章  第一个Java程序    62
3.1  搭建开发环境    63
3.1.1  下载并安装JDK 6.0    63
3.1.1.1  在Windows平台上安装
3.1.1.1  JDK 6.0    63
3.1.1.2  在Linux平台上安装JDK 6.0    64
3.1.2  设置环境变量    66
3.2  实战“Hello World”程序    67
3.2.1  控制台版的Hello World    67
3.2.2  图形界面版的Hello World    68
3.3  总结    69
第4章  文件系统    70
4.1  Java输入输出概述    71
4.2  文件的顺序读写    72
4.2.1  字节流方式读写    72
4.2.1.1  字节输入流    72
4.2.1.2  字节输出流    75
4.2.2  字符流方式读写    78
4.2.2.1  字符输入流    78
4.2.2.2  字符输出流    81
4.3  文件的随机读写    82
4.4  文件系统实用例程    83
4.4.1  创建文件和目录    83
4.4.2  删除文件和目录    84
4.4.3  复制文件和目录    86
4.4.4  移动文件和目录    90
4.4.5  操作文件属性    90
4.4.6  获取可用空间    91
4.4.7  获取目录占用的空间    92
4.5  总结    93
第5章  网络通信基础    94
5.1  TCP基础    95
5.1.1  TCP开发简介    95
5.1.1.1  理解TCP Socket    95
5.1.1.2  TCP通信API    96
5.1.2  TCP开发实例——多线程服务器    99
5.1.3  TCP开发实例——连接池    104
5.1.3.1  连接池的原理    104
5.1.3.2  连接池的实现    105
5.2  UDP基础    109
5.2.1  UDP开发简介    109
5.2.1.1  理解UDP Socket    109
5.2.1.2  UDP通信API    110
5.2.2  UDP开发实例    111
5.2.3  多播套接字    113
5.2.3.1  多播套接字简介    113
5.2.3.2  多播套接字开发实例    113
5.3  NIO(New I/O)基础    115
5.3.1  NIO简介    115
5.3.2  NIO开发实例    116
5.4  总结    119
第6章  输入输出综合    120
6.1  Java I/O回顾    121
6.1.1  字节类API    121
6.1.1.1  字节输入流    121
6.1.1.2  字节输出流    122
6.1.2  字符类API    122
6.1.2.1  字符输入流    122
6.1.2.2  字符输出流    123
6.1.3  对象类API    123
6.1.3.1  对象输入流    123
6.1.3.2  对象输出流    124
6.2  对象序列化    124
6.2.1  对象序列化原理    124
6.2.2  修改默认的序列化机制    126
6.3  HTTP开发    128
6.3.1  HTTP通信原理    128
6.3.2  HTTP开发API    131
6.3.3  获取HTTP网络资源    132
6.3.4  登录需要认证的站点    134
6.3.5  利用HttpUnit保持状态    136
6.4  大文件传输    139
6.4.1  旨在降低风险的方案——分包
6.4.1  传输    140
6.4.2  旨在控制风险的方案——可靠
6.4.1  传输    149
6.5  字符集问题    153
6.6  Java I/O经典范例    155
6.6.1  FTP客户端    155
6.6.2  文件切割    156
6.6.3  通用文件系统(CIFS)    160
6.6.4  重定向控制台输出    162
6.6.5  与外部进程通信    163
6.7  总结    165
第7章  Java线程    166
7.1  线程简介    167
7.1.1  什么是线程    167
7.1.2  多线程的用途    167
7.1.3  Java语言与多线程    169
7.2  多线程应用开发    169
7.2.1  创建和启动线程    169
7.2.1.1  获取当前线程对象    169
7.2.1.2  线程命名    170
7.2.1.3  构造和启动线程    170
7.2.1.4  线程优先级    171
7.2.1.5  守护线程    173
7.2.2  Runnable接口和Thread基类    174
7.2.2.1  实现Runnable接口    174
7.2.2.2  继承Thread基类    177
7.2.3  管理线程的状态    179
7.2.3.1  线程的状态    179
7.2.3.2  线程的等待和唤醒    180
7.2.3.3  线程的休眠和中断    186
7.2.3.4  线程的终止    187
7.2.4  为程序添加退出事件    192
7.2.5  线程组    193
7.3  线程间通信    196
7.3.1  传递二进制信息    196
7.3.2  传递字符信息    197
7.4  实战多线程下载    199
7.5  总结    204
第8章  并发情况下的多线程编程    205
8.1  线程安全    206
8.1.1  线程安全的本质    206
8.1.2  变量安全    206
8.1.2.1  并发线程导致的变量安全
8.1.2.1  问题    206
8.1.2.2  变量安全问题的解决之道    208
8.1.2.3  ThreadLocal变量    212
8.1.3  线程同步    213
8.1.3.1  同步锁的必要性    213
8.1.3.2  单实例线程的同步锁    214
8.1.3.3  多实例线程的同步锁    217
8.1.3.4  线程死锁    220
8.2  实战线程池开发    221
8.2.1  服务器的工作模式    221
8.2.2  实现线程池    223
8.2.2.1  线程池一    223
8.2.2.2  线程池二    227
8.3  并发工具包    232
8.3.1  线程池的类型    232
8.3.1.1  任务计划线程池    232
8.3.1.2  固定线程池    234
8.3.1.3  缓存线程池    236
8.3.2  线程同步辅助类    237
8.3.2.1  CyclicBarrier    237
8.3.2.2  CountDownLatch    239
8.3.3  阻塞队列    241
8.3.4  返回结果的线程    246
8.3.4.1  等待单个线程    246
8.3.4.2  等待一组线程    247
8.3.5  信号量限制    249
8.4  总结    250
第9章  Java安全    251
9.1  Java安全接口概述    252
9.1.1  Java安全接口的层次    252
9.1.2  Java安全的基础设施    253
9.2  Java安全API    255
9.2.1  消息摘要    255
9.2.2  数字签名    257
9.2.3  基于密码术的加密    260
9.3  安全传输    261
9.3.1  SSL原理    261
9.3.2  底层的SSL支持——JSSE    263
9.3.3  针对HTTP的解决方案    271
9.4  访问控制框架——JAAS    276
9.5  总结    278
第10章  图形界面开发    279
10.1  图形界面开发基础    280
10.1.1  图形坐标系统    280
10.1.2  字体和颜色    280
10.1.3  绘图API    283
10.1.4  加载图形文件    288
10.2  AWT和Swing控件    290
10.3  布局管理器    292
10.3.1  FlowLayout    292
10.3.2  GridLayout    294
10.3.3  BorderLayout    295
10.3.4  CardLayout    296
10.3.5  GridBagLayout    296
10.4  事件模型    298
10.4.1  事件类    299
10.4.2  事件监听器    299
10.4.3  事件适配器    300
10.5  在JBuilder中开发图形界面应用    301
10.6  JDK 6.0的桌面API    307
10.6.1  资源关联    307
10.6.2  桌面集成    310
10.6.2.1  Splash屏幕    310
10.6.2.2  系统托盘    310
10.7  总结    313
第11章  Applet、JavaWebStart、SWT
第11章  与JavaFX    314
11.1  Applet    315
11.1.1  Applet简介    315
11.1.1.1  Applet的基础概念    315
11.1.1.2  运行Applet    316
11.1.1.3  运行Applet的潜在问题    318
11.1.2  为Applet签名    321
11.1.2.1  Java的权限体系    321
11.1.2.2  启用数字签名获取运行
11.1.2.2  权限    323
11.1.3  用JavaScript操作Applet    325
11.2  JavaWebStart    327
11.2.1  JavaWebStart简介    327
11.2.2  下载无须签名的应用程序    327
11.2.3  下载需要签名的应用程序    330
11.3  SWT    332
11.3.1  SWT简介    332
11.3.2  SWT简单应用实例    333
11.3.3  可视化编辑器SWT Designer    337
11.3.4  分发SWT应用程序    348
11.4  JavaFX    348
11.4.1  JavaFX简介    348
11.4.2  在Eclipse中开发JavaFX应用    350
11.4.3  运行JavaFX应用    353
11.4.4  JavaFX与Java的结合    354
11.5  总结    355
第12章  数据库存取    356
12.1  JDBC基础    357
12.1.1  JDBC简介    357
12.1.2  JDBC驱动程序    359
12.1.2.1  Derby    359
12.1.2.2  其他数据库    362
12.1.2.3  自动加载驱动程序    363
12.1.3  JDBC基础开发    364
12.1.3.1  查询数据    364
12.1.3.2  增删改数据    365
12.1.3.3  调用存储过程    366
12.1.4  元数据    369
12.1.4.1  数据库元数据    369
12.1.4.2  结果集元数据    374
12.1.5  JDBC异常    376
12.2  JDBC开发专题    376
12.2.1  数据集的二次处理    376
12.2.1.1  JDBC提供的ResultSet    377
12.2.1.2  JDBC提供的RowSet    382
12.2.1.3  DataExpress提供的
12.2.1.3  DataSet    389
12.2.2  RowId    397
12.2.3  动态游标    397
12.2.4  预编译执行计划    399
12.2.5  批处理    400
12.2.5.1  基于Statement    400
12.2.5.2  基于PreparedStatement    401
12.2.6  操作大二进制数据    403
12.2.6.1  写入BLOB数据    403
12.2.6.2  读出BLOB数据    404
12.2.7  事务    405
12.2.7.1  简单事务    406
12.2.7.2  SavePoint    407
12.3  数据库之外的持久化手段——
12.3  Preferences API    409
12.4  Java目录服务——JNDI    410
12.5  总结    413
第13章  开源数据库产品    414
13.1  O/R Mapping框架——Hibernate    415
13.1.1  Hibernate配置    415
13.1.2  Hibernate对象操作    423
13.1.2.1  会话工厂与会话    423
13.1.2.2  延迟加载    424
13.1.2.3  级联新增    427
13.1.2.4  级联删除    428
13.1.2.5  级联修改    429
13.1.3  Hibernate HQL操作    432
13.2  O/R Mapping框架——iBatis    432
13.2.1  iBatis配置    432
13.2.2  iBatis对象操作    435
13.3  嵌入式数据库——文件数据库
13.3  BerkeleyDB    439
13.3.1  BerkeleyDB简介    439
13.3.2  创建数据库    441
13.3.3  数据基本操作    442
13.3.4  游标    444
13.4  嵌入式数据库——内存数据库
13.3  StelsEngine    447
13.5  总结    449
第14章  分布式计算    450
14.1  鸟瞰分布式组件技术    451
14.2  RMI    451
14.2.1  RMI架构    451
14.2.2  RMI实例    453
14.2.3  简化RMI的部署实施    456
14.3  CORBA    459
14.3.1  CORBA简介    459
14.3.1.1  什么是CORBA    459
14.3.1.2  ORB原理    459
14.3.1.3  CORBA与Java的关系    461
14.3.1.4  使用CORBA的优点    462
14.3.2  接口定义语言IDL    463
14.3.3  使用JDK开发CORBA应用    464
14.3.3.1  简单的CORBA应用    464
14.3.3.2  传递复杂数据类型的
14.3.3.2  CORBA应用    468
14.4  总结    476
第15章  Java本地调用    477
15.1  JNI原理    478
15.2  调用C程序    479
15.2.1  在Windows平台上调用C函数    479
15.2.2  在Linux平台上调用C函数    482
15.2.2.1  gcc简介    482
15.2.2.2  简单例程    484
15.2.2.3  传递字符串    485
15.2.2.4  传递整型数组    486
15.2.2.5  传递字符串数组    487
15.2.2.6  传递对象数组    489
15.3  调用Delphi程序    490
15.3.1  简单例程    491
15.3.2  关闭窗口实用程序    492
15.4  总结    496
第16章  反射机制及其应用    497
16.1  反射机制概述    498
16.1.1  反射的原理    498
16.1.2  反射的简单实例    500
16.2  Annotation    501
16.2.1  Annotation的原理    501
16.2.1.1  定义Annotation类型    502
16.2.1.2  使用Annotation类型    503
16.2.1.3  内置的Annotation类型    504
16.2.2  Annotation的简单实例    504
16.2.3  用Annotation开发
16.2.3  Web Services    507
16.3  动态代理    511
16.3.1  代理机制    512
16.3.2  Hibernate拦截器    514
16.3.3  Spring AOP    516
16.3.4  实现一个动态代理框架    519
16.4  操作JavaBeans    524
16.5  总结    528
第17章  Java动态编程    529
17.1  用Compiler API创建类文件    530
17.1.1  基础应用    530
17.1.2  高级应用    532
17.2  用Instrumentation构建代理    535
17.2.1  Instrumentation原理    535
17.2.2  基础应用    536
17.2.3  转换类文件字节码    537
17.3  用Javassist转换类文件    540
17.3.1  Javassist原理    540
17.3.2  基础应用    541
17.4  用Spring替换类方法    545
17.5  用ClassEditor修改类文件    548
17.6  总结    550
第18章  与动态语言的结合    551
18.1  Java与JavaScript的结合    552
18.1.1  支持脚本语言的意义    552
18.1.2  Java对JavaScript的支持    552
18.1.2.1  执行脚本语言    553
18.1.2.2  调用脚本语言的方法    553
18.1.2.3  脚本语言使用Java的
18.1.2.3  变量    554
18.1.2.4  脚本语言使用Java的类    555
18.1.2.5  脚本语言实现Java的
18.1.2.3  接口    556
18.1.3  测试脚本的工具    557
18.2  Java与Ruby的结合    558
18.2.1  JRuby的安装    558
18.2.2  在Ruby中调用Java类    559
18.3  Java与PHP的结合    559
18.3.1  PHP-Java-Bridge的安装    560
18.3.2  在PHP中调用Java类    561
18.4  Java与Python的结合    561
18.4.1  Jython的安装    562
18.4.2  在Java中执行Python语句    562
18.4.3  在Python中调用Java类    564
18.4.4  把Python程序编译成Java类    564
18.5  Groovy简介    564
18.6  内嵌HTTP Server    566
18.7  总结    567
第19章  JMX资源管理容器    568
19.1  JMX概述    569
19.1.1  JMX简介    569
19.1.2  JMX的层次结构    569
19.2  MBean的分类    571
19.2.1  标准MBean    571
19.2.2  动态MBean    574
19.2.3  开放MBean    579
19.2.4  模型MBean    579
19.3  JMX管理界面    579
19.4  JMX通知服务    581
19.5  总结    584
第20章  XML开发    585
20.1  XML简介    586
20.1.1  XML文档规则    586
20.1.2  常用概念    586
20.1.3  第一个XML文档    587
20.2  XML解析    588
20.2.1  DOM    588
20.2.2  DOM4J    592
20.2.3  SAX    593
20.2.3.1  用SAX解析XML    593
20.2.3.2  用SAX同步解析XML
20.2.3.2  数据流    597
20.2.4  StAX    601
20.3  XML编辑    603
20.3.1  用DOM创建XML    603
20.3.2  用JDOM修改XML    606
20.4  XML转换    608
20.4.1  XSLT简介    608
20.4.2  客户端转换    609
20.4.3  服务端转换    613
20.5  XML校验    616
20.5.1  DTD简介    616
20.5.2  XML Schema简介    617
20.5.3  用XDK校验XML    619
20.6  XML映射    621
20.6.1  XML属性文件    621
20.6.2  用JAXB 2.0映射对象    623
20.6.2.1  对象映射    624
20.6.2.2  对象集合映射    628
20.7  总结    630
第21章  常用工具包    631
21.1  日志工具包Log4J    632
21.1.1  简单实例    632
21.1.2  原理分析    633
21.1.3  专业化应用    635
21.1.4  一个启示    637
21.2  日程工具    639
21.2.1  日程工具类Timer    639
21.2.2  日程工具包Quartz    640
21.2.2.1  常规应用    640
21.2.2.2  持久化任务    644
21.3  ZIP工具类    648
21.3.1  JDK提供的ZIP工具类    648
21.3.2  Apache提供的ZIP工具类    651
21.4  Excel文档存取工具包POI    653
21.5  将Java程序封装成NT Service    657
21.6  与COM组件互操作    664
21.7  把POJO发布成Web Services    666
21.7.1  编写服务程序    666
21.7.2  编写客户程序    669
21.7.2.1  根据服务接口    669
21.7.2.2  根据WSDL    670
21.8  Velocity模板引擎    671
21.9  性能监视工具    673
21.10  总结    675
附录A  在XMLSpy中编写DTD    676
附录B  在XMLSpy中编写XML Schema    679
附录C  HTTP 1.1状态代码及其含义    684
猜您喜欢

读书导航