本文意在分享最近的一些面试题,大部分是自己最近面试的,也有朋友分享的,还有网络收录的。仅供参考学习
明源云
1.熔断用了吗,怎么用的
2.分布式锁怎么实现 超时时间设置多少合适
3.首页为什么要拆分单独的服务
4.springcould资源隔离
5.为什么那么多分布式框架要选择springcould
6.mysql主从同步原理,有延时吗
7.读写分离是怎么去做的。
8.一张1000w数据的订单表,10个字段,还有一张500w数据的用户表。8个字段。现在要得到任意两两条件组合的数据2w条。说出三种技术方案
9.应对高并发你们做了哪些工作
10.你们的秒杀做了哪些优化
11.hashmap以自定义对象为key,如果不重写hashcode方法会怎么样
12.分别讲讲软引用和弱引用
铱云科技
1.JVM内存分布,每个区域都是做什么的
2.类加载的过程,类加载器分为几层,bootstarp加载器是干什么的、假如只有一个类加载器行不行,类加载器如果算上自定义类加载器分为4层,从顶层往下分别是什么
3.spring的@Resource注解和@Autowired的区别
4.http和https的区别。https为什么是安全的,它是什么算法加密的,会不会被域名劫持
5.JVM新生代默认用的什么垃圾回收器
系统设置的是CMS垃圾收集器,新生代采用ParNew,老年代CMS
AKULAKU
1.Redisson分布式锁,setNX会有问题https://www.cnblogs.com/diegodu/p/8185480.html
2.Redis选举的机制,怎么知道哪个做leader,cluster讲一下
3.redis分片策略,一致性hash,扩充节点的过程
3.MySQL的innodb的索引原理,B数的特点、为什么要用B树不用hash。聚簇索引了解吗。查询的原理
4.线程池有哪些参数,参数的意义,拒绝策略有哪几种
5.对代码有什么追求吗,设计模式,单例、策略。策略模式的UML图
6.为什么要用spring,spring是怎么把对象注入容器的,spring是怎么解决循环依赖的问题(先创建对象,再去管理依赖关系)
7.springcould有没有深入研究某个组件
8.怎么保证事务提交时,消息推送到队列
华润置地
1.spring事务的原理
2.讲讲CAS
3.mysql优化知道哪些
4.JVM内存模型,调优了哪些参数
5.JUC下的有些什么
6.设计模式常用的有哪些,具体讲讲
7.日常开发中有没有去注意线程安全
8.哪一块是你比较精通的
9.springcould哪些部分比较了解
兴盛优选
1.jvm的内存结构
2.有哪几种回收算法
3.标清标整的区别
4.cms和G1的区别
5.在新生代没有被垃圾收集器清理的对象会怎么样,老年代的依据默认值是多少
6.@autowried的实现原理是怎样的,他在哪一步进行的
7.aop你们是使用场景,实现原理
8.http的403啥意思
9.tcp三次握手是怎么样的,平常说的半链接拦截是发生在哪步
10.MySQL索引底层数据结构有哪几种,hash和B+树的区别
11.Redis存入100和helloworld有什么区别
12.sortset了解吗
13.还说了个算法了解不
14.dubbo有哪几种注册中心
15.rabbitmq有哪几种发送消息的方式
16.事务隔离级别有哪几种
17.死锁什么情况下会出现,活锁了解吗
18.juc常用哪些类,aqs说说,他提供了什么功能
19.十个线程先后执行有哪些实现方式
20.乐观锁用过吗,Java1.8有个工具类提供了乐观锁实现,你知道吗
21.linux常用命令,常用来看负载的三个参数分别是指哪几个时间点
绿米联创
1.最顶级的异常类是什么,什么情况下会用到,他的子类有什么,error什么时候会用到
2.java语法糖有了解吗
3.String a ,b,c; a=“a”;b=“b”;c==“a”+“b”; a+b==c?
4.怎么一行代码把1,2,3,三个数字放到一个list
5.JVM内存模型、垃圾回收算法
6.怎么做到栈溢出
7.新生代和老年代的比例大小,怎么设置老年代的比例
8.jvm怎么查看内存占用情况
9.aqs
10.synchronized的底层原理,它是可重入锁吗。怎么实现可重入锁
11.常用的数据库引擎,innodb和myisam的区别,hash索引和B+树的区别
12.sql优化方式,
13.有a,b,c三列,建了一个 组合索引,和在a上建了索引。现在查询a=?.会选择哪个索引
14.mysql有哪些约束
15.innodb默认的事务隔离级别,要做分布式事务,最高能到哪个隔离级别
16.tcp三次握手,tcp协议是在网络链路哪一层
17.http头部有哪些参数
18.hashmap1.8的改动。写出123456的红黑树
19.集合中有哪些有序的集合
20.linkedhashmap和treemap的区别
拉卡拉
1.先谈整个项目、介绍项目的所用技术
2.对微服务的理解
3.目前项目是怎么拆分的
4.redis哪些地方用到了、解决了什么功能
5.Arraylist是线程安全的吗
6.Hashmap实现原理
7.mysql知道哪些引擎,innodb有哪些特性,什么好处。
8.事物的隔离级别。哪些走索引,不走索引相关的。
9.多线程的生命周期,怎么处理并发的
票据宝
1.hashmap的数据结构组成,hashmap的hashcode()和equals()什么时候会调用
2.hashmap什么时候会rehash()
3.volatile了解吗、他在CPU中有起到什么作用
4.java原生线程池
5.jvm内存结构、堆内存组成、
6.什么情况下会内存溢出,什么情况下会栈溢出
7.多线程顺序是怎么保证的
8.有哪些线程安全的容器
9.treemap是怎么排序的
10.concurrenthashmap在java各个版本中的改进,1.9的防死锁 是怎么解决的
11.threadlocal
蚂蚁金服
1.自我介绍、项目、项目亮点、职责
2.map的底层结构知道吗?初始容量多大?增长因子多大?为什么1.8要换成红黑树呢?红黑树检索高效。
3.红黑树的理解
4.map的key和value的存储类型有什么讲究吗?可以存null,那存进去之后怎么取?value怎么真的什么都可以存?int类型可以存吗?
5.springbean加载过程知道吗
6.jvm启动参数你知道哪些?如果jvm出现oom什么参数可以让内存dump掉
7.幂等性知道吗?你是怎么保证幂等性的,同一笔订单并发请求,你怎么保证只会插入一次
8.你们分布式锁是怎么弄的,什么是乐观锁和悲观锁?
9.你们是怎么去处理并发的
10.threadlocal了解吗?你们做什么用?它是什么底层数据结构?实现原理是什么?为什么能让其他线程无法访问内在空间
11.事务的传播机制了解吗?acid?acid是事务传播机制的什么?
12.序列化方式有哪几种你知道吗?json算序列化方式吗?为什么要序列化
13.AtomicInteger类的理解与使用
14.mysql索引你了解吗?组合索引加载规则怎么样?什么情况下索引会失效?
15.线程池你用过吗?那spring的线程池的初始参数有哪些。拒绝策略是怎么样的?
网络收录(美团)
美团Java社招,42道面试题分享,高难度,工作5年+:1、自我介绍,项目介绍,遇到的难点?产生原因?如何解决?
2、HashMap1.8与1.7区别?ConcurrentHashMap实现原理 ?
3、jvm类加载器,自定义类加载器,双亲委派机制,优缺点,tomcat类加载机制?
4、tomcat热部署,怎么做到的热加载?
5、cms收集器过程,g1收集器原理,怎么实现可预测停顿的,region的大小结构?
6、内存溢出,内存泄漏遇到过吗?什么场景产生的,怎么解决的?
7、volatile的原理?synchronized和重入锁实现原理以及区别?
8、redis字符串实现,sds和c区别?
9、redis集群,为什么是16384个slot?选举过程,会有脑裂问题么,raft算法,优缺点?
10、redis有序集合怎么实现的,跳表是什么?往跳表添加一个元素的过程获取分数的时间复杂度,为什么不用红黑树,红黑树有什么特点,左旋右旋操作?
11、锁升级过程,轻量锁可以变成偏向锁么?偏向锁可以变成无锁么?对象头结构,锁状态变化过程?
12、Innodb的结构了解么?磁盘页和缓存区是怎么配合的?缓冲区和磁盘数据不一致怎么办,服务器突然宕机了数据会丢失么?
13、InnoDB 索引为什使用B+树而不是用B树?
14、MySQL 分表是怎么实现的?跨库join如何解决?数据量突增怎么解决?
15、数据库的隔离级别,怎么实现的?当前读,快照读?MVCC?
16、mysql优化的实践经验
17、分布式事务出现过不一致吗?为什么?怎么解决?有什么方法避免?怎么监控?监控到怎么处理?什么时候需要人工接入?
18、io模型了解么?多路复用?selete,poll,epoll,epoll的结构?怎么注册事件?
19、你们用的什么消息中间件,kafka,为什么用kafka?kafka是怎么保证高吞吐量的?
20、kafka重平衡,重启服务怎么保证kafka不发生重平衡,有什么方案?
21、netty的原理和使用?tcp的连接过程?一台服务器能支持多少连接,为什么 ?tcp各个参数怎么设置?
22、Sping的AOP实现原理,以及对象生成方式的种类,单例的还是原型的?
23、讲讲调度接口是怎么实现的
24、分布式唯一ID是怎么实现的
25、设计模式,以及自己使用的场景
26、有没有用过分布式锁,怎么实现的,讲讲原理
27、如何解决线上问题?cpu狂飙怎么办?频繁minor gc怎么办?可能造成的原因是什么?如何避免?
28、怎么理解分布式和微服务,为什么要拆分服务,会产生什么问题,怎么解决这些问题 ?
29、怎么理解高可用,如何保证高可用,有什么弊端,熔断机制,怎么实现 ?
30、对于高并发怎么看,怎么算高并发,你们项目有么,如果有会产生什么问题,怎么解决
31、有没有做过压测的项目?首页接口优化是怎么做的?
32、如何优雅的写代码?什么代码算做优雅?什么代码是规范?你们代码规范是什么样的?如何进行code review?
33、算法:给定一个长度为N的整形数组arr,其中有N个互不相等的自然数1-N,请实现arr的排序,但是不要把下标0∼N−1位置上的数通过直接赋值的方式替换成1∼N
34、算法:判断一个树是否是平衡二叉树
35、算法:给定一个二叉树,请计算节点值之和最大的路径的节点值之和是多少,这个路径的开始节点和结束节点可以是二叉树中的任意节点
36、算法:LRU 缓存
37、算法:实现带有getMin功能的栈,要求push,pop,getMin的时间复杂度都是O(1)
38、算法:两数之和
39、算法:实现二叉树先序,中序和后序遍历
40、你对于自己的规划是怎么样的?
41、什么时候能入职,你对岗位的期望是什么
42、你还在面其他公司么,目前是一个什么流程
网络收录(蚂蚁金服)
一面
1 自我介绍和项目
2 Java的内存分区
3 Java对象的回收方式,回收算法。
4 CMS和G1了解么,CMS解决什么问题,说一下回收的过程。
5 CMS回收停顿了几次,为什么要停顿两次。
6 Java栈什么时候会发生内存溢出,Java堆呢,说一种场景,我说集合类持有对象。
7 那集合类如何解决这个问题呢,我说用软引用和弱引用,那你讲一下这两个引用的区别吧。
8 Java里的锁了解哪些,说了Lock和synchronized
9 它们的使用方式和实现原理有什么区别呢?
10 synchronized锁升级的过程,说了偏向锁到轻量级锁再到重量级锁,然后问我它们分别是怎么实现的,解决的是哪些问题,什么时候会发生锁升级。
11Tomcat了解么,说一下类加载器结构吧。
12 说了Spring,问我Spring中如何让A和B两个bean按顺序加载?
13 10亿个数去重,我说用hash分片做,他说可能不均匀,然后我说了bitmap,他说那数字量更多怎么办,我说那就两个bitmap把。他说下一题吧。
二面:技术面
1.讲一下项目
2.做的主要是Java对吧,讲一下多线程把,用到哪些写一下
3.写了thread和runnable,然后写了线程池,又问了线程池由哪些组件组成,有哪些线程池,分别怎么使用,以及拒绝策略有哪些。
4.什么时候多线程会发生死锁,写一个例子吧,然后我写了一个两个线程,两个锁,分别持有一个,请求另一个的死锁实例。
5.集合类熟悉吧,写一个题目,一个字符串集合,找出pdd并且删除。
6.然后说一下Redis吧,是单线程还是多线程,Redis的分布式怎么做?
7.RPC了解么,我说了主要是协议栈+数据格式+序列化方式,然后需要有服务注册中心管理生产者和消费者。
9.TCP三次握手的过程,如果没有第三次握手有什么问题。
三面:技术面
自我介绍
cap了解么,分别指什么,base呢,强一致性和弱一致性有什么方法来做,2pc了解么,说一下大概过程。
负载均衡怎么做的呢,为什么这么做?
了解过集群雪崩么?
MySQL的主从复制怎么做的,具体原理是什么,有什么优缺点。
Redis有哪些集群模式,各自的区别?
项目用到了多线程,如果线程数很多会怎么样?
分布式了解哪些东西,消息队列了解么,用在什么场景,说了削峰,限流和异步。说了kafka,问我怎么保证数据不丢失,以及确保消息不会被重复消费。还问了消息送达确认是怎么做的。
讲一下项目的主要架构,你在里面做了什么
有什么比较复杂的业务逻辑讲一下。
最大的难点是什么,收获是什么。
HR面:
1.工作中遇到的最大挑战是什么,你如何克服的?
2.你最大的优点和最大的缺点,各自说一个?
3.未来的职业发展,短期和长期的规划是什么?
综合整理
Jvm常用的配置参数
tomcat的配置参数
GC的算法,内存模式
类加载
集合
线程池(lock concurrent)
设计模式(代理,模板,适配器,策略)
springmvc执行流程
spring注解 aop ioc
事务的使用,开启事务的方式(注解,配置),事务的传播机制(7种 )
数据库的事务级别()
事务的特性ACID
Spring Cloud 的常用组件
Spring cloud 的降级熔断
mysql调优,
mysql索引的原理
mysql explin, type
mysql 分表分区?
mysql 的锁?
mysql 存储引擎?myIsam innoDB
http的三次握手,4次挥手
客户端发起 携带同步序列号,
服务端接收到同步序列号,返回 ack=1 ,
redis 的主从(master负载太大),哨兵,集群(多主多从,)?
redis 缓存穿透? 缓存失效 是添加分布式锁
redis 缓存雪崩?避免缓存同时失效,
redis 原子性?watch,exce mut, incm_unmber get,setNX
分布式锁?mysql zookeep redis(推荐)
hash算法冲突? hashMap ,
MQ如何保证数据不丢失?kafka
MQ的事务消息Rebbite?
分布式事务解决方案?分布式事务(两阶段提交(2PC),补偿事务tcc(串行), 本地消息表(异步确保,最终一致性,可靠消息)?
https://blog.csdn.net/YoungStunner/article/details/79469823
面试题
https://www.cnblogs.com/peke/p/7894685.html
祝各位金九银十面试成功。