第1部分 求职过程篇 3
第1章 写在前面的话 3
1.1 程序员这个职业 3
1.1.1 职业感受 3
1.1.2 程序员是吃青春饭的么 5
1.1.3 项目开发的分工 6
1.1.4 程序员的职业发展 7
1.2 如何应聘 8
1.2.1 个人简历技巧 8
1.2.2 英文简历 10
1.2.3 应聘过程 10
1.3 几个建议 13
1.4 本章小结 15
第2部分 Java试题篇 19
第2章 Java编程基础 19
2.1 Java概述和开发环境 19
2.1.1 理解Java 19
2.1.2 如何构建Java开发环境 21
2.2 Java语言基础 23
2.2.1 什么是Java的类和对象 23
2.2.2 必须掌握Java命名规范 25
2.2.3 区分实例成员和静态成员 27
2.2.4 理解继承 30
2.2.5 熟悉Java的常用命令 32
2.2.6 掌握Java编程原则 35
2.3 本章小结 35
第3章 Java语言基础 36
3.1 基本语言元素 36
3.1.1 Java标识符 36
3.1.2 容易犯错的Java关键字 38
3.1.3 使用Java的注释 40
3.2 原始类型 42
3.2.1 int和Integer的区别 42
3.2.2 原始数据类型的分类 45
3.2.3 注意变量初始化 47
3.2.4 最简单的Java源文件 50
3.3 本章小结 53
第4章 运算符和类型转换 54
4.1 Java的运算符 54
4.1.1 区分/和%运算符 54
4.1.2 掌握递增和递减运算 56
4.1.3 熟悉位运算符 58
4.1.4 什么是instanceof 65
4.1.5 容易混淆的优先级 66
4.1.6 equals()和==的区别 68
4.1.7 理解赋值运算符 70
4.2 参数传递 72
4.2.1 理解参数传递 72
4.2.2 注意final参数传递 75
4.3 类型转换 76
4.3.1 原始数据类型转换 76
4.3.2 String类型的相关转换 78
4.3.3 日期类型转换 80
4.4 本章小结 83
第5章 声明和访问控制 84
5.1 数组 84
5.1.1 声明数组变量 84
5.1.2 如何获得数组的长度 86
5.1.3 必须记住数组不能改变大小 87
5.1.4 数组索引从0开始 87
5.1.5 数组元素初始化 88
5.2 声明和访问修饰符 89
5.2.1 类和方法的声明 89
5.2.2 如何使用this 91
5.2.3 熟悉Java修饰符 94
5.2.4 牢记成员可访问修饰符 98
5.2.5 理解构造器和方法的区别 101
5.3 本章小结 109
第6章 流程控制、异常处理和断言 110
6.1 流程控制 110
6.1.1 熟悉选择语句 110
6.1.2 理解while语句 116
6.1.3 迭代语句for 120
6.1.4 return语句 124
6.1.5 break和continue 127
6.2 异常处理 133
6.2.1 理解Java的异常类 133
6.2.2 深入理解异常处理机制 134
6.3 断言 143
6.4 本章小结 147
第7章 深入理解面向对象的精髓 148
7.1 理解面向对象设计思想 148
7.1.1 面向对象的特征 148
7.1.2 面向对象的设计原则 149
7.2 类的继承 150
7.2.1 Java类的继承 150
7.2.2 区分is a和has a 153
7.3 方法覆盖和方法重载 156
7.3.1 方法重载 156
7.3.2 方法覆盖 162
7.4 构造函数 169
7.4.1 理解构造函数的执行过程 169
7.4.2 掌握super和this用法 173
7.5 本章小结 178
第8章 对象生存期 179
8.1 垃圾回收机制 179
8.2 初始器 184
8.3 本章小结 190
第9章 线程 191
9.1 Java的多线程机制 191
9.1.1 区别进程和线程 191
9.1.2 了解线程的状态 192
9.1.3 创建线程的两种方式 193
9.2 线程同步 197
9.3 线程转换 202
9.4 本章小结 208
第10章 基础类 209
10.1 java.lang包 209
10.1.1 所有类的父类Object 209
10.1.2 数字计算Math类 212
10.1.3 最常用的String类 215
10.1.4 容易混淆的StringBuffer类 221
10.2 java.util包 225
10.2.1 理解集合类 226
10.2.2 核心接口及其实现 227
10.2.3 掌握Set和List 233
10.2.4 了解Map接口 239
10.2.5 区分hashCode()和equals() 246
10.3 java.io包 248
10.3.1 了解Java的IO类 248
10.3.2 使用InputStream和OutputStream 251
10.3.3 常用的文件操作类 252
10.3.4 掌握过滤IO类 257
10.4 本章小结 261
第11章 Servlet/JSP基础 262
11.1 Servlet基础 262
11.1.1 Servlet和CGI的区别 262
11.1.2 牢记Servlet的生命周期 264
11.1.3 Servlet的运行机制 264
11.1.4 Servlet的重定向 267
11.2 JSP基础 269
11.2.1 Servlet和JSP的区别 269
11.2.2 掌握JSP的内置对象 270
11.2.3 熟悉JSP的基本动作 271
11.2.4 JSP的页面跳转 273
11.2.5 常用的request对象 275
11.2.6 学会在JSP中使用标签 276
11.2.7 了解JSP的EL表达式 278
11.3 本章小结 282
第12章 Java EE技术 283
12.1 理解Java EE 283
12.1.1 什么是J2EE(JavaEE) 283
12.1.2 了解JavaEE技术名词 284
12.2 EJB组件 286
12.2.1 认识EJB 286
12.2.2 EJB和Java Bean的区别 287
12.2.3 EJB3.0的特点 288
12.2.4 必须知道EJB的类型 288
12.2.5 掌握Session Bean(EJB2.1) 289
12.2.6 EJB3.0规范的Session Bean 295
12.2.7 Entity Bean基础(EJB2.1) 297
12.2.8 EJB3.0中的Entity Bean 301
12.2.9 Message-driven Bean 303
12.3 常见的JavaEE服务器 304
12.3.1 掌握WebLogic 304
12.3.2 WebSphere服务器 306
12.3.3 JBoss服务器 307
12.4 SOA和Web Service 307
12.4.1 什么是SOA 308
12.4.2 什么是Web Service 309
12.4.3 掌握相关技术名词 311
12.5 本章小结 311
第13章 数据库技术 312
13.1 掌握JDBC 312
13.1.1 了解JDBC的工作机制 312
13.1.2 熟悉ResultSet 315
13.1.3 区别Statement、PreparedStatement和CallableStatement 317
13.2 数据库基础 318
13.2.1 数据结构 318
13.2.2 数据库基础 320
13.3 常见数据库 323
13.3.1 Oracle数据库 323
13.3.2 SQL Server数据库 327
13.4 本章小结 333
第14章 常见的开源技术 334
14.1 Struts l.x 334
14.1.1 理解MVC设计模式 334
14.1.2 Struts 1.x框架组件 336
14.1.3 Struts 1.x配置文件 338
14.1.4 掌握Action 341
14.2 Struts2 344
14.2.1 了解Struts2的特点 344
14.2.2 掌握Struts2框架 346
14.2.3 熟悉OGNL表达式 350
14.3 Spring框架 352
14.3.1 理解IoC(Inversion of Control) 352
14.3.2 理解依赖注入 354
14.3.3 掌握Spring中Bean的作用域 356
14.3.4 掌握Spring中事务传播和隔离级别 358
14.4 Hibernate框架 360
14.4.1 了解Hibernate的核心接口 360
14.4.2 掌握Hibernate配置文件 362
14.4.3 熟悉Hibernate映射类型 363
14.4.4 Hibernate处理机制 364
14.5 Ajax技术 369
14.5.1 Ajax技术组成 369
14.5.2 了解XMLHttpRequest对象 370
14.5.3 Ajax中的JavaScript 371
14.6 JSF技术 375
14.6.1 了解JSF 375
14.6.2 什么是MyFaces 376
14.7 FreeMarker技术 377
14.7.1 什么是FreeMarker 377
14.7.2 FreeMarker模板语言 378
14.8 Log4j技术 378
14.8.1 什么是Log4j 378
14.8.2 了解Log4j记录器优先级 379
14.8.3 Log4j日志输出样式 380
14.9 Ant 380
14.9.1 什么是Ant 380
14.9.2 Ant的基本配置 381
14.10 本章小结 383
第15章 软件工程和UML 384
15.1 软件工程基础 384
15.1.1 软件工程的四项基本原则 384
15.1.2 了解软件工程的生命周期 385
15.1.3 软件生命周期模型 387
15.2 UML语言 389
15.2.1 什么是建模 389
15.2.2 什么是UML 391
15.2.3 UML的5类图 391
15.2.4 UML类图 392
15.2.5 其他相关试题 393
15.3 本章小结 396
第3部分 上机测试篇 399
第16章 上机编程面试题 399
16.1 基础编程题 399
16.1.1 拆分字符串 399
16.1.2 截取字符串 401
16.1.3 常见的排序方法 403
16.1.4 排列组合 405
16.1.5 多线程编程 406
16.1.6 Singleton模式编程 407
16.1.7 金额转换 408
16.2 数据库及开源技术 411
16.2.1 数据库 411
16.2.2 开源技术 419
16.3 本章小结 422
第4部分 思维拓展篇 425
第17章 思维拓展面试题 425
17.1 思维拓展编程 425
17.1.1 河内塔 425
17.1.2 三色旗 427
17.1.3 背包问题 428
17.1.4 洗扑克牌(乱数排列) 430
17.1.5 求质数 432
17.1.6 Craps赌博游戏 433
17.1.7 最大访客数 435
17.2 智力测试题 436
17.3 本章小结 443