标题：java从入门到精通（视频实战版）
基本信息
作者： 陈浩    
丛书名： 程序员书库 
出版社：机械工业出版社 
ISBN：9787111325109
上架时间：2011-2-21
出版日期：2011 年1月
开本：16开
页码：506
内容简介
java语言是一种跨平台的高级语言，无论是网络世界还是桌面应用程序，无论是分布式应用环境还是嵌入式应用都可以看到java的身影。本书一共分为五篇，循序渐进地讲述了java语言的各项技术，第一篇java技术基础使读者对java语言有个初步的了解，为后面的深入学习奠定基础。第二篇面向对象的技术是需要读者认真学习和体会的。第三篇提高篇详细讲述了java语言的高级主题，是读者进阶学习的必备内容。第四篇是分布式计算的内容，如果读者对web编程感兴趣，相信本篇可以满足您的要求。为了说明java语言的应用，在最后一篇介绍了一个实例，通过该程序从无到有的过程使读者知道如何使用java语言编写应用程序。
本书的特点是详细介绍了java语言的各个方面，突出了适应初学者学习的特点，概念明了，讲解细致，步骤清晰，实例简短。其中的大量实例选用了简单但不乏深度的程序，不但有源代码的详细标注，还有运行结果和运行结果分析，帮助初学者在初步了解理论知识的基础上，通过具体的应用实例轻松掌握所学内容。本书适合正在学习java语言或打算学习java语言的人员。如果你是初学者，相信本书从第1章开始会把你轻松引入java的世界。如果你已经学习java语言，相信本书的部分内容如对象初始化和清理、异常处理等章节会给你诸多启示。
目录
从书序 
前言 
第一篇　java技术入门 
第1章　java语言概述 1 
1.1　java的语言特点 1 
1.1.1　java语言与c/c++的区别 1 
1.1.2　java面向对象的特性和多态性 2 
1.1.3　java的平台无关性 4 
1.1.4　java分布式应用和多线程的特点 4 
1.1.5　java程序的可靠性、安全性 5 
1.1.6　java小程序和应用程序 5 
1.2　java的不同版本 6 
1.3　如何才能学好java 6 
1.4　什么是面向对象的程序设计 7 
1.4.1　什么是面向对象 7 
1.4.2　模型分析：造房子 7 
1.4.3　设计面向对象程序的思路 8 
1.4.4　设计面向对象程序的技巧 8 
1.4.5　面向对象与面向过程设计的不同 8 
1.5　常见面试题分析 10 
.1.5.1　初学者如何选择java参考书 10 
1.5.2　java应用在哪些方面 10 
1.6　本章习题 11 
第2章　最简单的java程序 12 
2.1　java程序的开发流程 12 
2.2　开发工具的选择 12 
2.2.1　开发工具的种类 13 
2.2.2　开发工具的安装 14 
2.2.3　开发工具的使用介绍 15 
2.3　java编程环境 17 
2.3.1　j2se的下载和安装 17 
2.3.2　如何设置classpath变量 18 
2.3.3　如何设置path变量 18 
2.3.4　如何测试环境变量 19 
2.4　编写最简单的程序 19 
2.4.1　编写程序代码 19 
2.4.2　分析程序代码 20 
2.5　常见面试题分析 20 
2.5.1　javac xxx.java顺利通过，但java xxx显示 “noclassdeffounderror?” 20 
2.5.2　导致错误“exception in thread main java.lang.nosuchmethoderror:main”的原因 20 
2.6　本章习题 20 
第3章　java语言基础 22 
3.1　java命名规则 22 
3.2　数据类型 22 
3.2.1　基本数据类型 23 
3.2.2　引用数据类型 25 
3.3　数据类型转换 26 
3.3.1　隐式数据类型转换 26 
3.3.2　显式数据类型转换 26 
3.4　变量与常量 27 
3.4.1　变量 27 
3.4.2　常量 27 
3.5　java运算符 28 
3.5.1　数学运算符 28 
3.5.2　关系运算符 29 
3.5.3　逻辑运算符 30 
3.5.4　位运算符 31 
3.5.5　位移运算符 31 
3.5.6　“? :” 运算符 32 
3.5.7　运算符的优先顺序 32 
3.6　常见面试题分析 32 
3.6.1　简述变量及其作用范围 32 
3.6.2　java的变量分哪两种大的数据类型 33 
3.6.3　java中equal()和“==”的区别是什么 33 
3.6.4　java中的三元运算符是什么 33 
3.7　本章习题 33 
第4章　程序流程控制 34 
4.1　流程控制概述 34 
4.2　条件语句 34 
4.3　分支语句 35 
4.3.1　简单的if-else语句 35 
4.3.2　if-else多分支语句 36 
4.3.3　if嵌套语句 36 
4.3.4　switch语句 37 
4.3.5　分支语句中的return 38 
4.4　循环语句 38 
4.4.1　while循环语句 39 
4.4.2　do-while循环语句 39 
4.4.3　for循环语句 40 
4.5　跳转语句 41 
4.5.1　break跳转语句 41 
4.5.2　continue跳转语句 41 
4.6　常见面试题分析 42 
4.6.1　java提供了哪几种循环结构，它们各自的特点是什么 42 
4.6.2　break和continue关键词的掌握 42 
4.6.3　for语句的循环条件 43 
4.7　本章习题 44 
第5章　数组 45 
5.1　一维数组 45 
5.1.1　定义一维数组 45 
5.1.2　初始化一维数组 45 
5.1.3　使用一维数组 46 
5.2　二维数组 47 
5.2.1　定义二维数组 47 
5.2.2　初始化二维数组 48 
5.2.3　使用二维数组 48 
5.3　多维数组 50 
5.3.1　定义多维数组 50 
5.3.2　初始化多维数组 50 
5.3.3　使用多维数组 51 
5.4　数组操作 52 
5.4.1　数组的复制 52 
5.4.2　数组的填充 52 
5.4.3　数组的比较 53 
5.4.4　数组的排序 54 
5.4.5　数组的查找 55 
5.5　常见面试题分析 57 
5.5.1　如何理解数组在java中作为一个类 57 
5.5.2　new object[5]语句是否创建了5个对象 57 
5.5.3　二维数组的长度是否固定 57 
5.6　本章习题 57 
第6章　字符串操作 58 
6.1　字符串 58 
6.1.1　字符串分类 58 
6.1.2　声明字符串 58 
6.1.3　创建字符串 59 
6.2　字符串操作 60 
6.2.1　字符串连接 60 
6.2.2　比较字符串 60 
6.2.3　获取字符串长度 60 
6.2.4　复制字符串 60 
6.2.5　获得子串 61 
6.2.6　获取指定位置的字符 61 
6.2.7　更改大小写 62 
6.2.8　分割字符串 62 
6.2.9　更改字符串中的部分字符 62 
6.3　格式化字符串 63 
6.3.1　一般类型格式化 63 
6.3.2　日期和时间类型格式 63 
6.4　常见面试题分析 64 
6.4.1　字符串字面量是否自动生成一个string对象 64 
6.4.2　stringbuffer和stringbuilder存在的作用是什么 64 
6.4.3　如何使用指定的字符集生成string对象 64 
6.5　本章习题 64 
第7章　容器类简介 65 
7.1　容器简介 65 
7.1.1　容器框架 65 
7.1.2　java容器框架的优势与劣势 67 
7.2　容器接口的分类 68 
7.2.1　collection接口定义与应用 68 
7.2.2　map接口定义与应用 70 
7.3　集合容器set 72 
7.3.1　set接口定义与应用 72 
7.3.2　set实现 75 
7.4　列表容器list 78 
7.4.1　list接口定义与应用 79 
7.4.2　list实现 81 
7.4.3　使用list实现堆栈和队列 81 
7.5　map容器 84 
7.5.1　map实现 84 
7.5.2　正确认识hashcode()方法 87 
7.6　迭代器 89 
7.6.1　迭代器接口 89 
7.6.2　迭代器的使用 90 
7.7　常见面试题分析 92 
7.7.1　什么是集合 92 
7.7.2　迭代器是什么 92 
7.7.3　hashmap和hashtable的区别 92 
7.8　本章习题 93 
第二篇　面向对象技术 
第8章　面向对象技术导论 95 
8.1　对象简介 95 
8.1.1　程序设计中的抽象化认识 95 
8.1.2　如何获得和操控对象 96 
8.1.3　对象的存储空间 96 
8.1.4　对象的生存空间 98 
8.2　一种新的数据类型：类（class） 98 
8.2.1　类（class）概述 98 
8.2.2　类的属性详解 99 
8.2.3　类的方法详解 100 
8.2.4　一种特殊的方法—类的构造函数 102 
8.2.5　关键字static 103 
8.2.6　关键字this 104 
8.3　访问权限 106 
8.3.1　包 106 
8.3.2　设置java访问权限 107 
8.4　继承 110 
8.4.1　什么是继承 110 
8.4.2　如何实现继承 110 
8.4.3　super关键字 112 
8.5　多态 113 
8.5.1　什么是多态 113 
8.5.2　方法的重载 115 
8.5.3　抽象类和抽象函数 117 
8.6　接口 119 
8.6.1　接口定义 119 
8.6.2　接口和抽象类 120 
8.6.3　接口的使用 120 
8.7　常见面试题分析 122 
8.7.1　父类构造函数是先于子类构造函数运行吗 122 
8.7.2　哪一个构造函数能添加到标记处而不会发生编译错误 123 
8.7.3　请说出面向对象的特征有哪些 124 
8.8　本章习题 124 
第9章　对象的初始化和清理 125 
9.1　构造函数 125 
9.1.1　默认构造函数 126 
9.1.2　自定义构造函数 126 
9.2　函数的重载 127 
9.3　数据成员初始化 128 
9.4　static成员初始化 130 
9.5　对象的清理 134 
9.6　常见面试题分析 134 
9.6.1　如何理解java的垃圾回收机制 134 
9.6.2　java中类构造函数的执行顺序 134 
9.7　本章习题 135 
第三篇　java编程 
第10章　多线程编程 137 
10.1　线程概述 137 
10.2　创建线程 138 
10.2.1　继承thread类创建线程 138 
10.2.2　实现runnable接口创建线程 139 
10.3　线程的状态 140 
10.4　线程的优先级 142 
10.5　线程的同步 143 
10.5.1　java程序的资源共享 143 
10.5.2　synchronized关键字 145 
10.5.3　同步控制方法 146 
10.5.4　同步控制块 148 
10.6　线程的控制 149 
10.6.1　启动线程 149 
10.6.2　挂起和恢复线程 150 
10.6.3　线程的休眠 150 
10.6.4　等待和通知 151 
10.6.5　结束线程 153 
10.7　线程间通信 154 
10.7.1　pipedwriter类详解 154 
10.7.2　pipedreader类详解 155 
10.7.3　管道通信实例 155 
10.8　多线程的死锁问题 157 
10.9　多线程的缺点 157 
10.10　常见面试题分析 158 
10.10.1　请说明进程和线程的区别 158 
10.10.2　一个具有生命的线程有哪些状态 158 
10.10.3　如何理解线程同步 158 
10.10.4　哪些事件会导致线程死亡 159 
10.11　本章习题 159 
第11章　jdbc链接数据库 161 
11.1　jdbc简介 161 
11.1.1　什么是jdbc 161 
11.1.2　jdbc的目标 161 
11.1.3　jdbc如何实现数据库的平台无关性 162 
11.2　jdbc中的常用类和接口 162 
11.2.1　驱动程序管理类（drivermanager） 162 
11.2.2　声明类（statement） 162 
11.2.3　数据库链接类（connection） 163 
11.2.4　结果集合类（resultset） 163 
11.3　如何实现数据库的链接 164 
11.3.1　加载合适的数据库驱动程序 164 
11.3.2　数据库配置问题 164 
11.3.3　建立数据库链接并获得statement对象 165 
11.3.4　执行数据库查询语句 166 
11.3.5　获得查询结果 166 
11.3.6　关闭数据库链接 166 
11.3.7　完整的示例程序 166 
11.4　数据库基本操作 168 
11.4.1　创建数据库表 168 
11.4.2　查询数据 169 
11.4.3　添加数据 169 
11.4.4　更改数据 169 
11.4.5　删除数据 170 
11.5　常见面试题分析 170 
11.5.1　jdbc的工作原理是什么 170 
11.5.2　如何使用连接池技术 170 
11.5.3　如何使用sql更改数据 170 
11.6　本章习题 171 
第12章　java异常处理 172 
12.1　理解异常 172 
12.2　异常示例 172 
12.3　java异常处理 174 
12.3.1　try区块 174 
12.3.2　catch区块 175 
12.3.3　java异常规范 178 
12.4　throwable类及其子类 178 
12.4.1　throwable类的定义和方法 178 
12.4.2　异常类的继承关系 180 
12.4.3　异常重抛的例子 181 
12.5　运行期异常 184 
12.6　自定义异常 185 
12.7　finally子句 189 
12.7.1　执行finally子句 189 
12.7.2　finally子句的必要性 191 
12.8　异常的几个问题 192 
12.8.1　异常丢失 193 
12.8.2　构造函数中的异常处理 194 
12.8.3　异常匹配 195 
12.9　异常的优点 196 
12.9.1　分离异常处理代码 197 
12.9.2　按方法调用顺序向上传播错误 198 
12.9.3　分组并区分错误类型 200 
12.10　常见面试题分析 201 
12.10.1　哪个类是所有异常的基础类 201 
12.10.2　java如何处理异常 201 
12.10.3　如何使用throws 201 
12.11　本章习题 202 
第13章　java的i/o处理 205 
13.1　流（stream）的概念 205 
13.2　字符流 205 
13.2.1　输入流类inputstream 205 
13.2.2　输出流类outputstream 206 
13.3　字节流 207 
13.3.1　writer类 207 
13.3.2　reader类 209 
13.4　file类 209 
13.4.1　创建文件夹（目录） 210 
13.4.2　创建文件 210 
13.4.3　复制文件 212 
13.4.4　删除文件 213 
13.4.5　删除文件夹 214 
13.5　i/o流的典型运用 215 
13.5.1　文件流 215 
13.5.2　读取内存数据 216 
13.5.3　链接文件 218 
13.5.4　管道流 219 
13.5.5　随机访问文件 219 
13.5.6　从标准输入读取 220 
13.5.7　i/o重定向 221 
13.5.8　过滤流 222 
13.5.9　序列化对象 223 
13.6　常见面试题分析 224 
13.6.1　写一个复制文件的程序 224 
13.6.2　什么是序列化 225 
13.6.3　如何序列化和反序列化一个java对象 225 
13.7　本章习题 225 
第14章　java swing编程 227 
14.1　swing容器 227 
14.1.1　jframe容器 227 
14.1.2　jpanel容器 228 
14.2　swing的事件模型 230 
14.2.1　制作一个按钮 230 
14.2.2　实现按钮的事件监听 231 
14.2.3　swing的事件模型 232 
14.3　swing组件 233 
14.3.1　按钮 234 
14.3.2　图示（icons） 234 
14.3.3　文本 236 
14.3.4　工具提示 237 
14.3.5　单选按钮 237 
14.3.6　复选框 239 
14.3.7　组合框 240 
14.3.8　列表框 241 
14.3.9　消息框 243 
14.3.10　菜单 249 
14.3.11　页签式面板 251 
14.3.12　弹出式菜单 253 
14.3.13　工具条 254 
14.3.14　进度条 256 
14.3.15　对话框 257 
14.3.16　文件对话框 258 
14.3.17　边框 260 
14.3.18　表模型 262 
14.3.19　树模型 265 
14.4　控制面板布局管理器 271 
14.4.1　流布局管理器 271 
14.4.2　边界布局管理器 273 
14.4.3　网格布局管理器 274 
14.4.4　盒子布局管理器 276 
14.5　常见面试题分析 277 
14.5.1　swing事件模型的通用规则是什么 277 
14.5.2　如何使用flowlayout布局 278 
14.6　本章习题 278 
第四篇　java分布式计算技术 
第15章　java网络编程 279 
15.1　tcp/ip协议 279 
15.1.1　ip协议和ip地址 279 
15.1.2　tcp协议和端口 282 
15.1.3　客户/服务器通信模型 282 
15.2　udp协议 283 
15.3　基于java的客户/服务器程序 283 
15.3.1　socket及其原语 284 
15.3.2　创建服务器 285 
15.3.3　创建客户端 286 
15.4　socket类详解 288 
15.4.1　创建socket 289 
15.4.2　socket类的getxx()方法 291 
15.4.3　socket类的setxx()方法 293 
15.4.4　关闭socket 297 
15.5　socketserver类 297 
15.5.1　创建socketserver 297 
15.5.2　socketserver类的两个重要方法 299 
15.5.3　读取sockerserver信息 300 
15.6　数据报通信 301 
15.6.1　数据报通信简介 301 
15.6.2　datagrampacket类简介 302 
15.6.3　datagramsocket类简介 304 
15.6.4　实现数据报通信 306 
15.7　常见面试题分析 309 
15.7.1　简述对tcp/ip协议的理解 309 
15.7.2　java的tcp编程模型是什么 309 
15.7.3　udp协议的通信特点是什么 309 
15.8　本章习题 310 
第16章　rmi技术 311 
16.1　如何实现rmi程序 311 
16.1.1　定义远端接口 312 
16.1.2　定义远端对象 312 
16.1.3　实现服务器对象的stub和skeleton 313 
16.1.4　创建服务器程序 313 
16.1.5　创建客户端程序 314 
16.1.6　运行rmi程序 315 
16.2　rmi的动态加载类 317 
16.3　rmi的特点 317 
16.4　常见面试题分析 318 
16.4.1　简述rmi应用程序的组成 318 
16.4.2　简述分布式对象应用程序的任务 318 
16.5　本章习题 318 
第17章　jsp技术 320 
17.1　jsp技术概述 320 
17.1.1　jsp的基本概念 320 
17.1.2　jsp的运行原理 321 
17.2　构建jsp运行、开发环境 321 
17.2.1　jre的安装 322 
17.2.2　tomcat的安装 323 
17.2.3　开发工具的选择 325 
17.2.4　建立和保存jsp文件 326 
17.3　jsp编程基础 327 
17.3.1　html标记 327 
17.3.2　html表单 330 
17.4　jsp基本语法 334 
17.4.1　声明 334 
17.4.2　表达式 335 
17.4.3　脚本 335 
17.4.4　注释 336 
17.4.5　指令 336 
17.4.6　动作 336 
17.5　jsp指令 337 
17.5.1　page指令 337 
17.5.2　include指令 338 
17.6　jsp动作 339 
17.6.1　动作 340 
17.6.2　动作 340 
17.6.3　动作 341 
17.6.4　动作 342 
17.6.5　动作 343 
17.6.6　动作 343 
17.7　jsp内部对象 345 
17.7.1　request对象 345 
17.7.2　response对象 347 
17.7.3　pagecontext对象 348 
17.7.4　session对象 349 
17.7.5　application对象 352 
17.7.6　out对象 353 
17.7.7　config对象 353 
17.7.8　page对象 353 
17.7.9　exception对象 354 
17.7.10　内部对象的作用范围 354 
17.8　常见面试题分析 355 
17.8.1　jsp的运行机制是什么 355 
17.8.2　jsp的内置对象及其用途是什么 355 
17.8.3　page和request作用范围的区别是什么 355 
17.9　本章习题 355 
第18章　java bean技术 358 
18.1　java bean技术概述 358 
18.2　java bean编写规范 359 
18.2.1　bean组件的工作机制 359 
18.2.2　java bean的编写要求 359 
18.2.3　java bean的命名规范 359 
18.2.4　java bean的包 359 
18.2.5　java bean的结构 360 
18.3　java bean属性 361 
18.3.1　单值（simple）属性 361 
18.3.2　索引（indexed）属性 361 
18.3.3　关联（bound）属性 362 
18.3.4　约束（constrained）属性 363 
18.4　java bean方法 365 
18.4.1　构造方法 365 
18.4.2　访问方法 366 
18.4.3　一般方法 366 
18.5　java bean事件 366 
18.5.1　事件模型 367 
18.5.2　事件状态对象 368 
18.5.3　事件监听者接口与事件监听者 368 
18.5.4　事件监听者注册与注销 369 
18.5.5　适配类 370 
18.6　java bean在jsp中的应用 370 
18.6.1　调用java bean 370 
18.6.2　链接数据库bean 371 
18.6.3　通过java bean查询数据库 373 
18.6.4　向数据库添加记录 374 
18.6.5　修改数据库记录 376 
18.6.6　删除数据库记录 378 
18.7　常见面试题分析 379 
18.7.1　jsp如何使用javabean 379 
18.7.2　简述什么是javabean 380 
18.8　本章习题 380 
第19章　servlet技术 383 
19.1　servlet概述 383 
19.1.1　servlet的特点 383 
19.1.2　servlet的应用范围 384 
19.1.3　servlet与jsp的关系 384 
19.2　servlet的基本架构 384 
19.2.1　servlet工作原理 384 
19.2.2　servlet接口 385 
19.2.3　典型servlet程序 385 
19.3　servlet api 386 
19.3.1　servlet方法 386 
19.3.2　常用的servlet api 387 
19.3.3　servlet生命周期 389 
19.4　servlet开发 389 
19.4.1　servlet的基本代码 390 
19.4.2　servlet与表单交互 391 
19.4.3　servlet控制会话 392 
19.5　常见面试题分析 395 
19.5.1　servlet的生命周期是怎样的 395 
19.5.2　如何在servlet里获取请求参数的值 395 
19.5.3　什么是servlet 395 
19.6　本章习题 396 
第20章　java与xml技术 398 
20.1　标记语言的发展史 398 
20.2　html语言及其局限 398 
20.2.1　html语言 398 
20.2.2　html语言的局限性 399 
20.3　xml语言 400 
20.3.1　xml的优势 400 
20.3.2　xml文档的基础知识 402 
20.3.3　xml文档结构 406 
20.4　创建xml文档 407 
20.4.1　创建元素 407 
20.4.2　创建空元素 408 
20.4.3　元素属性 409 
20.4.4　注释 409 
20.4.5　实体 410 
20.5　xml与java 411 
20.5.1　xml与java结合理由 411 
20.5.2　java如何解析xml文档 411 
20.6　dom解析xml文档 412 
20.6.1　dom（文档对象模型） 412 
20.6.2　dom的结构及接口 413 
20.6.3　dom实现与核心api 413 
20.6.4　基于dom的树操作 413 
20.7　常见面试题分析 416 
20.7.1　简述html语言的局限性 416 
20.7.2　简述xml的优势 417 
20.8　本章习题 417 
第五篇　java编程实例 
第21章　系统分析和设计 419 
21.1　系统功能分析 419 
21.2　数据库设计 420 
21.3　系统总体设计 422 
21.3.1　服务器端软件结构 422 
21.3.2　客户端软件结构 425 
第22章　服务器端功能模块的实现 430 
22.1　启动服务器 430 
22.2　服务器主界面 431 
22.3　服务连接线程 436 
22.4　为客户端提供功能服务模块 438 
22.5　数据库连接模块 445 
22.6　管理登录用户模块 447 
22.7　显示用户信息模块 449 
22.8　存储用户信息的javabean 451 
22.9　实现头像显示功能的公用类 453 
22.10　显示时间的公用类 455 
22.11　设置窗口位置的公用类 455 
第23章　客户端功能模块的实现 457 
23.1　登录模块 457 
23.2　客户端主界面 463 
23.3　聊天模块 477 
23.4　查找好友模块 483 
23.5　显示好友信息模块 485 
23.6　接收陌生人信息模块 488 
23.7　更改用户信息模块 490 
23.8　用户注册模块 497 
23.9　显示版权信息 504