阿里、京东、美团、百度 Java程序员从面试题

/ Java / 没有评论 / 2338浏览

阿里巴巴面试 (55分钟)

  1. 开发中Java用了比较多的数据结构有哪些?
  2. 谈谈你对HashMap的理解,底层原理的基本实现,HashMap怎么解决碰撞问题的? 这些数据结构中是线程安全的吗?假如你回答HashMap是线程安全的,接着问你有没有线程安全的map,接下来问了conurren包。
  3. 对JVM熟不熟悉?简单说说类加载过程,里面执行的哪些操作?问了GC和内存管理,平时在tomect里面有没有进行过相关的配置
  4. 然后问了http协议,get和post的基本区别,接着tcp/ip协议,三次握手,窗口滑动机制。
  5. 开发中用了那些数据库?回答mysql,储存引擎有哪些?然后问了我悲观锁和乐观锁问题使用场景. 分布式集群实现的原理。
  6. 然后问了我springmvc和mybatis的工作原理,有没有看过底层源码?

京东金融面试

  1. Dubbo超时重试;Dubbo超时时间设置
  2. 如何保障请求执行顺序
  3. 分布式事物与分布式锁(扣款不要出现负数)
  4. 分布式session设置
  5. 执行某操作,前50次成功,第51次失败a全部回滚b前50次提交第51次抛异常,ab场景分别如何设置Spring(传播性)
  6. Zookeeper有哪些用
  7. JVM内存模型
  8. 数据库垂直和水平拆分
  9. MyBatis如何分页;如何设置缓存;MySQL分页
  10. 熟悉IO么?与NIO的区别,阻塞与非阻塞的区别
  11. 分布式session一致性
  12. 分布式接口的幂等性设计「不能重复扣款」

美团面试

  1. 最近做的比较熟悉的项目是哪个?画一下项目技术架构图
  2. JVM老年代和新生代的比例?
  3. YGC和FGC发生的具体场景
  4. jstack,jmap,jutil分别的意义?如何线上排查JVM的相关问题?
  5. 线程池的构造类的方法的5个参数的具体意义?
  6. 单机上一个线程池正在处理服务如果忽然断电该怎么办?(正在处理和阻塞队列里的请求怎么处理)?
  7. 使用无界阻塞队列会出现什么问题?
  8. 接口如何处理重复请求?
  9. 具体处理方案是什么?
  10. 如何保证共享变量修改时的原子性?
  11. 设计一个对外服务的接口实现类,在1,2,3这三个主机(对应不同IP)上实现负载均衡和顺序轮询机制(考虑并发)

滴滴面试

  1. 自我介绍,技术特点
  2. 兴趣是什么,优势是什么
  3. jvm,jre以及jdk三者之间的关系?
  4. Dubbo的底层原理,Zookeeper是什么
  5. cincurrentMap的机制;TreeMap;Volatil关键字
  6. 快速排序;广度优先搜索(队列实现)
  7. 缓存的雪崩以及穿透的理解?
  8. HashMap的key可以重复吗?
  9. synchronized和lock的区别?
  10. 开发一个大型网站你会考虑哪些问题?

百度

电话面试题

  1. ArrayList 和 Hashmap 简单说一些,区别,底层的数据结构.
  2. Handler 消息机制
  3. 引起内存泄漏的场景
  4. 多线程的使用场景?
  5. 常用的线程池有哪几种?
  6. 在公司做了什么?团队规模?为什么离职?

面试中实际涉及到的问题

第一轮

  1. 知道哪些单例模式,写一个线程安全的单例,并分析为什么是线程安全的?
  2. Java中的集合有哪些?解释一下HashMap?底部的数据结构?散列表冲突的处理方法,散列表是一个什么样的数据结构? HashMap是采用什么方法处理冲突的?
  3. 解释一下什么是MVP架构,画出图解,一句话解释MVP和MVC的区别?
  4. Handle消息机制?在使用Handler的时候要注意哪些东西,是否会引起内存泄漏?画一下Handler机制的图解?
  5. 是否做过性能优化?已经采取了哪些措施进行优化?
  6. 引起内存泄漏的原因是什么?以及你是怎么解决的?

这些问题应该都是比较基础的问题,每个开发者都应该是非常熟悉并能详细叙述的.这一轮的面试官问的技术都是平时用到的.

第二轮

  1. 关于并发理解多少?说几个并发的集合?
  2. Handler 消息机制图解?
  3. 在项目中做了哪些东西?
  4. 画图说明View 事件传递机制?并举一个例子阐述
  5. 类加载机制,如何换肤,换肤插件中存在的问题?hotfix是否用过,原理是否了解?
  6. 说说项目中用到了哪些设计模式,说了一下策略模式和观察者模式?
  7. 会JS么?有Hybid开发经验么?
  8. 说一下快排的思想?手写代码
  9. 堆有哪些数据结构? 对于这轮米那是明显感觉到压力,知识的纵向了解也比较深,应该是个leader.

第三轮

  1. 介绍一下在项目中的角色?
  2. 遇到困难是怎么解决的?
  3. 如何与人相处,与别人意见相左的时候是怎么解决的,并举生活中的一个例子.
  4. 有没有压力特别大的时候? 这个应该是项目经理了,问的问题偏向于生活性格方面.