坚持更新java综合性知识,自助领取海量java资料
我本身本科阶段和硕士阶段都是自动化专业,和计算机专业有一点相关,但是差别还是挺大的。我学习计算机方面的知识主要是从研究生阶段开始,大约是从研一下学期开始自学。没有参加实习。准备找工作的时间大约是研二下学期结束的时候,也就是16年7月份。
面试的岗位是Java后台开发,面的公司不多,主要有美团点评-网易-网易有道-携程-华为-中兴-科大讯飞-烽火通信这些公司。从前到后简单记录了自己面试时候遇到的问题,以及对面试给了一点点小的建议,给明年甚至以后的师弟师妹们一些参考。欢迎各位朋友一起交流。
2016年8月23日 时间 40分钟左右
Ø 自我介绍
Ø 说说项目
Ø 数据库内外网交换怎么做的,如果交换给你做,你怎么做
Ø 你知不知道一些第三方的组件能够完成数据库的交换
Ø Web service的介绍,是怎么编写的
Ø Linux修改权限的命令是什么,你对Shell编程了解多少,通常用来做什么
Ø 说说你了解的设计模式
Ø 假设一个a类变到b类,那么你用适配器模式怎么完成
Ø 数据库你通常是怎么优化的,使用过什么其他的工具优化没有,怎么用的
Ø 现在有一个很多个表进行关联查询的sql,子表的数据非常的多,那么请问你仅仅从sql的角度去进行sql语句的优化,不需要考虑索引、谓词
Ø 你没有Java项目是吧
Ø 你专业是控制方向,为什么搞现在的方向
Ø 你有什么问题要问问我的
分析:这次被挂的原因主要是我选择电话面试的地点有问题,在楼梯道里面,信号不好,加上回声,通话质量非常低下。建议参加电面的同学找一个通话还不错的地方参加电面比较好。
2016年7月18日 时间 20分钟左右
Ø 自我介绍
Ø 说说自己做过的项目
Ø Java虚拟机运行时内存分配和内存释放
Ø 聊聊常用的设计模式
Ø 存储过程的参数是如何传递的
Ø 存储过程的异常怎么分类的,你所写的存储过程中,是如何使用异常的
Ø 存储过程你通常在在何处编写
Ø 你们数据库使用的是什么字符集,你觉得和其他的字符集相比,有什么区别
Ø Oracle数据库中分别使用什么函数查看字符串的字符数和字节数
Ø 开发中如何解决SQL注入的问题、是否了解其他数据库
Ø Linux中如何查看cpu的使用率
Ø 是否通过英语六级、计算机等级、首选工作地点,为什么,家里几个小孩
2016年10月8日 时间 20分钟左右
Ø 自我介绍
Ø 聊一聊java里面的多态
Ø 说说你的项目里面触发器是如何使用的,触发器有什么优点和缺点,通常有什么作用
Ø 谈一谈数据库里面的视图
Ø 你通常是通过什么样的方式和途径来学习的
Ø 说说英语口语,就简单的用英语介绍一下自己
Ø 目前的应聘进展怎么样,期望的工作地点是哪里
Ø 你奖学金非常的多,那么在你本科或者研究生的阶段,你做过的最失败的一件事是什么
分析:总体上来说中兴面试的难度不大,拿到offer也相对容易,面的好的有机会拿sp。
2016年9月21日 时间 40 分钟左右
Ø 自我介绍
Ø 介绍项目
Ø 数据库的触发器你通常是怎么编写的,有什么作用
Ø 触发器和函数的区别是什么
Ø 数据库除了oracle还了解过什么其他的数据库,各自有什么特点,你觉得阿里巴巴使用的是什么数据库
Ø Dbutils是哪个公司的产品,数据库连接池有哪些,如果让你自己实现一个数据库连接池,你怎么设计
Ø 说一说java里面单例模式通常是怎么实现的,各自有哪些特点
Ø 说说java里面的集合框架,各自是如何使用,有哪些区别和缺点,怎么
Ø 聊一聊java里面的多线程编程,详细说说java里面的并发包,线程池的实现原理是什么样子的
Ø Java反射有没有过学习,java的注解有没有过了解
Ø 讲讲tcp和ip协议有什么区别,如果我们华为这边要和其他公司进行数据通信,请你设计一个通信方案
Ø 有没有什么问题要问我的
2016年9月21日 时间 20 分钟左右
Ø 自我介绍
Ø 你是不是党员,你在学校的成绩怎么样,拿过哪些奖学金,参加过什么比赛
Ø 你的成绩可以保研,你为什么选择考研,你考研的成绩怎么样
Ø 有没有发表什么论文,有没有什么专利
Ø 你毕业课题的方向是什么
Ø 有没有什么要问我的
分析:华为今年非常看重学校,专业,论文,专利,成绩,竞赛,感觉面试只是作为一个参考,没有作为比较高的应聘评价标准。至今本人仍然是录用审核中,估计是备胎了。
2016年9月8日 时间 50 分钟左右
Ø 自我介绍
Ø Java的内存布局以及堆内存是如何管理的
Ø 了不了解GIT和SVN
Ø 有两个链表,如何判断它们是否相交
Ø 有两个单链表(不存在环),不借用任何其他数据结构,怎么遍历一次就判断是否相交
Ø TCP是如何来保证可靠的传输的
Ø 如何你和你的同事同时在开发项目,但是你们的代码冲突了,并且生成了日志信息,那么请问你怎么进行处理
Ø Linux中查看服务的命令
Ø 你这个命令会出现很多服务,那么怎么找到我要搜索的服务名称
Ø 数据库是如何进行优化的
Ø 项目里面有没有使用到缓存
Ø Lucene的实现原理
Ø 倒排索引的介绍
Ø 百度的查询框中,假设你打了一个“中”,那么下面的一串的提示字符,类似“中国/中间”这些是如何出现的
Ø 如何管理这些常用词汇的索引
Ø 与面试官的交流
2016年10月12日 时间 60 分钟左右
Ø 自我介绍
Ø 项目简单介绍
Ø 现在有一个按照升序排序的数据,那么将数组后面的0个或者多个数组移动到数组的前面,那么再给你一个整数,那么请使用最快的方法找到这个x出现的索引(如果出现的话,可能不出现)
Ø 现在有一个字符串流数据,在这里面含有邮箱,已知邮箱的最大的长度为50字节,那么请教字符流中的所有的邮箱提取出来
Ø 现在有一个n*n的方格,里面每个格子都有大于等于0的数值大小,那么现在需要从左上角走到右下角(只能有两个方向可以走),请问怎么走才能使得走过的格子的和最大
Ø 如果要求从左上角走到右下角,经过的格子的值大小置为0,再从右下角走到左上角,怎么样才能使得两次走过的和最大
Ø 如果要求从左上角到右下角,再从右下角走到左上角,再从左上角走到右下角,经过的格子的值大小置为0,怎么样才能使得两次走过的和最大
Ø 在一个平面中有两个矩形,现在知道两个矩形的坐标,那么请判断这两个矩形是否有重叠。
Ø 现在要设计一个类似于word一样的工具,但是要求可以远程的多个人一起对同一个文档进行操作(编辑,删除等),同时要求一个人的修改能够立刻让另一个人看到,并且可以动态的添加人员进入,而且需要保证数据的唯一性、一致性和高效性,不要出现锁住等情况,那么让你设计,请问你如何设计。
Ø 有没有什么问题需要问我的
分析:直到10月26号有道的hr才给我打电话,问我27号是不是可以去杭州参加终面(北京的面试官过去面,一轮技术一轮hr),因为和其他公司签约的原因,我的时间和条件已经不允许了,也就委婉的拒绝了。总体上对有道的印象还是很不错的。
2016年10月20日 时间 50 分钟左右
Ø 自我介绍
Ø 项目介绍
Ø 自己在项目里面主要完成了哪些的工作
Ø 说说项目的数据库的设计
Ø 项目中数据库之间的同步是如何完成的
Ø 项目中的模板消息推送是采用什么机制的
Ø 通过业务将所有的表以及表和表之间的关系复现出来
Ø 既然数据库使用的比较多,那就谈谈数据库的事务,举例说明
Ø 事务的隔离性详细的说说
Ø Jvm运行时内存区域的分配
Ø Java垃圾回收机制
Ø 手写一个算法题,对字符串的处理,分别统计出任意一个字符串中所出现的字符的个数
2016年10月20日 时间 50 分钟左右
Ø 自我介绍
Ø 项目详细介绍
Ø 项目里面的数据库是如何设计的,有哪些表
Ø 数据库在使用的时候是如何进行优化的
Ø 外网和内网的数据交换是什么完成的
Ø 画一下你们这个项目的通信结构图,给我分析分析
Ø 模板消息推送是如何完成的,你们对于没有完成的推送有没有做出什么补偿机制
Ø 为什么考虑这种方式进行推送,有没有其他的方法
Ø 你们有没有考虑过web service本身就挂了的问题
Ø http tcp ip你最擅长哪一个
Ø 画一下tcp三次握手的过程,写出来状态和发送的信息
Ø 写一下tcp主动关闭的一方的几个状态,并且解释一下这些状态
Ø 你们项目中上传图片是采用post的哪种方式
Ø http的常用的状态有哪些,301和302的区别是什么,503是什么意思
Ø 说说lucene的索引的原理,你项目中是如何使用的,你使用的分词方式是什么,有哪些分词方式
Ø 为什么不使用数据库提供的全文索引,它是如何更新索引的
Ø 有没有什么问题要问我的
2016年10月21日 时间 50 分钟左右
Ø 自我介绍
Ø 项目详细介绍
Ø 针对项目的几个小问题
Ø 手写一个算法题:求解一颗二叉树的深度,并分析
Ø 手写一个算法题:求解一个旋转数组中出现的最小的数字,要求效率高,并分析
Ø 你自己在以后想从事什么方向的工作
Ø 有没有什么问题要问我的
2016年10月21日 时间 30 分钟左右
Ø 自我介绍
Ø 平时是如何学习的,通过哪些方式,学到了什么
Ø 你本科硕士并不是计算机专业,为什么想从事互联网方向
Ø 你看过哪些书,详细的说说
Ø 在项目里面你是如何和你的同学进行分工协调,高效工作的
Ø 如果出现了不一致的意见,你们是怎么解决的
Ø 你对我们新美大的产品有过哪些接触,感觉如何
Ø 我们新美大工作地点有北京和上海,你会选择哪一个城市,为什么
Ø 你还有没有收到其他公司的offer,那你会在这些里面如何的选择
Ø 有没有什么问题需要问我的
分析:很幸运通过了美团点评的四场面试,拿到offer,最终也是放弃了其他的机会,和美团点评正式签署三方协议,具体的部门是基础架构中心,做Java后台开发方向。
2016年10月12日 时间 50分钟左右
Ø 自我介绍
Ø 项目简单介绍
Ø 数据库优化的策略通常是什么样子的
Ø 数据库同步你做过哪些方案,各有什么优缺点
Ø 现在有两张表(记不太清楚了),问怎么查询才能保证查询效率最高
Ø Jvm运行时内存区域的分配是什么样子的
Ø 假设出现了内存溢出或者栈溢出的话,怎么去解决这些问题
Ø 内存泄漏通常有哪些可能的原因引起
Ø Jvm中的常用的参数有哪些
Ø Jvm中的垃圾回收机制
Ø Linux你学习的深度是什么样子的,了解过哪些
Ø 面试官打开他的mac敲了一个命令,出现了很多数据,指着里面的一列,问我是什么意思
Ø 后面就是他在和我说岗位通常做一些什么,介绍了他们的那边的环境等等
2016年10月12日 时间 50分钟左右
Ø 自我介绍
Ø 介绍项目
Ø 说说数据库的索引在你项目里面是怎么使用的
Ø 有哪些索引,它们底层是采用什么数据结构去实现的
Ø B树和B+树的区别在哪里
Ø 现场画了一个数据结构(类似于循环队列),然后现场写代码对这个数据结构进行封装和操作,要保证多线程操作没问题,同时还需要考虑到数据结构的空和满等条件下成员变量的变化
Ø 你觉得数据库运维这个岗位日常的工作有哪些,你怎么看待这份工作
Ø 有没有什么问题要问我的
2016年10月12日 时间 40分钟左右
Ø 刚刚面完了前两轮,那你对前两轮面试官的评价是什么样子的
Ø 然后中间就是很多很多很多hr的问题了,有点不记得了,主要围绕的就是如何学习,如何规划,如何与同事友好相处,如何去解决问题,如何与人沟通等等方面,需要用实际例子说明
Ø 你对网易有没有什么了解,有没有什么给你印象非常深的地方
Ø 理想薪资是什么样的
Ø 对以后的规划是什么样子的,家里有没有什么建议或者看法
Ø 有没有其他的offer,那么这些公司假设都给你offer,那么你如何选择
Ø 有没有什么还要问我的
Ø Ps 是一位美女hr
分析:顺利拿到了网易的offer,据说很多进入到hr面的人,大部分都被刷掉了。最后因为岗位部门的原因并没有选择网易。但是从我对网易的各方面的了解来看,我真的挺喜欢这个公司的,给我的感觉非常好。
2016年9月23日 时间 15 分钟左右
Ø 自我介绍
Ø 项目简单介绍
Ø 数据库相关简单的技术问题
Ø Java相关简单的技术问题
Ø 有没有女朋友,家里是哪里的,意向城市是哪里,公司加班比较多能否接受等
Ø 对烽火通信有没有什么了解
Ø 有没有什么要问我的
分析:烽火通信总体上面试还是比较简单的,offer也是比较好拿的。
2016年9月27日 时间 45 分钟左右
Ø 自我介绍
Ø 数据库相关问题
Ø 面向对象的几个性质,举例说说
Ø 多态通常怎么实现
Ø String类可不可以继承
Ø 如何实现一个不可变类
Ø 详细介绍java下面的集合框架、并发包
Ø 讲讲http协议,输入一个网址到浏览器呈现出界面的过程是什么样子的
Ø https和http有什么区别,区别的细节是什么样子的
Ø Linux下创建一个文件用什么命令,修改权限使用什么命令,修改所有者使用什么命令
Ø 说说工厂模式,工程模式和策略设计模式又什么样的区别
Ø 说说servlet中的过滤器的使用
Ø 是否了解spring
Ø 有没有什么要问我的
2016年10月10日 时间 35 分钟左右
Ø 自我介绍
Ø 项目简单介绍
Ø 触发器你在你的项目里面是怎么使用的,函数和存储过程有什么区别
Ø 在你的开发中,你觉得触发器的优缺点分别是什么
Ø 在你的项目中,有没用什么难点,最后又是怎么解决的
Ø 你通常是采取什么方式进行学习的,你觉得学习一门语言或者技术该如何下手,关键在什么地方
Ø 现在有10亿条数据的一张表,请你设计一种方案快速的将这些表中的数据搬迁到另一个数据库中
Ø 你和你的朋友在同一个部门上班,做同样的事情,结果他被加薪升职了,请问你如何做
Ø 你目前手里还有没有其他企业的offer,方便说说吗
Ø 有没有什么要问我的
分析:携程一面还是很基础的,二面应该是一个领导面的,更加注重实践和开放性问题。投递简历被分到了酒店部门了,所以需要三轮技术面,但是由于当天面试官需要赶回去,也就没有面了。
Ø Java基础知识:多线程,并发编程,JDK源码,JVM,框架,设计模式等,推荐《深入理解Java虚拟机》,《Java并发编程艺术》等。
Ø 数据结构与算法:排序,查找,各种常用数据结构,动态规划等,推荐《剑指offer》,《编程之美》等。
Ø 数据库:数据库表设计,事务,锁,SQL编写,存储过程,触发器等,推荐看MySql,其他例如Oracle之类的也没问题。
Ø 计算机网络:TCP协议,IP协议,HTTP协议等,推荐《计算机网络》,《UNIX网络编程》等。
Ø Linux操作系统:操作基础知识,常用命令等,有精力的可以看看shell脚本编程。
Ø 项目:需要对项目中的技术知识点搞清楚。
Ø 交流能力:不管什么时候,与人的交流能力都是比较重要的,面试时候也是一样。
Ø 推荐网站:《牛客网》等