Java程序员面试宝典
作者:杨磊 等编著
出版时间:2010
内容简介
目前许多开发者对Java语言及其底层原理掌握不牢固,在面试过程中经常漏洞百出,无法取得好成绩。而招聘单位为了得到高素质的员工往往使出浑身解数,采用各种形式的面试考察求职者,这让面试难度大大增加。求职者要想成功应聘,不仅需要扎实的基本功,还需要经受情商和智商方面的考查。《Java程序员面试宝典(附光盘)》通过200个面试题,对企业招聘Java程序员需要掌握的知识进行了系统、全面的总结,以帮助读者进行充分的面试准备,在激烈的竞争中拔得头筹。《Java程序员面试宝典(附光盘)》列举了各大IT公司的面试真题,详细分析了应聘Java程序员职位的常见考点,主要内容包括面试流程及求职准备、Java语言基础、数据类型、集合框架、图形用户界面、输入与输出、多线程、反射机制、网络编程、JDBC、Web开发基础、SSH框架(Struts、Spring和Hibernate)、EJB、JPA、算法、设计模式及情商和智商类面试题。《Java程序员面试宝典(附光盘)》附带1张DVD光盘,内容为《Java程序员面试宝典(附光盘)》所有面试题的多媒体教学视频(共14.5小时)及免费赠送的55小时Java教学视频和5.5小时算法教学视频。授人以鱼,不如授人以渔。《Java程序员面试宝典(附光盘)》中的面试题不但以实例代码和流程图的形式对答案进行了详细解析,还对问题的相关知识点进行了扩展说明。希望通过《Java程序员面试宝典(附光盘)》,读者可以成功应聘,并提升综合素质。《Java程序员面试宝典(附光盘)》适合应聘Java和J2EE职位的程序员阅读,也适合其他程序员作为拓展读物进行阅读。
目录
第1篇 求职准备
第1章 应聘软件开发职位前必须知道的那些事\t2
1.1 认识职业规划\t2
1.1.1 职业规划的意义\t2
1.1.2 软件人才的职业规划\t3
1.2 应聘过程\t4
1.2.1 掌握基本的应聘流程\t4
1.2.2 面试资料的准备\t5
1.2.3 简历的写法及应注意的问题\t5
1.2.4 求职信的写法及应注意的问题\t8
1.2.5 面试的准备\t9
1.3 面试的方式\t10
1.3.1 笔试\t10
1.3.2 电话面试\t11
1.3.3 面试\t12
1.4 小结\t13
第2篇 Java基础知识
第2章 Java程序基础( 教学视频:43分钟)\t16
2.1 开发和运行环境\t16
面试题001 JDK和JRE的区别是什么?它们各自有什么作用\t16
面试题002 如何利用JDK编译和运行应用程序\t17
面试题003 环境变量CLASSPATH的作用是什么\t19
面试题004 如何为Java程序动态的指定类搜索路径\t20
2.2 Java语言概述\t20
面试题005 Java与C++程序在编译和运行上有什么区别\t21
面试题006 什么是JVM及其工作原理\t21
面试题007 Java程序为什么无须delete语句进行内存回收\t23
2.3 生成、部署和配置\t24
面试题008 如何利用命名提示符把Java程序打包成jar文件\t24
面试题009 关于Java Web项目的生成、部署和配置问题\t26
面试题010 EJB项目的生成和部署问题\t27
2.4 小结\t28
第3章 Java语法基础( 教学视频:103分钟)\t29
3.1 基础类型和语法\t29
面试题011 变量及其作用范围\t29
面试题012 Java的变量分哪两种大的数据类型\t30
面试题013 Java包含哪些基本数据类型及其包装类\t32
面试题014 如何理解Java中的装箱和拆箱\t33
面试题015 Java的引用和C++的指针有什么区别\t34
面试题016 请简述Java中的main()方法\t35
面试题017 Java中equal和==的区别是什么\t36
面试题018 Java提供了哪几种循环结构?它们各自的特点是什么\t38
面试题019 Java中的三元运算符是什么\t39
面试题020 Java中的注释有哪些\t40
3.2 对象和类型\t41
面试题021 类和对象有什么区别\t41
面试题022 Java中如何使用继承来重用代码\t43
面试题023 简述Java中的多态\t44
面试题024 请介绍Java中静态成员的特点\t46
面试题025 简述Java派生类中的构造方法如何为父类传递参数\t47
面试题026 简述接口和抽象类的区别\t48
面试题027 简述一下内部类的实质是什么\t50
3.3 包和访问控制\t52
面试题028 包应该如何被创建及使用\t53
面试题029 说明private、protected、public和default的区别\t54
3.4 小结\t55
第4章 数据类型及类型转换( 教学视频:63分钟)\t56
4.1 整型数据\t56
面试题030 int和Integer有什么区别\t56
面试题031 int的取值范围\t57
面试题032 如何用八进制和十六进制来表示整型数据\t58
面试题033 long的取值范围\t59
4.2 实型数据\t59
面试题034 float和double的取值范围各是多少\t59
面试题035 实型与整型的相互转换\t60
面试题036 如何用BigDecimal类进行精确运算\t61
4.3 布尔型数据\t63
面试题037 Java可以用非0来代表true吗\t63
面试题038 boolean和它的包装类的区别在哪里\t64
4.4 字符型数据\t65
面试题039 char的取值范围\t65
面试题040 char能否存储汉字\t66
面试题041 如何使用转义字符\t67
4.5 String型数据\t68
面试题042 字符串字面量是否自动生成一个String对象\t68
面试题043 字符串对象池的作用是什么\t69
面试题044 StringBuffer和StringBuilder存在的作用是什么\t71
面试题045 如何输出反转过后的字符串\t72
面试题046 如何使用指定的字符集创造String对象\t73
4.6 小结\t74
第5章 数组和集合的使用( 教学视频:54分钟)\t75
5.1 Java的数组\t75
面试题047 如何理解数组在Java中作为一个类\t75
面试题048 new Object[5]语句是否创建了5个对象\t77
面试题049 如何拷贝数组的数据\t78
面试题050 二维数组的长度是否固定\t79
5.2 集合框架\t80
面试题051 什么是集合\t80
面试题052 迭代器是什么\t81
面试题053 比较器是什么\t82
面试题054 Vector与ArrayList的区别\t85
面试题055 HashMap和HashTable的区别\t86
面试题056 集合使用泛型带来了什么好处\t87
面试题057 如何把集合对象里的元素进行排序\t88
面试题058 符合什么条件的数据集合可以使用foreach循环\t91
5.3 小结\t93
第6章 Java图形用户界面( 教学视频:42分钟)\t94
6.1 图形用户界面基础\t94
面试题059 JFrame的作用是什么?它应该如何使用\t94
面试题060 如何创建一个按钮\t96
面试题061 如何使用文本输入组件\t97
面试题062 如何捕获事件\t98
6.2 布局控制\t100
面试题063 如何使用BorderLayout布局\t100
面试题064 如何使用FlowLayout布局\t102
面试题065 如何使用GridLayout布局\t103
6.3 事件模型\t105
面试题066 Swing事件模型的通用规则是什么\t105
面试题067 监听器的适配器的作用是什么\t106
6.4 Swing编程应用\t108
面试题068 用JButton开发扫雷游戏\t108
面试题069 用JTextField和JButton开发计算器程序\t112
面试题070 用JTextArea开发俄罗斯方块游戏\t115
6.5 小结\t122
第3篇 Java高级特性
第7章 输入输出流( 教学视频:37分钟)\t124
7.1 File类\t124
面试题071 目录和文件操作\t124
面试题072 写一个复制文件的程序\t125
面试题073 如何使用随机存取文件RandomAccessFile类\t127
7.2 Stream类\t128
面试题074 字节流的处理方式\t128
面试题075 字符流的处理方式\t129
7.3 序列化\t130
面试题076 什么是序列化\t130
面试题077 如何序列化和反序列化一个Java对象\t131
7.4 小结\t133
第8章 多线程编程( 教学视频:37分钟)\t134
8.1 多线程编程的基本概念\t134
面试题078 什么是多线程\t134
面试题079 解释进程和线程的区别\t135
8.2 Java中的多线程编程\t136
面试题080 如何让一个类成为线程类\t136
面试题081 解释Runnable接口与Thread类的区别\t137
面试题082 如何启动一个线程\t138
面试题083 如何使用sychronized来让线程同步\t139
面试题084 编写一个生产者与消费者模型的多线程例子程序\t141
面试题085 如何使用Java的线程池\t143
8.3 小结\t145
第9章 Java的反射机制( 教学视频:30分钟)\t146
9.1 反射基础\t146
面试题086 反射的原理是什么\t146
面试题087 Class类的含义和作用是什么\t147
面试题088 如何操作类的成员变量(Field)\t148
面试题089 如何操作类的方法(Method)\t150
9.2 反射应用举例\t151
面试题090 如何利用反射实例化一个类\t151
面试题091 如何利用反射机制来访问一个类的私有成员\t152
面试题092 如何利用反射来覆盖数据对象的toString()方法\t153
9.3 小结\t155
第10章 Java的网络编程( 教学视频:44分钟)\t156
10.1 网络编程基础\t156
面试题093 TCP/IP协议的理解\t156
面试题094 TCP协议的通信特点是什么\t157
面试题095 Java的TCP编程模型是什么\t158
面试题096 UDP协议的通信特点是什么\t160
面试题097 Java的UDP编程模型是什么\t161
10.2 Java网络编程举例\t163
面试题098 如何创建TCP通信的服务器端的多线程模型\t163
面试题099 用TCP通信模型创建一个Web服务器\t165
面试题100 用UDP通信模型创建一个即时聊天软件\t167
面试题101 如何使用Java访问Web站点\t169
10.3 小结\t171
第11章 Java对数据库的操作( 教学视频:43分钟)\t172
11.1 SQL基础\t172
面试题102 什么是SQL\t172
面试题103 如何使用SQL检索数据\t173
面试题104 如何使用SQL更改数据\t175
11.2 JDBC\t176
面试题105 JDBC的工作原理是什么\t176
面试题106 请简述JDBC操作数据库的编程步骤\t178
面试题107 如何使用JDBC的事务\t179
面试题108 如何使用JDBC实现数据访问对象层(DAO)\t181
面试题109 如何使用连接池技术\t185
面试题110 如何使用可滚动的结果集\t187
面试题111 如何使用可更新的结果集\t189
11.3 JDBC操作各类数据源\t190
面试题112 如何使用JDBC操作Oracle数据库\t191
面试题113 如何使用JDBC操作MySQL数据库\t192
面试题114 如何使用JDBC操作SQL Server数据库\t193
面试题115 如何使用JDBC操作Access\t195
面试题116 如何使用JDBC操作Excel\t196
11.4 小结\t197
第4篇 Java EE相关问题
第12章 Web开发相关技术( 教学视频:60分钟)\t200
12.1 Servlet与Web容器\t200
面试题117 一个Web应用程序应该遵守哪些规范\t200
面试题118 什么是Servlet\t202
面试题119 Servlet的生命周期是怎样的\t203
面试题120 Servlet接口有哪些实现类\t205
面试题121 如何在Servlet中获取请求参数的值\t206
面试题122 Forward和Redirect的区别\t207
面试题123 过滤器的作用和工作原理是什么\t210
面试题124 监听器的作用和工作原理是什么\t211
12.2 JSP动态语言\t214
面试题125 JSP的运行机制是什么\t214
面试题126 JSP的内置对象及其用途\t215
面试题127 page和request作用范围的区别是什么\t218
面试题128 JSP如何使用JavaBean\t219
12.3 表达式语言和JSTL\t221
面试题129 如何使用迭代标签循环显示数据\t221
面试题130 JSTL提供了哪些逻辑判断标签\t223
12.4 小结\t225
第13章 Struts、Spring和Hibernate组合( 教学视频:109分钟)\t227
13.1 MVC和Struts\t227
面试题131 什么是MVC设计模式\t227
面试题132 如何编写一个MVC的Java Web应用程序\t229
面试题133 Struts框架是如何体现MVC模式的\t232
面试题134 开发一个Struts应用程序的思路是什么\t235
面试题135 Struts提供了哪几类Action\t239
13.2 Hibernate\t240
面试题136 什么是对象关系映射模型(ORM)\t240
面试题137 Hibernate的基本使用思想是什么\t242
面试题138 Hibernate的实体存在哪几种状态\t244
面试题139 HQL查询语言的使用方法是什么\t246
面试题140 如何使用Hibernate进行分页查询\t249
面试题141 get()和load()方法的区别是什么\t249
面试题142 如何映射一对一关系\t250
面试题143 如何映射一对多关系\t252
面试题144 如何映射多对多关系\t254
面试题145 继承关系的映射策略有哪些\t256
13.3 Spring\t259
面试题146 依赖注入的方式有哪些\t259
面试题147 如何使用Spring的声明式事务\t262
面试题148 如何在Web应用程序中整合Struts、Spring和Hibernate\t264
13.4 小结\t266
第14章 EJB与JPA相关问题( 教学视频:51分钟)\t267
14.1 EJB 3.0\t267
面试题149 EJB的类型有哪几种\t267
面试题150 EJB程序的开发思路和步骤是什么\t268
面试题151 无状态会话Bean的生命周期是怎样的\t271
面试题152 有状态会话Bean的生命周期是怎样的\t274
面试题153 Servlet如何调用EJB\t277
面试题154 用EJB发布Web服务的基本思路是什么\t279
面试题155 JMS分哪两种开发模式\t282
面试题156 如何使用消息驱动Bean进行异步开发\t287
14.2 JPA规范\t288
面试题157 JPA的使用思路是什么\t289
面试题158 无状态会话Bean如何获得和使用EntityManager\t291
面试题159 JPA可以在EJB容器以外的地方使用吗?\t293
14.3 小结\t296
第5篇 算法和设计模式
第15章 Java编程试题( 教学视频:70分钟)\t298
15.1 基础编程试题\t298
面试题160 打印出100以内的素数\t298
面试题161 打印九九乘法口诀表\t300
面试题162 打印10000以内的回文数字\t301
面试题163 获得任意一个时间的下一天的时间\t302
面试题164 50个人围成一圈数到3和3的倍数时出圈,
\t 问剩下的人是谁?在原来的位置是多少\t304
面试题165 将某个时间以固定格式转化成字符串\t305
面试题166 用Java实现一个冒泡排序算法\t306
面试题167 用Java实现一个插入排序算法\t308
面试题168 用Java实现一个快速排序算法\t309
15.2 高级编程试题\t311
面试题169 怎样实现Singleton(单例)模式编程\t311
面试题170 怎样实现简单工厂模式编程\t313
面试题171 怎样实现工厂方法模式编程\t315
面试题172 怎样实现抽象工厂方法模式编程\t317
面试题173 怎样实现观察者模式编程\t319
面试题174 用Java实现一个链表类\t323
15.3 小结\t325
第6篇 情商和智商经典面试题
第16章 情商类面试题( 教学视频:48分钟)\t328
16.1 应届毕业生问题应答\t328
面试题175 你有暑期打工的经历吗?是怎样找到的\t328
面试题176 你认为的你第一份工作能干多久\t329
面试题177 除了本公司,你还应聘了其他哪些公司呢\t329
面试题178 你如何看待公司没有足够的培训课程\t330
16.2 常规问题应答\t331
面试题179 简要介绍你自己\t331
面试题180 你在上一家公司的离职原因是什么\t333
面试题181 你了解本公司吗?为什么要选择本公司\t334
面试题182 你如何看待加班问题的\t335
面试题183 自己的最大优缺点是什么\t336
面试题184 你希望的待遇为多少\t336
面试题185 你认为团队工作和独自干活哪样效率更高\t337
面试题186 如果你所处的团队中,并不是每个成员都承担着
相同的工作量,你会怎样看待\t338
面试题187 你怎样为工作任务区分轻重缓急\t340
面试题188 如果你完全不同意你上司的某个要求,你怎么处理\t341
16.3 小结\t342
第17章 智商类面试题( 教学视频:43分钟)\t343
17.1 脑筋急转弯\t343
面试题189 美国有多少辆汽车\t343
面试题190 下水道的盖子为什么是圆形的\t344
面试题191 分蛋糕\t345
面试题192 你怎样改造和重新设计一个ATM银行自动取款机\t346
17.2 逻辑推理\t347
面试题193 3盏灯与3个开关\t347
面试题194 戴帽子\t348
面试题195 海盗分金\t349
面试题196 罪犯认罪\t350
17.3 计算推理\t351
面试题197 倒水问题\t351
面试题198 找出轻球\t352
面试题199 骗子购物\t353
面试题200 烧香问题\t354
17.4 小结