Java程序员面试秘笈
上QQ阅读APP看书,第一时间看更新

前言

本书的思路

截至2013年8月,Java上升为最流行的开发语言,下面的图是TIOBE发布的编程语言排行榜。所有人都看到了Java排序的上升,越来越多的企业开始使用Java开发项目。这就增加了Java程序员的就业机会。本书就是要帮助Java程序员顺利找到工作。如果你刚毕业,或者你是一只Java小小鸟,那本书就是你的不二选择,它能提升你找到工作的机会。

本书的特色

1.内容精炼

本书不是一本讲述Java基础知识的入门书籍,而是对面试中或者是实际软件开发中经常遇到的问题进行总结和归纳,涉及的知识点多而且广泛,对读者更好地理解Java开发有极大的帮助。

2.技术点讲解透彻

本书虽然是面试书,但对基础点的介绍详尽实用,可以做到举一反三,在讲解面试题时,还有很多的拓展知识点,帮助Java面试人员全方位应对知识点的考核。

3.针对市场热点

Java是目前软件开发技术关注度最高的语言,Java程序员的需求量也越来越大。而目前市面上关于Java面试方面的书籍内容都比较偏。本书从软件公司技术需求角度来组织内容,只要读者阅读本书,就可以快速适应Java软件开发工作,不需要进入公司后再进行大量的培训和学习。

4.重实践,实用性强

本书针对常见的面试题,都给出了案例来辅佐解析,对一些概念题,也用了一些生活化的例子帮助读者加强记忆。

本书内容

本书内容突出了在Java面试中,或者是Java项目开发中,必须掌握的技能和容易忽略的内容,对Java面试者来说,可以快速掌握面试过程中考察的知识点,减少面试准备时间,提高面试成功率。本书共分为16章280余面试题。

第1章Java编程基础

本章介绍了Java的安装与调试、Java开发中的基本术语和基本概念、类、Java的调试和运行,以及常用的Java开发工具。本章通过真实的试题,从多个角度讲解Java编程基础部分的考点,使求职者能够快速领会用人单位的需求,提高自己在应聘中成功的几率。

第2章Java语言基础

本章介绍了Java的基本语言元素、原始数据类型、变量声明、变量初始化、Java源文件结构和main()方法。在用人单位的面试中,Java语言基础知识是考察的重点之一,也是一个合格Java程序员必须掌握的知识。

第3章 运算符和类型转换

本章介绍了运算符/和%、++i、i++、--i和i--的不同、instanceof运算符、位逻辑和移位运算符、三目运算符、运算符的优先级。Java运算符起源于C和C++,但是它有自己独特的运算方式和行为,并增加了独有的运算符。这一点求职者必须充分重视。

第4章 声明和访问控制

本章介绍了一维数组和多维数组、获得数组长度、数组索引、数组元素的初始化、Java类和方法的声明、Java修饰符、Java的构造器机制等。在Java语言中,声明和访问控制是基础内容之一,也是Java程序员面试当中必考的一部分。

第5章 流程控制、异常处理和断言

本章介绍了流程控制语句、break和continue、try/catch/finally、断言。流程控制和异常处理是高级语言所必须具备的基础部分,也是Java程序员必须掌握的知识。在Java面试中,流程控制和异常处理都是考察的重点之一。

第6章 深入理解面向对象的精髓

本章介绍了面向对象的特征、面向对象设计的原则、Java类的继承、方法重载和方法覆盖、构造函数。求职者如何理解OOP设计思想、继承及接口等是面试中常见的考查内容。

第7章 对象生存期

本章介绍了Java的对象回收、JVM的垃圾回收、finalize()方法、3种初始器和Java对象初始化的执行顺序。Java的堆是一个运行时数据区,类的实例对象从中分配空间。Java虚拟机的堆中存储着正在运行的应用程序所建立的所有对象。这些原理性的知识,都是面试中考察的关键。不懂JVM,不懂垃圾回收,就意味着你还不懂Java。

第8章 线程

本章介绍了Java的多线程机制、线程和进程、线程的状态、创建线程、线程的同步等知识。一般来说,把正在计算机中执行的程序叫作“进程”(Process),而不将其称为程序(Program)。所谓“线程”(Thread),是“进程”中某个单一顺序的控制流。线程也是Java中相当重要的组成部分之一。

第9章 面向对象的基础类

本章介绍了lang包、Math类和Object类、String类和StringBuffer类、util包、Java集合、常见的IO类、文件输入输出等技术。本章介绍的都是常见的Java基础类,这些类是Java软件开发的基础,也是在项目开发中经常使用的。

第10章Servlet/JSP基础

本章介绍了Servlet技术的处理机制、Servlet技术和CGI技术的区别、Servlet的生命周期、Servlet中的重定向方法、JSP技术的处理机制、JSP内置对象的使用、JSP的基本动作指令、JSP的页面跳转、JSP EL表达式语言、JSP的自定义标签等技术。Servlet/JSP技术是Java Web开发的基础,目前国内的大部分Java开发都是基于Web的,所以,Servlet/JSP也是Java程序员面试中必考的内容。

第11章Java EE相关概念

本章介绍了Java EE的相关概念、SOA和Web Service的相关概念,还包括一些相关的技术名词,如JAXP、JAXM等。Java EE技术是Java高级程序员开发工作的基础,所以了解这些概念非常重要。

第12章 数据库技术

本章介绍了JDBC的工作机制、JDBC的使用、基本的数据库知识和常见的数据库(Oracle和SQL Server)。数据库是Java项目开发不可或缺的工具。求职者需要掌握基本的JDBC、数据库技术和常用的数据库基本操作。

第13章 常见的开源技术

本章介绍了一些开源框架和流行技术,如Struts 2、Spring、Hibernate、Ajax、JSF、FreeMarker模板、Log4j等。使用开源技术的好处就在于安全、免费、自由、功能强大,而且更有前途。

第14章 软件工程和UML

本章讲解了软件工程的基本原则、生命周期、建模、UML语言、UML的5 类图和用例的相关知识。对于高级软件开发者来说,必须熟悉软件工程和UML,这也是在面试中经常涉及到的。

第15章 上机编程面试题

在程序员面试中,经常会出现上机编程面试题,要求求职者能够根据题目的要求,使用一种编程工具,编写全部代码并调试运行。这主要是考察求职者代码书写和编程的熟练程度,本章提供的都是需要上机练习的代码面试题。

第16章 考察算法和逻辑思维的面试题

很多面试中会出现智力测试方面的内容,在考察求职者技术的同时,也考察求职者分析、解决问题和临场反应等方面的能力。这类题有的只需要伪代码,有的不需要编码,只需要给出解决方案。本章就介绍了常见的思维能力考试题,并辅助以代码,让读者能真正地了解出题方向和解决思路。

本书读者群

• 刚毕业想从事Java程序开发的入门程序员;

• 工作1年后想跳槽的初级程序员;

• Java面霸们;

• 从其他开发语言转到Java语言开发的普通程序员;

• 毕业于专业培训机构的Java学员。

本书由陈浩、许少红编写,其中陈浩编写了第1~7章,许少红(寿光市人民医院信息网络中心)编写了第8~16 章,由于时间匆忙,编写中难免有所疏漏和不妥之处,尽请不吝指正。

作者