java基础知识点面试题

前言

高并发,几乎是每个程序员都想拥有的经验。原因很简单:随着流量变大,会遇到各种各样的技术问题,比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等,这些问题能推动我们在技术深度上不断精进。

在过往的面试中,如果候选人做过高并发的项目,我通常会让对方谈谈对于高并发的理解,但是能系统性地回答好此问题的人并不多,大概分成这样几类:

1、对数据化的指标没有概念:不清楚选择什么样的指标来衡量高并发系统?分不清并发量和QPS,甚至不知道自己系统的总用户量、活跃用户量,平峰和高峰时的QPS和TPS等关键数据。

2、设计了一些方案,但是细节掌握不透彻:讲不出该方案要关注的技术点和可能带来的副作用。比如读性能有瓶颈会引入缓存,但是忽视了缓存命中率、热点key、数据一致性等问题。

3、理解片面,把高并发设计等同于性能优化:大谈并发编程、多级缓存、异步化、水平扩容,却忽视高可用设计、服务治理和运维保障。

4、掌握大方案,却忽视最基本的东西:能讲清楚垂直分层、水平分区、缓存等大思路,却没意识去分析数据结构是否合理,算法是否高效,没想过从最根本的IO和计算两个维度去做细节优化。

蚂蚁金服一面:

  1. 先自我介绍,讲讲自己基础掌握情况,以及项目经历平时会用到哪些数据结构?
  2. 链表和数组的优缺点?
  3. 解决hash冲突的方法有哪些?
  4. 讲讲自己对HashMap的理解,以及和Weakhashmap的区别?
  5. 你刚才讲的是JDK1.7版本的实现,知道JDK1.8做了哪些改动么?
  6. 你们在微服务中用RPC通信还是REST?
  7. RPC和HTTP的关系是什么?
  8. 谈谈什么是HTTP的长连接和短连接?
  9. TCP的三次握手和四次挥手,以及为什么要三次握手,而不是二次?
  10. TCP 有哪些状态,相应状态的含义?并发包中锁的实现底层(对AQS的理解)?
  11. 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
  12. SynchronizedMap和ConcurrentHashMap有什么区别?如何使用阻塞队列实现一个生产者和消费者模型?
  13. 简述一下Java 垃圾回收机制?
  14. 如何判断一个对象是否存活?
  15. 什么是tomcat类加载机制?
  16. 类加载器双亲委派模型机制?
  17. 让你评价一下你自己?

蚂蚁金服二面:

  1. 扯了下项目、讲一下项目经历redis的底层数据结构了解多少?
  2. 知道动态字符串sds的优缺点么(redis底层数据结构之一)?
  3. redis的单线程特性有什么优缺点?
  4. 用过 Redis 的哪些数据结构, 分别用在什么场景?怎么解决缓存击穿问题的?
  5. Hytrix的隔离机制有哪些?
  6. Hytrix常见配置是哪些?
  7. 做过哪些调优?
  8. JVM调优、数据库调优都行!给了个场景,问你怎么调?

蚂蚁金服三面:

  1. 依然是介绍自己数据库的高可用架构是怎么样的?
  2. 如何保证数据库主从一致性?
  3. 知道mysql的索引算法吗?
  4. 为什么mongodb的索引用了B树,而mysql用B+树?
  5. 用mysql过程中,有遇到什么问题么?
  6. 生产用的是哪种事务隔离级别,为什么?
  7. 谈一谈你对微服务架构的理解?
  8. 用过哪些RPC框架,讲讲他们优缺点?
  9. 用过docker吗,对容器了解多少?

蚂蚁金服四面:

聊人生谈理想,HR很ncie,主要交流为什么选择来阿里,未来的打算职业规划以及待遇等,交流挺愉快。

面试经验总结:

技术基础必须扎实:算法、数据结构、操作系统等,蚂蚁金服面试对技术的基础非常重视,基础扎实的同学有利于在前两轮突出重围。

技术宽度:主要集中在高并发、多线程、分布式架构,大以及常用中间件(缓存等)的选型和比较。

技术原理深入:重点还是提前准备好JVM、多线程高并发这块。

参与的项目总结:你需要清楚你所做项目的关键细节、优化、特点、原理。

很多所用第三方库&中间件等的原理,即使你不知道,也要有自己的想法能够说出如何代替实现,比如单点登录的替代方案。

以上就蚂蚁金服后端研发面试题,以下该面试题的部分参考答案。

蚂蚁金服内推四面:基础+底层+算法+数据库,三周拿到offer

总结

以上是字节二面的一些问题,面完之后其实挺后悔的,没有提前把各个知识点都复习到位。现在重新好好复习手上的面试大全资料(含JAVA、MySQL、算法、Redis、JVM、架构、中间件、RabbitMQ、设计模式、Spring等),现在起闭关修炼半个月,争取早日上岸!!!!

下面给大家分享下我的面试大全资料,如果你也有需要,可以戳这里即可免费领取我的这份复习资料

  • 第一份是我的后端JAVA面试大全

image.png

后端JAVA面试大全

  • 第二份是MySQL+Redis学习笔记+算法+JVM+JAVA核心知识整理

字节二面拜倒在“数据库”脚下,闭关修炼半个月,我还有机会吗?

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

  • 第三份是Spring全家桶资料

字节二面拜倒在“数据库”脚下,闭关修炼半个月,我还有机会吗?

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

  • 第三份是Spring全家桶资料

[外链图片转存中…(img-EpuNo2DX-1624075747326)]

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值