前言
年后又是招聘季金三银四来了,每年这个季节里都会有很多互联网企业开出高薪招兵买马,同时也会有成千上万的Java程序员开始看机会找工作跳槽,找工作就肯定会涉及到面试,面对各家公司的风格迥异HR或者面试官。在这分享百度,美团,京东面试的最新面试题,以及文末准备的互联网Java架构面试题系列,希望大家能在金三银四中找到一个自己满意的工作,升职加薪!
百度四面
一面:
- 自我介绍
- 操作系统了解么,讲一下进程和线程?
- 死锁和处理方式
- 内存,虚拟内存和页面置换?
- 网络了解么,讲一下三次握手和四次挥手?
- 数据库了解多少,mysql索引,事务,锁讲了一些?
- Redis呢,讲了一下数据结构,持久化方式,使用场景?
- 主从复制怎么实现?
- 分布式了解哪些,负载均衡有哪些方式,一致性问题怎么解决?
- mysql大表数据查询,怎么优化,分表,分库?
- 二叉树了解么,平衡二叉树呢,有什么场景会用到呢?
- 未来的发展规划?
二面:
- 项目讲一下
- 排序算法,复杂度,比较?
- 讲一下OSI七层模型,我说了5层模型,然后他让我再补充一下,问了每层的作用,问了wifi属于哪一层?
- 线程间的同步用什么方式?
- 问我使用hashmap时重写哪两个方法,为什么要重写,什么场景下重写?
- 平时用过什么数据结构,list用哪些有啥区别。
- Spring中的ioc和aop。ioc的注解有哪些。
- autowired和resource有什么区别,作用域有哪些?
- autowired如何配置两个类中的一个吗?
- 写一个单例模式?
- Java会有内存泄漏吗,三个区分别什么情况下会产生内存泄漏?
- 未来的发展规划?
三面:
- 主要了解哪些技术
- 分布式系统怎么设计,说了CAP和BASE,最终一致性?
- 问我最终一致性是什么,举一下强一致性和最终一致性的例子。分布式事务和消息队列
- 分布式事务的消息id怎么确认顺序,我说使用zk
- zk的性能瓶颈怎么克服,我说使用redis和redis集群。
- 网络这块熟么,说一下socket编程吧。
- 网络编程的NIO和BIO区别,阻塞指的是什么意思呢。
- socket客户端和服务端的连接过程和通信过程说一下。
- 系统怎么设计,设计模式怎么用
- 系统优化怎么做,cpu,IO,内存分别怎么排查问题和调优?
- 未来的发展规划?
hr面:
谈谈未来的职业规划,聊聊人生,很愉快。
美团三面
一面:
- 自我介绍
- object类有哪些方法?
- hashmap的结构,1.7和1.8有哪些区别,除了红黑树优化以外还有哪些改进?
- 头插法和尾插法的区别,头插法在多线程时会出现什么问题?
- concurrenthashmap的实现原理,1.7和1.8有什么区别,分段锁,synchronized和cas操作?
- cas操作是怎么实现的,为什么是原子性的。wait和notify方法用在哪里,wait和sleep的区别,notify后面的代码会不会运行?
- synchronized和lock的区别在哪里,使用方式上有什么区别?
- 公平锁和非公平锁的区别?
- 线程池用过哪些,线程池有哪些参数?
- ArrayList和linkedlist有什么区别,如何遍历,使用for循环遍历linkedlist为什么不行,linkedlist能使用索引访问么,使用迭代器呢?
- 以后的发展和学习有什么看法?
二面:
- JVM内存模型介绍一下,堆区怎么分代,分代垃圾回收算法说一下,老年代使用标记清除?
- JVM优化讲一下?
- jvm场景问题, 标记清除多次后老年代产生内存碎片,引起full gc,接下来可能发生什么问题。
- 哪些情况会触发full gc,full gc是否包括young gc和major gc,如果只包括这两个,为什么要特地做full gc?
- Java中有哪些引用,分别有什么用。
- Spring的ioc和aop说一下。
- 分布式用过哪些技术,我说自己跑过一些demo,问我zookeeper有什么用,然后问我dubbo里的zookeeper是做什么的,我说服务注册中心。
- 服务注册中心实现什么功能,消费者的本地缓存如果失效了怎么办,我刚开始说多次失败重新拉取,他说这样不行吧,我就说让生产者和注册中心维持心跳,失效时删除该节点并且更新消费者缓存即可。
- MySQL用的挺多,问你一下,innodb的b+树索引,主键索引,聚簇索引有什么区别。
- MySQL里有哪些锁,行锁表锁,乐观锁等?
- MySQL的死锁怎么产生的,举了两个例子。
三面(HR面):
谈谈个人爱好,未来的发展计划,了解一下你的沟通能力,很放松!
京东三面
一面:
- 自我介绍
- 讲一下项目中的多线程实现
- Java的线程池的参数,拒绝策略,阻塞队列等实现和使用
- fixethreadpool使用的是什么阻塞队列,如果使用arrayblockingqueue或者linkedblockingqueue会有什么问题。
- ArrayList和linkedlist有什么区别,扩容呢?
- hashmap,hashtable,concurrenthashmap1.7和1.8选一个说一下?
- jdk1.8针对hashmap使用红黑树优化目的是什么,红黑树的结构说一下?
- JVM了解么,说一下内存结构,堆区的分代,垃圾回收以及所用算法。
- 为什么要划分年轻代和老年代,方法区是否会垃圾回收,gc时要扫描哪些位置?
- MySQL的隔离级别有哪些,默认级别是什么?
- 乐观锁和悲观锁讲一下?
- Redis提供有哪些数据类型,数据一致性,持久性,集群?
二面:
- 讲一下两个项目,分别做了什么,觉得跟自己做的项目有什么不同,如何看待这种不同,应该如何改进。
- 平时怎么学习,你的博客一般写了什么,觉得和高质量博客的差距在哪里。
- Java虚拟机了解么,讲一下内存分区和gc,如何排查堆内存的问题?
- Java的线程池了解么,看过它的源代码么,怎么修改源码可以实现线程状态的监控呢?
- web框架了解什么,讲讲SpringMVC的启动过程,讲了mvc上下文以及dispatcher初始化过程和请求流程?
- 设计模式了解么,单例,工厂,分别出现在什么场景?
- MySQL的select1和select *有什么区别,为什么加索引访问比不加索引要快?
- 负载均衡的几种算法,缓存的几种淘汰策略?
- 计算机网络了解么,http的header有哪些字段,是否包含ip地址?
- 分布式系统怎么设计,说了CAP和BASE,最终一致性?
- 分布式事务和消息队列了解多少?
- 以后有什么规划发展的想法,说一说。
三面(HR面):
对京东有什么了解,对加班的有什么看法,以后的发展是如何规划的,聊聊人生,其实主要还是在看沟通交流能力!
最后
针对于上面的面试题我总结出了互联网公司java程序员面试涉及到的绝大部分面试题及答案做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
资料领取方式:加QQ群930254941,进群既领取资料!
点击链接加入群聊【java架构交流群】:https://jq.qq.com/?_wv=1027&k=57qP2qp
有疑问加站长微信联系(非本文作者)