987 页的 Java 面试宝典,看完才发现,应届生求职也没那么难
前言
现在已经 8 月初,金九银十也已经快到了,很明显今年的面试季明显不如往年火热,对于求职者来说,也更难了一些。马上迎来国庆节,假期一过,十月份又过去了三分之一,综合来看今年确实不是面试的最佳时期,不过趁今年所剩的时间来好好准备,明年的金三银四或许会顺利得多。不过,对于今年的应届生来说,等到明年再去面试,竞争就更大了。
不过,好在我们总能够找到一些好资源进行分享,今天分享的这份资料是 987 页的 Java 面试宝典,完整地看完之后,或许你就会觉得,应届生求职其实也没有那么难了。
本篇文章以下内容主要分享这本 Java 面试宝典所记载的重要内容,该宝典主要分为两大方面:
①面试经验技巧篇
面试官箴言
面试心得交流
企业面试笔试攻略
②面试技术攻克篇
Java 基础知识
Java Web
数据库原理
设计模式
数据结构与算法
海量数据处理
SSM 企业级应用(Spring+SpringMVC+Mybatis)
SpringBoot+SpringCloud
需要完整版 Java 面试宝典的朋友,只需要添加微信:mxh5261 即可。
一、面试经验技巧篇
1.面试官箴言
无论什么行业,实际上在面试之前,我们都会去思考一个问题,究竟什么样的求职者才会获得面试官的青睐?作为求职者,在面试前需要做什么准备,才能应对形形色色的面试官呢?现在竞争如此激烈,如何在一众应聘者中脱颖而出?“面试官箴言”这一部分,主要邀请了几位资深大佬,现身说法,或许能够给你的面试带来一些启发。
2.面试心得交流
“前车之鉴,后事之师”,这也就是为什么很多程序员在面试之前,都会去一些网站刷面经,实际上也是想要从这一些面经中了解到一些实际情况,以提前做好准备。而这一部分的内容,主要是选取整理了各大名校、研究生的毕业生的亲身求职经历与体会作为蓝本。该部分内容,对现在的程序员的面试、笔试相关准备工作、时间计划、书籍阅读、面试技巧以及 offer 的选择等多个方面内容进行了督导的分析,对于现在的应届生将来迈入职场,有着很好的指导作用。
3.企业面试笔试攻略
随着互联网的高速发展,现在的互联网企业也越来越多,对于应届生来说,找工作还是很缺乏经验的,所以面对无数的 IT 企业,不知道该“广撒网”好还是集中自己的经历突破某一个或是某几个。
实际上,不仅仅是应届生,这对于工作几年的人来说,同样也有这样疑惑。所以这一部分,把主流 IT 企业作为了剖析对象,对象包括互联网企业、网络设备提供商、外企、国企、研究所、创业型企业。对这些企业的面试笔试一一进行了剖析,通过这部分的内容,我们可以算是清晰详细地了解的这些企业的差别,至于如何选择,就需要我们自己参考这其中的差别,自己做出更合适的决定。
二、面试技术攻克篇
对于应届生来说,面试是没有什么经验的,这部分的经历是比较匮乏的,不清楚这些公司面试时会问到什么,因此这一部分将现在的 IT 类公司针对应届生所会问到的面试题全部归类整理好了,当然主要还是以互联网公司为主。
1.Java 基础知识
Java 语言有哪些优点?
Java 与 C/C++有什么异同?
为什么需要 public static void main(String[ ]args)这个方法?
如何实现在 main()方法执行前输出“Hello World”
Java 程序初始化的顺序是怎么样的?
Java 中的作用域有哪些?
一个 Java 文件中是否可以定义多个类?
什么是构造函数?
为什么 Java 中有些接口没有任何方法?
Java 中的 clone 方法有什么作用?
什么是反射机制?
package 有什么作用?
如何实现类似于 C 语言中函数指针的功能?
面向对象技术
面向对象与面向过程有什么区别?
面向对象有哪些特征?
面向对象的开发方式有什么优点
什么是继承?
组合和继承有什么区别?
多态的实现机制是什么?
重载和覆盖有什么区别?
......
多线程
什么是线程?它与进程有什么区别?为什么要使用多线程?
同步和异步有什么区别?
如何实现 Java 多线程?
run()方法与 start()方法有什么区别?
多线程同步的实现方法有哪些?
sleep()方法与 wait()方法有什么区别?
终止线程的方法有哪些?
synchronized 与 Lock 有什么异同?
什么是守护线程?
join()方法的作用是什么?
Java 数据库操作
如何通过 JDBC 访问数据库?
JDBC 处理事务采用什么方法?
Class.forName 的作用是什么?
Statement、PrepareStatement 和 CallableStatement 有什么区别?
getString()方法与 getObject()方法有什么区别?
使用 JDBC 时需要注意哪些问题?
什么是 JDO?
JDBC 与 Hibernate 有什么区别?
2.Java Web
页面请求的工作流程是怎样的?
Http 中 Get 与 Post 方法有什么区别?
什么是 Servlet?
doPost()方法与 doGet()方法怎么选择?
什么是 Servlet 的生命周期?
JSP 有哪些特点?
JSP 与 Servlet 有何异同?
如何使用 JSP 与 Servlet 实现 MVC 模型?
Servlet 中 forward 和 redirect 有什么区别?
JSP 的内置对象有哪些?
request 对象主要有哪些方法?
JSP 有哪些动作?
JSP 中 include 指令和 include 动作有什么区别?
会话跟踪技术有哪些?
Web 开发中如何制定字符串的编码?
什么是 Ajax
cookie 和 session 有什么区别?
......
什么是 IOC?
什么是 AOP?
什么是 Spring 框架?
什么是 Hibernate?
什么是 Hibernate 的二级缓存?
Hibernate 中 session 的 update()和 saveOrUpdate()、load()和 get()有什么区别?
Hibernate 有哪些主键生成策略?
如何实现分页机制?
什么是 SSH?
3.数据库原理
SQL 语言的功能有哪些?
内连接与外连接有什么区别?
什么是事务?
什么是存储过程?它与函数有什么区别与联系?
各种范式有什么区别?
什么是触发器?
什么是游标?
如果数据库日志满了,会出现什么情况?
union 和 union all 有什么区别?
什么是视图?
4.设计模式
什么是单例模式?
什么是工厂模式?
什么是适配器模式?
什么是观察者模式?
5.数据结构与算法
如何实现单链表的增删操作?
如何从链表中删除重复数据?
如何找出单链表中的倒数第 k 个元素?
如何实现链表的反转?
如何从尾到头输出单链表?
如何寻找单链表的中间结点?
如何检测一个链表是否有环?
如何在不知道头指针的情况下删除指定结点?
如何判断两个链表是否相交?
栈与队列?
栈与队列有哪些区别?
如何实现栈?
......
如何实现字符串的反转?
如何判断两个字符串是否由相同的字符组成?
如何删除字符串中重复的字符?
如何统一一行字符中有多少个单词?
如何按要求打印数组的排列情况?
如何输出字符串的所有组合?
二叉树的基本概念
如何实现二叉排序树
如何层序遍历二叉树?
已知先序遍历和中序遍历,如何求后序遍历?
如何求二叉树中结点的最大距离?
如何消除嵌套的括号?
如何不使用比较运算就可以求出两个数的最大值与最小值。
6.海量数据处理
问题分析
基本方法
经典案例分析
top K 问题
重复问题
排序问题
7.SSM 企业级应用(Spring+SpringMVC+Mybatis)
Spring 和 Struts 的区别?
什么是 aop,aop 的作用是什么?
aop 中的关键名词有些哪些,相互关系是什么?
依赖注入的方式有几种,各是什么?
spring 中的核心类有哪些,各有什么作用?
ApplicationContext 的作用
如何实现资源管理?
如何实现加入 web 框架中?
如何实现事件处理?
spring 的 ioc 及 di 代表什么意思?
如何在 spring 中实现国际化?
spring 的配置的主要标签是什么?有什么作用?
spring 与 ejb2.0 的事务管理比较的优缺点?
spring 的 jdbc 与传统的 jdbc 有什么区别?其核心类有哪些?
在 spring 中有几种事务管理?分别是什么?
在 Spring 中如何配代码的事务管理?
在 spring 中如何配置容器的事务管理,相关的类有哪些?
如果 spring 与 hibernate 结合在一起可以不需要 hibernate.cfg.xml 文件是否正确?
spring+hibernate 的配置文件中的主要类有哪些?如何配置?
Spring+hibernate 的代码实现中,对于实现类一定继承于一个类是哪一个,它有什么作用?
如何配置 spring+struts?
如何在 web 环境中配置 applicationContext.xml 文件?
jsf 和 Spring 的区别?
8.SpringBoot+SpringCloud
什么是 Spring Boot?
Spring Boot 有哪些优点?
什么是 JavaConfig?
如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
Spring Boot 中的监视器是什么?
如何在 Spring Boot 中禁用 Actuator 端点安全性?
如何在自定义端口上运行 Spring Boot 应用程序?
什么是 YAML?
如何实现 Spring Boot 应用程序的安全性?
如何集成 Spring Boot 和 ActiveMQ?
如何使用 Spring Boot 实现分页和排序?
什么是 Swagger?你用 Spring Boot 实现了它吗?
什么是 Spring Profiles?
什么是 Spring Batch?
什么是 FreeMarker 模板?
如何使用 Spring Boot 实现异常处理?
您使用了哪些 starter maven 依赖项?
什么是 CSRF 攻击?
什么是 AOP?
什么是 Apache Kafka?
我们如何监视所有 Spring Boot 微服务?
......
使用 Spring Cloud 有什么优势?
服务注册和发现是什么意思?Spring Cloud 如何实现?
负载平衡的意义什么?
什么是 Hystrix?它如何实现容错?
什么是 Hystrix 断路器?我们需要它吗?
什么是 Netflix Feign?它的优点是什么?
总结
对于程序员来说,学历要求已经相当宽松了,所以对于程序员来说,起跑线都是一样的,没有什么拿不下的 offer,只有不够硬气的能力。
不管怎么样,早做准备对自己的面试肯定是有帮助的,以上这份 Java 面试宝典或许可以在金九银十里助你一臂之力。
如果你需要这本完整的 Java 面试宝典,只需要动动手指:添加微信:mxh5261
版权声明: 本文为 InfoQ 作者【Java~~~】的原创文章。
原文链接:【http://xie.infoq.cn/article/916b068f28ff135098e473bc1】。未经作者许可,禁止转载。
评论