一面主要问题如下:
首先自我介绍数据结构算法的基本问题,如排序算法,二叉树遍历,后序遍历非递归,图的最短路径问题对一个数组进行绝对值排序的算法JAVA中hashmap的底层实现java中垃圾回收机制GC原理等介绍自己的项目,数据库中用到的数据结构数据模型,死锁的概念(问的应该是数据库的死锁),如何避免死锁?乐观锁和悲观锁?一致性hash算法项目中业务对象的关联关系/关联方式,谈谈左外连接及如何实现多对多关系模型spring的IOC和AOPsping如何实现(保证)事务一致性完整性,spring中事务传播机制类型谈谈WEB的架构(应该指的是j2ee开发架构模型)、项目中的用户场景使用场景对分布式架构的了解,如分布式存储 分布式缓存 分布式计算
二面主要问题如下:
首先仍然是先自我介绍有过竞赛经历?奖项?专业排名?平时都看些什么书籍?是否参加了学校社团活动?哪个部门?主要工作?时间安排?对哪些技术最熟悉最擅长?我说的是java WEB框架那些,然后就开始问java了接口和抽象类的区别 实现有哪些不同?序列化如何实现?用代码描述。writeObject? objectWrite?ObjectOutputStream.writeObject(). ObjectInputStream.readObject()IO框架 集合框架的描述。如何判断文件是否存在?如何读取一个目录下面的所有文件和子目录?代码描述。广度优先遍历目录下面的所有子目录和文件?代码实现?List和Map的不同?HashMap的实现?如何解决散列冲突?多线程机制?线程休眠10秒?sleep()与wait()的区别。缓冲流buffer的用途?原理?linux下如何查看CPU负载和IO端口的使用情况?如何创建目录?如何搜索一个指定的字符?考察数据库的sql操作,给定了一个具体的业务表,如何对不同类型的数据进行统计。总体上来看,还是比较注重基础的 尤其是java的多线程和并发安全性及数据库相关,另外对有关开源框架的具体底层实现需要多阅读源码并进行总结。
下面是网上参考到的java面试题目,同样作为借鉴。
一面,主要注重基础,问得很深很广,压力面试。
hashmap、concurrenthashmap底层实现和区别spring框架的原理如何写一个orm框架hibernate一级缓存和二级缓存,hibernate其他缓存hibernate事务传播行为种类springmvc原理restful的好处restful有几种请求,表单如何提交put请求web中安全性问题的考虑,如何防止web系统整体架构hibernate如何实现声明式事务java并发包volatile平常都看哪些书spring底层数据结构如何进行反射,如何提高反射的性能如何实现java的代理,为什么需要实现接口TCP协议三次握手springmvc用过哪些注解springAOP可以使用哪些代理,有什么区别为什么要分三层mybatis与hibernate有什么区别,为什么不用hibernate直接写sql语句?这面没有准备好,广度和深度压力很大,建议大家多看看三大框架源码、原理,并发包。
二是注重于项目
什么是restful web service?并发集合包?项目中使用了哪些数据结构?TCP中断连接四次挥手?MD5加盐https支付宝接口开发知道哪些锁,有什么区别?依旧JDK源码项目遇到什么问题,怎么解决?JDK1.8有什么新特性?
三面聊人生
leader和very nice,给了一些建议,可能是觉得技术差不多,这面基本没怎么问技术,主要是职业发展、IBM的实习内容之类,我想大家可能也都有自己的想法。
最后:
我这边也整理了一份 架构师全套视频教程 和关于java的系统化资料,从Javase- ssm-springcloud,包括java核心知识点、面试专题和20年最新的互联网真题、电子书等都有,想学习Java或者转行,大学生都非常实用,免费分享给大家~有需要的朋友可以私信回复 “ 源码 ” 领取!