首页 > 图书中心 > Java程序员成功面试秘籍

前言

前    言

    有人会认为面试很难对付,因为面试是一个一对一的考察技术能力的过程。

这本书是准备找工作的Java面试者的必备指南。本书提供了足够多的练习材料,让你有足够的信心面对可能会被问到的问题,因此可以帮助你克服Java编程面试过程中的恐惧和担忧。

本书介绍的技术

本书是基于Java SE 7编写的。如果你是一位有经验的Java开发者,但是还没有跟上Java 7的步伐,那么可以在本书中学习以下新的语言特性和API库。

钻石操作符

编译器会尽可能地推导出泛型实例的类型。因此,我们可以编写List<Integer> numbers = new ArrayList<>()这样的语句,而不用编写List<Integer> numbers = new ArrayList<Integer>()这样的语句。这样在使用集合时,特别是在集合嵌套集合时,可以大大减少样板化代码的量。

在switch语句中使用String

最初的Java switch语句只能处理数值类型。随着Java 5引入了枚举类型,在switch语句中还可以使用枚举类型。现在从Java 7开始,在switch语句中可以使用String对象。

新的文件I/O库

Java 7引入了一个新的I/O库,关注的是平台无关的非阻塞I/O。

此外,Java 7还引入了很多新特性,例如自动资源管理和二进制字面量的表示形式。本书全书使用Java 7。可以认为,面试官会使用最新的Java技术来进行考察,因此随着语言的新版本的发布,你也应该让自己的技能跟上时代的步伐。

有一些Java框架和库还没有完全兼容Java 7,因此在使用具体组件时请查阅最新的文档。

本书的组织结构

全书分为以下3个独立的部分。

第Ⅰ部分:面试流程概述

关于面试流程的章节包含两方面的内容:一方面是如何向面试官表现自己,另一方面是一些和Java无关但是可能会出现在技术面试中的一般性技术话题。

第1章:面试类型分析

该章介绍了雇主的招聘流程中的各个步骤,从电话面试到面对面的技术测试,再到和招聘经理的面谈。

第2章:撰写引人入胜的简历

简历及其附信是下一任雇主对你产生的第一印象。该章讨论了如何让你的简历脱颖而出,给出了语言相关的一些小建议和招聘者会关注的一些问题。

第3章:技术测试和面试基础知识

任何潜在的雇主都会考察你的技术能力,而且会采用尽可能高效的方式。该章讨论了各种不同类型的编程测试和技术测试,并讨论了如何准备这些类型的测试。

第4章:编写核心算法

计算机科学的核心概念是技术测试中经常会考察的内容,其中包含排序和搜索。该章给出了一些不同的搜索和排序算法,并讨论了每一种方法的优劣。

第5章:数据结构

在面试中,计算机科学核心概念的相关问题除了排序和搜索之外,常见的主题就是数据的高效存储和表达。第5章讨论了列表、树、映射和集合等数据结构,讨论了这些数据结构的表达和使用。

第6章:设计模式

该章涵盖了一些面向对象的设计模式,还展示了Java库中的类使用的一些模式。

第7章:常见面试算法的实现

该章给出了一些常见的面试题,并用Java实现了这些题目的解答。本章很多题目都来自于一个很流行的技术面试网站interviewzen.com。

第Ⅱ部分:核心Java

这一部分章节的内容是面试官认为有经验的Java开发候选人应该了解的内容。

第8章:Java基础

该章覆盖了Java的很多语言特性,有经验的Java开发者可以利用该章复习基础知识。

第9章:基于JUnit的测试

本书使用的一个核心思想是单元测试。该章介绍了JUnit,并讲解了如何通过JUnit验证假设和断言。

第10章:理解Java虚拟机

任何有能力的开发者都会对自己使用的平台有一定的理解,Java也不例外。该章介绍了JVM的一些特性,以及JVM和Java语言之间的交互。

第11章:并发

该章讨论了Java的线程模型及使用方法。该章还介绍了actor模型,它是并发编程采用的一种新方法。

第Ⅲ部分:组件和框架

这一部分讨论了一些使用Java的领域,从数据库到Web服务,从流行的框架(例如,Hibernate和Spring)到构建和发布企业级应用的工具。在面试某个具体职位时,面试官可能希望你具有这些章节所介绍的一些相关知识,而这些知识通常都会在工作描述中列出,也许你一开始就是因为看到了工作描述才去应聘这份工作。

第12章:Java应用程序和数据库的整合

很多大型Java应用程序都会包含数据库组件。该章介绍了数据库操作的标准语言SQL以及如何在Java中使用SQL。

第13章:创建Web应用程序

Java是创建通过HTTP提供数据服务的应用程序的一种常用语言。该章讨论了3个流行的框架:Tomcat、Jetty和Play。

第14章:HTTP和REST

该章讨论了HTTP的另一种用途:通过REST (Representational State Transfer)风格创建和使用Web服务。

第15章:序列化

序列化是传输结构化数据所采用的方法。该章涵盖了3种方法:Java自己的序列化机制以及分别使用XML和JSON的平台无关的方法。

第16章:Spring框架

Spring框架是一个比较流行的应用框架,很多雇主在自己的一些甚至全部应用中都使用了这个框架。该章讨论了Spring框架的一些组件,包括核心应用上下文、数据库集成以及集成测试。

第17章:使用Hibernate

Hibernate是一个将关系数据库数据映射到Java对象的框架。该章介绍了Hibernate,以及如何通过Hibernate创建和操作对象。

第18章:有用的库

Java有很多有用且可重用的库。该章介绍了3个比较流行的库:Apache Commons、Guava和Joda Time。

第19章:利用构建工具进行开发

任何大型的Java应用程序,特别是涉及多位开发者的应用程序,其构建和打包过程都需要管理良好的流程。该章介绍了构建Java应用程序使用的两个最流行的工具:Maven和Ant。

第20章:Android开发

最后这一章介绍了Java语言的一种现代应用:在Android上开发移动应用程序。该章介绍了Android SDK的关键组件及其整合方式。

附录A:Scala简介

该附录介绍了Scala语言,这是一种在Java开发团队中越来越流行的语言,因为这种语言使用JVM作为平台。该附录介绍了Scala语言的一些基本知识、函数式编程的概念以及一些和不可变性相关的约定。

本书读者对象

本书面向的是有一些经验的Java开发者:这样的读者应该了解这门语言,而且使用过一段时间,但是对书中有些章节的内容不熟悉甚至完全不了解。如果你从来没有使用过Java,这本书也会有帮助,特别是第Ⅱ部分中的几章。你应该按顺序阅读这些内容,同时可以参考其他更深入的介绍性材料。

如果你处于面试官的位置,那么这本书也很有用,你可以通过本书找到一些在面试中问问题的灵感。

本书利用的工具

从http://www.oracle.com/technetwork/java/javase/downloads/index.html可以下载最新的Java JDK。大部分专业开发者会在集成开发环境(Integrated Development Environment,IDE)中编写Java代码。IntelliJ(免费社区版可以从http://www.jetbrains.com/idea/download/index. html下载)和Eclipse(可以从http://www.eclipse.org/downloads/下载)是两个最流行的IDE。有些面试官在面试过程中可能要求你使用计算机和IDE编写代码,因此你也应该熟悉这些IDE的基本操作。

下载示例源代码

本书中所有的示例源代码都可以从www.wiley.com/go/javaprogramminginterviews下载。下载、编辑和编译这些源代码对你非常有帮助,对于那些你不太熟悉的内容更是如此。另外,http://www.wrox.com和http://www.tupwk.com.cn/downpage也提供了源代码下载和技术支持。

小结

本书并不是获得Java开发者工作的捷径,而是帮助你找到下一份工作的指南。通过本书可以了解面试官在招聘过程中经常会提到的一些话题。

经验对于面试非常有帮助,不仅对于面试的内容本身有帮助,而且也有助于减轻面试本身的陌生感和压迫感。你必须不断地练习面试的技巧,随着参与开发的时间越来越多,你的技能也会不断提高。在面试过程中获得经验会比较困难。每一个面试官都会采用不同的面试方式,整个过程也不会完美。潜在的雇主除了考虑“这位候选人是否足够好”之外还要考虑很多变数,在通盘考虑之后才可能给出录用意向。预算的约束,团队的融合,甚至面试官本身的心情都会对面试造成影响。

如果被拒了,也不要太沮丧,尝试从中吸取一些经验,想一想在以后的面试中会碰到什么问题。

还要记住,面试是一个双向的过程:在面试时要询问关于职位的细节,还要了解未来的同事以及在办公室中的生活情况。如果感觉不对的话,不要害怕拒绝。

祝你在准备面试的过程中好运,也希望你能享受这个过程。祝愿本书能帮你找到理想的工作。

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘