导语摘要
欧立奇、朱梅、段韬编著的《Java程序员面试宝典(第3版)》采用一种问询式的结构。这样不仅言简意赅、平易近人,而且可以容纳更多的题目,真正达到“宝典”之效用。但本书又不仅仅作为一个题库出现,对一个类型的问题不简单加以重复。本书采用循序渐进的办法:(1)将重要概念加以复习;(2)完善解题思路,而不是仅仅给出答案;(3)给出完整可靠的答案,如果是可以验证的,要给出验证的结果;(4)综合几种解题方案,给出最优解;(5)触类旁通,给出语言背后的算法本质性解释。本书的解题思路不仅能够让读者知道什么是正确的解决方案,而且让读者明白怎样能获得最佳方案。
作者简介
欧立奇,国际商业机器有限公司大中华区高级软件工程师,对程序员笔试、面试、智力测试有着多年深入广泛地研究。除本书外,还著有《程序员面试宝典》,《IT求职宝典》等。
目录
第1部分 求职过程
古人云:凡事预则立,不预则废。机会都是垂青有准备的人。为了得到一份满意的工作,求职者一定要对整个求职过程有清醒的了解。把能够预见的、必须做的事情早一些做完,这样在大规模招聘开始的时候就可以专心地为面试做准备。求职过程中会发生很多预料不到的事情,当你的计划被这些事情打乱之后,要做的事会越堆越多,一步落后,步步落后。如果能够尽早把能做的事情做完,即便有计划外的事件发生,也不会产生太严重的影响。努力地使事态的发展处在自己能控制的范围之内,这样无论发生任何事都能有应对之策。
第1章 应聘求职
每年的9月到次年的1月,都是应届毕业生求职、在职人员跳槽的高峰期。对于即将成为程序员的应届毕业生们,在求职过程中怎样确定目标公司和目标职位?对于已经是程序员的跳槽大军,是按照技术路线发展自己的职业生涯,还是走向管理岗位继续自己的职业道路,或者是改变自己的发展轨迹?在求职过程中要注意哪些细节?这些都是求职者所关心的话题。
1.1 应聘渠道
1.2 应聘流程
第2章 简历书写
据统计,80%的简历都是不合格的。不少人事管理者抱怨收到的许多简历在格式上很糟糕。简历应该如何做到在格式上简洁明了,重点突出?求职信应该如何有足够的内容推销自己?如何控制长度,言简意赅?相信读了本章你会对简历的撰写有一个新的认识。
2.1 书写简历注意事项
2.2 简历模板
第3章 求职五步曲
笔试、电话面试和面试是顺利求职的三个过程。三关全过才能顺利签约,只要有一关没能通过,就会被“刷”掉。除此之外,签约本身又何尝不是一个重要的考试?涉及你的未来、人生、行业甚至家庭。当然有签约就有可能会有违约,真希望你们不必走第五步,但是这个世界毕竟不是童话。
3.1 笔试
3.2 电话面试
3.3 面试
3.4 签约
3.5 违约
第4章 职业生涯发展规划
在一般情况下,我们工作一年之后,对自己的喜好及擅长都有了更加深刻的了解,这时会有较为明确的职业发展规划。
4.1 缺乏工作经验的应届毕业生
4.2 更换工作的程序员们
4.3 快乐地工作
第2部分 Java程序设计
本部分主要以Java设计语言为基础,通过大量实际的例子分析各大公司Java面试题目,从技术上分析面试题的内涵。一般公司的面试题都是两套——C++或Java,面试者可以选择。
第5章 Java程序设计基本概念
对于一个求职者或者应届毕业生来说,公司除了对项目经验有所问询之外,最好的考试办法就是检查基本功,包括编程风格,以及对赋值语句、递增语句、类型转换、数据交换等程序设计基本概念的理解。当然,在考试之前最好对自己所掌握的程序概念知识有所了解,尤其是对各种细致的考点要加以重视。本章考题来自真实的笔试资料,希望读者先不要看答案,自我解答后再与答案加以对比,找出自己的不足。
5.1 JVM
5.2 i++
5.3 类型转换
5.4 程序结构
5.5 运算符
5.6 异常
5.7 反射
第6章 传递与引用
Java语言明确说明取消了指针,因为指针往往是在带来方便的同时导致代码不安全的根源,而且还会使程序变得非常复杂和难以理解,滥用指针写成的代码不亚于使用早已“臭名昭著”的GOTO语句。Java放弃指针的概念绝对是极其明智的。但这只是在Java语言中没有明确的指针定义,实质上,每一个new语句返回的都是一个指针的引用,只不过在大多数时候Java不用关心如何操作这个“指针”,更不用像在操作C++的指针那样胆战心惊,唯一要多注意的是在给函数传递对象的时候。
6.1 传值与传引用
6.2 静态变量与私有变量
6.3 输入/输出流
6.4 序列化
第7章 循环、条件、概率
递归过程的执行总是一个过程体未执行完,就带着本次执行的结果又进入另一轮过程体的执行……如此反复,不断深入,直到某次过程的执行遇到终止递归调用的条件成立时,则不再深入,而执行本次的过程体余下的部分,然后又返回到上一次调用的过程体中,执行其余下的部分……如此反复,直到回到起始位置上,才最终结束整个递归过程的执行,得到相应的执行结果。递归过程的程序设计的核心就是参照这种执行流程,设计出一种适合“逐步深入,而后又逐步返回”的递归调用模型,以解决实际的面试例题。
7.1 典型递归问题
7.2 循环与条件
第8章 Java内存管理
内存管理太重要了,花费多少口舌介绍它都不过分。笔者曾经见到这样一句话:“C++程序员觉得内存管理太重要了,所以一定要自己进行管理;Java/C#程序员觉得内存管理太重要了,所以一定不能自己去管理。”从某种意义上说,两者都是对的。面试中内存管理涉及堆、栈、哈希表、内存泄漏等方面。
8.1 垃圾收集
8.2 内存管理
8.3 clone
第9章 面向对象
面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看做是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心、以算法为驱动的话,面向对象的编程语言则是以对象为中心,以消息为驱动。用公式表示,过程式编程语言为“程序=算法+数据”;面向对象编程语言为“程序=对象+消息”。
9.1 面向对象的基本概念
9.2 类和对象
9.3 嵌套类
9.4 集合类
9.5 构造函数和析构函数
9.6 复制构造函数和赋值函数
9.7 多态的概念
第10章 继承与接口
接口在实际语言,如Delphi、Java、C++等中,都有广义和狭义之分。
10.1 基础知识
10.2 Super
10.3 this
10.4 不能继承的情况
10.5 抽象类与接口
第3部分 数据结构和设计模式
本部分主要介绍求职面试过程中出现的第二个重要的板块——数据结构,包括字符串的使用、堆、栈、排序方法等。此外,随着外企研发机构大量迁入我国,外企针对软件工程知识的考核,包括设计模式、UML、敏捷软件开发,以及.NET技术和完全面向对象语言C#的面试题目将会有增无减,今后设计模式在面试中的比重会进一步提高。
第11章 数据结构基础
面试时间一般有两个小时,其中至少有20~30分钟左右是用来回答数据结构相关的问题,链表栈、堆、数组的排序和逆置是笔试必考的内容。
11.1 堆栈
11.2 链表、哈希表
11.3 树、图
11.4 排序基础知识
第12章 字符串、数组、范型
求职者在进行笔试时,几乎没有不考字符串、数组和范型的。字符串也是一种相对简单的数据结构,结合指针,容易多次引起面试官反复发问。笔者曾不止一次在笔试或面试时遇到字符串的试题。事实上,字符串也是一个考验程序员编程规范和编程习惯的重要考点。范型是Java SE 1.5的新特型,泛型的本质是参数化类型,也就是说,所操作的数据类型被指定为一个参数。这种参数类型可用在类、接口和方法的创建中,分别称为范型类、泛型接口、泛型方法。Java语言引入范型的好处是安全简单。Java范型编程也是Java程序员面试的热点之一。求职者不能忽视这些细节,因为这些细节会体现你对操作系统、软件工程、边界内存处理等方面知识的掌控能力。
12.1 字符串基础问题
12.2 StringBuffer
12.3 正则表达式
12.4 数字流和数组
12.5 字符串其他问题
12.6 范型与容器
第13章 设计模式
地上本没有路,走的人多了,也就成了路。设计模式如同此理,它是经验的传承,并不成体系;它是被前人发现、经过总结形成了一套某一类问题的一般性解决方案,而不是被设计出来的定性规则;它不像算法那样可以照搬照用。
13.1 UML
13.2 常见设计模式
13.3 软件工程
第4部分 操作系统、数据库、网络
本部分主要介绍求职面试过程中出现的第三个重要的板块——操作系统、数据库、网络知识。作为一名程序员,尤其是系统管理方面的程序员,对这几部分有深刻的理解和领悟是相当重要的。
第14章 操作系统
操作系统面试例题主要涉及进程、线程、内存管理、垃圾回收,以及缓存等方面。
14.1 基础知识
14.2 进程
14.3 线程与串行化
第15章 数据库和SQL语言
数据库面试例题主要涉及范式、事物、存储过程、SQL语言及索引等方面。
15.1 数据库理论问题
15.2 SQL语言常见问题
第16章 计算机网络及分布式系统
网络面试例题主要涉及局域网、广域网和IP管理等方面。
16.1 网络结构
16.2 TCP/IP
16.3 网络其他问题
第5部分 Java开源
EJB组件曾经被认为是一个重量级的组件。EJB 3.0规范的重要目标就是简化EJB的开发,提供一个相对轻量级的组件方案。Spring基于轻量内核,然后通过集成第三方的服务器来提供完整的架构。
第17章 J2EE技术
从整体上讲,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准(Sun公司出于其自身利益的考虑,至今没有将Java及其相关技术纳入标准化组织的体系),它是Java技术在不断适应和促进企业级应用过程中的产物。目前,Java平台有三个版本:适用于小型设备和智能卡的。
内容摘要
《Java程序员面试宝典(第三版)》是《Java程序员面试宝典》的第三版。第三版在保留第二版数据结构、字符串处理、Java程序设计等主干内容的基础上,更新了部分程序员面试题目,内容主要取材于2011年至2013年多家大公司的面试题,以反映第二版图书出版后近两年来所发生的变化,目的是帮助求职者在面试过程中更好地处理一些新问题,应对新变化。
《Java程序员面试宝典(第三版)》最后着力讲述了如何进行英语面试和电话面试,并对求职中签约、毁约的注意事项及群体面试进行了解析。《Java程序员面试宝典(第三版)》的面试题除了有详细的解析外,对相关知识点也有扩展说明。希望这些内容对读者从求职就业到提升计算机专业知识有显著的帮助。
主编推荐
《Java程序员面试宝典(第三版)》对于Java笔试面试常会问到的问题进行了很详细的总结,是Java程序员面试必看的经典。
以下为对购买帮助不大的评价