这里会持续收集一些大厂的面试题,欢迎大家补偿,回答。😂
阿里巴巴
- 分布式锁在项目里哪些地方用到,怎么实现的
- JVM怎么监控
- OOM没有heap文件怎么办
- 进行没有挂,但没响应了怎么查原因
- 堆栈溢出一般在什么情况下发生,怎么应对
- Netty零拷贝怎么用的?原理是什么?哪些数据结构会用零拷贝?
- 微服务每个模块怎么划分,领域边界怎么确定,如何建模?
- Dubbo踩过哪些坑,分别是怎么解决的?
- 事务有哪些特性?
- 怎么理解原子性?
- 乐观锁和悲观锁的区别?这两种锁在Java和MySQL分别是怎么实现的?
- HashMap为什么不是线程安全的?
- 怎么让HashMap变得线程安全?
- jdk1.8对ConcurrentHashMap做了哪些优化?
- redis主从机制了解么?怎么实现的?
- 水平拆分后查询过程描述下
- 如果落到某个分片的数据很大怎么办?
- 哈希取模会有什么问题么?
- 拆分后主键怎么保证惟一?
滴滴
- Redis 数据类型与结构,平时用哪些?
- Redis为什么高效?
- Redis 只用一个线程吗?在32核的机器上会不会浪费?
- Redis的List、Set为什么使用跳表而不用复杂度更低的其他结构
- Redis Hash结构底层实现?假设一个超大的对象放不下怎么办?
- Java HashMap 1.8的改进
- LRU策略,底层实现
- 消息中间件了解哪些?
- RocketMQ分布式事务功能的客户端让你来封装怎么封装?
- Spring Cloud链路追踪怎么做的?底层怎么实现的?
- Dubbo链路追踪怎么做?
- MINA和Netty对比,各有什么优劣
- Netty怎么调优,怎么提升并发上限
- 说说TCP滑动窗口干嘛用的?
- 通讯序列化和反序列化了解哪些框架?优缺点是什么?
- Dubbo SPI怎么实现的?
- 16G内存的机器,长连接应用如果用CMS参数怎么配置
- G1平时怎么用,说说原理?
- Mysql Innodb索引说下
- 1亿条数据查第900页怎么查,如何优化?
- 分库分表一般按什么原则分
美团
- Dubbo架构图
- Dubbo调用原理
- B+Tree画图
- 手写二叉树前中后序遍历
- Redis数据类型
- Redis集群搭建过程
- Redis哨兵如何配置,运行原理
- Redis主备如何配置
- JVM运行内存模型,栈帧的局部变量表有哪些内容
- ConcurrentHashMap 1.7 和 1.8 区别
- Mysql事务特性,隔离级别
- 转账场景,ACID体现在哪里
- Spring MVC原理
- Spring Bean生命周期
- 初始化Bean 和 销毁Bean调用方法怎么配置?XML配置Bean有哪些标签?
- 自己设计一个MVC如何设计
- Mybatis $ 和 #的区别
- 如何防止SQL注入,Spring是如何防止SQL注入的?
- 如何做SQL注入
- Zuul如何配置路由
- 有没有手写过JDBC
- 数据库分库分表
- 1亿条数据的数据表,怎么添加字段
- 如何优化SQL
京东
● 线程池的原理,为什么要创建线程池?
● 线程的生命周期,什么时候会出现僵死进程;
● 什么实现线程安全,如何实现线程安全;
● 创建线程池有哪几个核心参数?如何合理配置线程池的大小?
● synchronized、volatile区别、synchronized锁粒度、模拟死锁场景、原子性与可见性;
● JVM内存模型,GC机制和原理;GC分哪两种;什么时候会触发Full GC?
● JVM里的有几种classloader,为什么会有多种?
● 什么是双亲委派机制?介绍一些运作过程,双亲委派模型的好处;(这个我真的不会...)
● 什么情况下我们需要破坏双亲委派模型;
● 常见的JVM调优方法有哪些?可以具体到调整哪个参数,调成什么值?
● JVM虚拟机内存划分、类加载器、垃圾收集算法、垃圾收集器、class文件结构是如何解析的;
● 红黑树的实现原理和应用场景;
● NIO是什么?适用于何种场景?
● Java9比Java8改进了什么;
● HashMap内部的数据结构是什么?底层是怎么实现的?
● 说说反射的用途及实现,反射是不是很慢,我们在项目中是否要避免使用反射;
● 说说自定义注解的场景及实现;
● List和Map区别,Arraylist与LinkedList区别,ArrayList与Vector 区别;
● Spring AOP的实现原理和场景;(应用场景很重要)
● Spring bean的作用域和生命周期;
● Spring Boot比Spring做了哪些改进?Spring 5比Spring4做了哪些改进;(惭愧呀,我们还在用Spring4,高版本的没关心过)
● Spring IOC是什么?优点是什么?
● SpringMVC、动态代理、反射、AOP原理、事务隔离级别;
● Dubbo完整的一次调用链路介绍;
● Dubbo支持几种负载均衡策略?
● Dubbo Provider服务提供者要控制执行并发请求上限,具体怎么做?
● Dubbo启动的时候支持几种配置方式?
● 了解几种消息中间件产品?各产品的优缺点介绍;
● 消息中间件如何保证消息的一致性和如何进行消息的重试机制?
● Spring Cloud熔断机制介绍;
● Spring Cloud对比下Dubbo,什么场景下该使用Spring Cloud?
● 锁机制介绍:行锁、表锁、排他锁、共享锁;
● 乐观锁的业务场景及实现方式;
● 事务介绍,分布式事物的理解,常见的解决方案有哪些,什么事两阶段提交、三阶段提交;
● MySQL记录binlog的方式主要包括三种模式?每种模式的优缺点是什么?
● MySQL锁,悲观锁、乐观锁、排它锁、共享锁、表级锁、行级锁;
● 分布式事务的原理2阶段提交,同步异步阻塞非阻塞;
● 数据库事务隔离级别,MySQL默认的隔离级别、Spring如何实现事务、
● JDBC如何实现事务、嵌套事务实现、分布式事务实现;
● SQL的整个解析、执行过程原理、SQL行转列;
● Redis为什么这么快?redis采用多线程会有哪些问题?
● Redis支持哪几种数据结构;
● Redis跳跃表的问题;
● Redis单进程单线程的Redis如何能够高并发?
● Redis如何使用Redis实现分布式锁?
● Redis分布式锁操作的原子性,Redis内部是如何实现的?
某公司
1面
1、Object的方法
2、jdk1.8比1.7做了哪些改变
3、volatile原理
4、工作中用到的redis数据类型及场景
5、工作中用到的线程池及原理、每个参数是怎么设置的
6、工作中用到的Redis锁及原理
7、slect from a left join b on 条件 和 select from a left join b where 条件一样么,为什么
8、热点商户的缓存穿透怎么解决,排队后面的请求等待时间过程怎么办
9、hashmap的put过程和扩容过程
10、用list users = new ArrayList<>()来说明类加载过程和整个过程中内存各区域的变化
11、线上用的垃圾回收器是啥,分几个阶段,哪个阶段stop the world,eden里还有什么
12、设计一个高可用、幂等、安全、高性能的接口需要分别考虑什么
13、Spring IOC bean初始化过程
14、mybatis的执行过程
15、事务隔离级别和mvcc
16、redis集群现在有10台机器,新加入5台,数据是怎么同步的
17、redis的持久化方式、redis的过期策略
18、redis和memcache的区别
19、mysql有哪些索引类型
20、lock和synchronized区别,生产还用过juc下的哪些类,场景
21、AtomicInteger的原理
2面
1、redis lru是怎么实现的,如何手写一个lru
2、B树和B+树的区别,mysql为啥使用B+树
3、红黑树的特性及变换
4、生产上的分布式事务怎么做的
5、分布式限流
6、mq积压如何保证消费到最新的消息,mq如何保证消费顺序
7、lambda写一个排序
8、mysql能发生死锁么,为什么
9、生产上的服务降级做了么,怎么做的
10、缓存的双写一致性怎么保证,生产是怎么用的,有什么问题,怎么解决
11、生产的不停机分表怎么做的,怎么支持跨时间查询,有无其他更好的分表方式
12、说一下下单的整个流程
13、如何解决超卖
14、线上发生过jvm问题么,如何排查的,引起原因是什么
15、线程池的核心参数及原理