内推的蚂蚁金服Java研发岗,从7月15日第一面到7月31的hr面,共计4轮技术面,一轮hr。于8月15日收到录用意向。
7.15,20:45,一面:大概聊了24分钟
自我介绍
问数据库3NF与BCNF的区别
问GC机制,如何使持久代溢出
问数据库事务的四个特性
讲Java并发,自己的理解,随便讲
在平时是如何使用Java异常的
网络商城中各个模块怎么划分的,spring中有哪些bean
说说spring的IOC
用过spring的线程池么
7.20,18:52,二面:大概聊了45分钟(感觉面试官手里有个问题本,照着问题在问)
自我介绍
Java中多线程有几种实现方式
继承thread与实现runable接口两种方式的比较
GC算法以及垃圾收集器
详述CMS收集器
单例模式注意的点,当单例模式实现了serizable接口之后,反序列化之后,还是同一个对象么?
MySQL的默认引擎:innodb与myisam的区别(事务非事务,行级锁表锁,聚簇索引非聚簇索引)
数据库事务的隔离级别
spring的IOC与AOP的实现原理(答得反射和动态代理)
一个实际问题,一个业务在处理之前,先要对用户的各种数据进行验证,余额、是否已实名验证等等,需要对各个验证都通过之后才能进行这笔业务。然而各个验证是来自于不同的模块的,怎么提高响应性?
说了各个验证是独立不相关的,故而可通过多开几个线程,每个线程去执行一个验证。那么就得等所有线程都执行完毕并返回通过验证的结果才能执行业务,怎么等所有线程都执行完并返回通过的结果之后再开始执行业务?
(他提示了用java并发包中的两个工具,没听清,也没听过,后来复习Java并发实战时看到闭锁,觉得与问题描述比较像)
职业规划
有什么要问他的么
7.24,17:26,三面:大概聊了29分钟
主要就是问简历中的两个项目:
现实重点讲网络商城那个,先是从java web项目的运行流程,各个层来讲,然后从功能模块的角度来讲
然后是讲了很多图像拼接算法相关,及Android端实现
问:你学了很多拼接算法相关,做Java服务端有没有觉得对图像处理算法的学习就浪费了
设计模式有看过么,代理模式的应用场景
问了下意向工作城市
有没有问题问他
7.29,13:29,四面:大概聊了42分钟
问C++内存管理与Java内存管理
既然有GC为何会出现outofmemory
问数据库事务性
问快速排序的原理,快排有什么改进的地方么
问hashmap的实现,put方法的执行过程
两个对象的hash码可能相同么
问为什么没出去实习
项目代码量最多的一个项目有多少行
问觉得自己与其他应聘者相比的优点
问自己觉得自己的缺点
问有没有过一段很艰难的时光
7.31,10:07,HR面:聊了1小时零8分钟
HR哥哥很能聊,且态度很好
没有技术问题,都是一些职业规划什么的
对于之前四轮面试的体会
各种聊天之类的问题