Java面试

1、Redis 中有几种类型 & 各自底层怎么实现的 & 项目中哪个地方用了什么类型,怎么使用的?
 
2、Redis如何实现分布式锁,zk如何实现分布式锁,两者的区别。如果service还没执行完,分布式锁在Redis中已经过期了,怎么解决这种问题?
 
3、synchronized底层实现,加在方法上和加在同步代码块中编译后的区别、类锁、对象锁。
 
4、锁升级的过程
 
5、Java运行时区域及各个区域的作用、对GC的了解、何为垃圾,有哪些GC算法、Java内存模型及为什么要这么设计?
 
6、对索引的理解,组合索引,索引的最佳实践
 
7、countDownLatch用过没有,在项目中如何使用的,对AQS的了解
 
8、写生产者消费者问题(考虑高并发的情况)
 
9、数据库和缓存的一致性问题。先更新数据库,再更新缓存,若更新完数据库了,还没有更新缓存,此时有请求过来了,访问到了缓存中的数据,怎么办?
 
10、聚簇索引/非聚簇索引,MySQL索引底层实现,为什么不用B-Tree,为什么不用hash,叶子结点存放的是数据还是指向数据的内存地址,使用索引需要注意的几个地方?
 
11、MySQL默认的事务隔离级别,MVCC、RR怎么实现的?RC如何实现的?
 
12、MySQL间隙锁有没有了解,死锁有没有了解,写一段会造成死锁的SQL语句,死锁发生了如何解决,MySQL有没有提供什么机制去解决死锁
 
13、有没有使用过JVM自带的工具,如何使用的?
 
14、说说对Java中集合类的理解
 
15、对CAS的理解,CAS带来的问题,如何解决这些问题?
 
16、volatile底层、synchronized底层、锁升级的过程、MESI
 
17、Ehcache支持哪些缓存?
 
18、如何保证RocketMQ 消息的顺序性,如何解决重复消费问题。
 
19、项目中如何保证接口的幂等操作
 
20、讲一讲对Redis 的了解,项目中如何使用的,哪个地方使用的,为什么要使用?
 
21、哨兵机制、Redis 两种备份方式的区别,项目中用的哪种,为什么?
 
22、讲一讲对分布式锁的了解
 
23、项目中系统监控怎么做的?
 
24、如何理解Spring中的AOP 和 IOC,以及DI,读过Spring源码没有?
 
25、如何理解分布式事务,为什么会出现这个问题,如何去解决,了解哪些分布式事务中间件?
 
26、聊一聊对分库分表的理解
 
27、Hystrix功能和在项目中怎么使用的?Hystrix怎么检测断路器是否要开启/关闭?Hystrix实现原理?除Hystrix之外的其他熔断限流中间件有了解没有,了解多少说多少?
 
28、怎么理解Java 中和 MySQL中的乐观锁、悲观锁?
 
29、一致性hash
 
30、处理过线上OOM问题没有,如何处理的?
 
31、遇到过线上服务器CPU飙高的情况没有,如何处理的?
 
32、对线程池的理解,项目中哪个地方使用了,如何使用的,用的Excutor框架中的哪个实现类,为什么用这个
 
33、对CAS的理解,CAS带来的问题,如何解决这些问题?
 
34、对MySQL索引的理解、对组合索引的理解、索引的最佳实践
 
35、分布式锁的实现、对比Redis分布式锁 & ZK分布式锁
 
36、唯一ID如何实现的,Snowflake实现原理,Snowflake有哪些问题,如何避免根据订单号可以推算出今天的订单量
 
37、怎么理解线程安全?
 
38、怎么理解接口幂等?项目中如何保证的接口幂等?
 
39、怎么理解微服务,服务如何划分,可以从哪几个方面去划分,为什么这样划分,微服务带来了哪些好处,哪些坏处,如何看待这个问题
 
40、如何理解网关,网关带来的好处和坏处,如何解决
 
41、怎么理解命令模式和观察者模式,手写一个观察者模式或者命令模式的代码,策略模式也行
 
42、如何设计一个秒杀系统?
 
43、如果我现在就是要实现每秒10w请求,不能熔断限流,如何去设计?
 
44、假设现在双十一零点,大量下单请求,如何对这些订单进行分库分表,为什么?
 
45、服务A调用服务B中一个接口,服务B调用服务C中一个接口,如何实现若服务B响应服务A成功,则服务C一定响应服务B成功,需要考虑系统性能问题?
 
46、递归使用中有什么需要注意的地方,递归写法一般可以用什么去替换?
 
47、有两个表,table a,table b,写SQL查询出仅在table a中的数据、仅在table b中的数据、既在table a 又在table b 中的数据?
 
48、一个final修饰的属性,定义的时候没有初始化,在无参构造函数中初始化,可以吗,为什么?
 
49、HashMap,concurrentHashMap底层实现
 
50、List删除是怎么实现的,遍历的时候可以删除吗?为什么?
 
51、Redis中有哪些数据结构,了解过其底层怎么实现的吗,和Java中相似的数据结构的对比?
 
52、Redis是单线程的还是多线程的,为什么这么快?
 
53、Redis Hash中某个key过大,变为String类型的大key,怎么处理,使用中如何避免出现这种问题?
 
54、讲一讲MySQL索引,实际工作中,哪些场景用了B+Tree索引,哪些场景用了hash索引?
 
55、explain 可以看到哪些信息,什么信息说明什么,explain的结果列讲一下
 
56、CAS的缺点,如何解决?
 
57、AQS、countDownLatch如何实现?
 
58、线程池如何实现,核心线程数和最大线程数设置成多少,为什么这么设置,项目中哪个地方使用了线程池,使用时需要注意什么
 
59、MySQL事务隔离级别,幻读,脏读,项目中用什么事务隔离级别,为什么?
 
60、volatile底层原理、synchronized实现机制
 
61、对XA、TCC的理解,了解哪些分布式事务框架,有什么缺点?
 
62、Feign 和 Dubbo,了解多少说多少?
 
63、Eureka 和 Zookeeper,了解多少说多少?
 
64、Hystrix 和 sentinel,了解多少说多少?
 
65、对分库分表、读写分离的了解,了解多少说多少?
 
66、Kafka 如何保证消息顺序消费、在consumer group 中新增一个consumer 会提高消费消息的速度吗、那如果我想提高消息消费的速度,我要怎么办?
 
67、Redis几种数据结构及底层,项目中如何使用的Redis?
 
68、对线程池的理解,在项目中如何使用的,多个线程之间如何共享数据,多个进程之间如何共享数据?
 
69、HashMap、concurrentHashMap的区别及底层实现、HashMap和HashTable 的区别?
 
70、什么是红黑树,什么是B-Tree,为什么HashMap中用红黑树不用其他树?
 
71、对MySQL索引的理解,为什么MySQL索引中用B+Tree,不用B-Tree 或者其他树,为什么不用hash 索引?
 
72、数据库和缓存的双写一致性问题?
 
73、用过哪些Object类的方法,如何使用的?
 
74、Java如何实现序列化的,Serialization底层如何实现的
 
75、countDownLatch如何实现的
 
76、项目中监控报警机制如何做的,说说你的了解
 
77、服务A调用服务B,用户请求服务A,发现返回较慢,如何定位这个问题
 
78、TIME_WAIT是什么状态还记得吗,什么情况下网络会出现这个状态
 
79哪些典型的应用用的是UDP?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值