前言
面试像一个登山的过程, 要一步一个脚印, 不能因为某些失败, 就半途而废, 行百里者半九十, 念念不忘, 必有回响, 只要一路坚持下来, 就会有所收获. 据身边所见, 大部分一直坚持面试下去的, 最后都拿到了满意的 offer.
面试步骤: 一般是笔试, 笔试这个环节是很容易, 几张试卷, 一共也就十几道题. 一般由 5 至 10 个选择题 + 2 至 5 个论述题 + 1 至 2 个编程题组成.
平静心态 -- 浏览所有题目 -- 开答
答题的时候, 要先把自己会的快速的答上来, 选择题自然不多说了, 论述题根据自己的理解大致说明一下, 多少会给你自己加分的.
编程题其实也不难, 出现几率最大的是写一个关于某某设计模式的例子, 而设计模式的编码例子, 出现最多的是单例模式, 工厂模式和代理模式.
有时候也会有一些算法的编码, 一般是排序算法的编码实现.
还有的笔试题, 会有一些程序题, 就是看程序, 然后自己写出运行结果, 这样的问题考察的是对 java 基础知识的掌握, 所以, 有坚固的基础是很重要滴!
面试
技术性的问题:
Struts1 原理和 Struts2 原理以及区别和联系, 在什么项目中用过, 有什么体会
spring 的原理 aop 和 IoC 机制, 如何使用, 在哪个项目用到过? 有什么体会
简要说明一下 StrutsMVC 和 SpringMVC
servlet 的原理, 生命周期
socket 原理以及使用方式
Linux 常用命令, shell 编程介绍
java 常用算法
多线程, 线程池, 线程锁等等
二叉树, java 数据结构
数据库 MySQL,Oracle 的优缺点以及使用方法和 sql 语句, 问的多的是如果模拟分页查询和多表查询
Java 垃圾回收机制
敏捷开发的简要说明, 是否了解
OOA/OOD/OOP 的含义
java 加密与解密
java 网络通信, http 协议要素
是否熟悉设计模式? 简要说一下自己所了解或者使用过的开发模式有哪些, 在哪些场景中使用
项目经验的问题:
简要说一下你自己做过的自认为很不错的项目
你在项目中的职责, 是否能够胜任之前的任务安排
在项目中遇到的问题, 你是怎么解决的(一般这样的问题, 可以说是自己解决, 但是要讲明解决过程, 一定要突出解决思路的灵活. 也可以回答与同事讨论解决, 这样可以让面试官觉察到自己善于利用团队资源, 会给自己的团队意识加分)
如果没有实际项目经验, 可以聊些在校的事迹.
个人对团队的看法以及个人的职业规划:
你怎么看待个人与团队, 个人能力与团队协作的联系.
在团队合作中, 最重要的是什么?
如果团队成员对于某个问题出现意见分歧, 应该如何解决?
当对于上级有不满的时候, 应该怎么解决?
团队的发展如何与个人的规划出现分歧, 如何应对?
如何快速融入新的团队, 结交新的同事?
个人的职业规划和职业目标, 例如近两年的目标, 近五年的规划.
如何看待企业文化, 如何理解.
附上完整面经 + 总结
阿里内推
一面(电话)
听说你有博客, 博客里大概有什么内容?
项目介绍, 最复杂的表
Hashmap 的原理
Hashmap 为什么大小是 2 的幂次
介绍一下红黑树
Arraylist 的原理
Arraylist 的扩容机制
为什么 arraylist 扩容是 1.5 倍
场景题: 设计判断论文抄袭的系统
堆排序的原理
抽象工厂和工厂方法模式的区别
工厂模式的思想
object 类你知道的方法
哪里用到了工厂模式
Forward 和 redirect 的区别
二面(视频)
自我介绍
项目介绍
项目架构
项目难点
Synchronize 关键字为什么 jdk1.5 后效率提高了
线程池的使用时的注意事项
Spring 中 autowire 和 resourse 关键字的区别
Hashmap 的原理
Hashmap 的大小为什么指定为 2 的幂次
讲一下线程状态转移图
消息队列了解么
分布式了解么
总结
阿里作为最想去的公司 (毕竟是国内 JAVA 第一大厂) 面试开始比较早, 最后挂在二面.
一面面试官很好, 体验不错. 最后给的建议: 希望多去深入理解背后的原理, 而不是仅仅停留在知道了解的层面. 总体一面还是感觉不错.
二面表现很不好的一次面试. 答的很乱.
面试看到的不足, 第一, 就是基础很不扎实, 很多常问的面试题都不知道, 第二, 要深入去理解背后的原理, 比如数据库的隔离级别具体的实现等等, 第三, 深入琢磨做的项目, 用一些高大上的技术去装饰.
最后在总结一下
回头看面试过程, 会发现面试就像在登山, 你一定是往上爬的, 只是爬得快慢之分, 越面到后面, 面试的越多, 你的能力技巧经验都是越来越好! 这是很多方面的因素造成的.
Offer = 0.3 心态 + 0.5 实力 + 0.2 运气, 缺一不可
越早开始准备越好, 准备的越充分越好
切忌眼高手低. 前期尽量多利用小公司的面试机会来锻炼自己, 积累经验.
在面试的过程中找准自己的定位, 并且适当的根据面试情况及时调整自己的定位和目标, 保持信心, 但不能盲目自信. 不管是大公司还是小公司, 尽早拿到第一个 offer.
心态要及时调整好!
不管面试失败还是成功, 都一定要及时总结!
[文章福利] 小编耗时数周, 为大家准备了 Java 校招资料 QQ 群: 967051845(群内提供的 Java 技术 + 面试题目等 500 + 资料集合, 将是你不错的学习库.)
来源: http://www.jianshu.com/p/ffbb46c523c3