Java面试基础知识,2021阿里Java笔试总结

Posted Java德克士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试基础知识,2021阿里Java笔试总结相关的知识,希望对你有一定的参考价值。

前言

在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The World问题,因此很容易导致服务超时,引发性能问题。

我们团队负责的广告系统承接了比较大的C端流量,平峰期间的请求量基本达到了上千QPS,过去也遇到了很多次GC相关的线上问题。

这篇文章,我再分享一个更棘手的Young GC耗时过长的线上案例,同时会整理下YGC相关的知识点,希望让你有所收获。内容分成以下2个部分:

  • 从一次YGC耗时过长的案例说起
  • YGC的相关知识点总结

一面:

  1. hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?
  2. Linux的共享内存如何实现,大概说了一下。
  3. Linux 中的用户模式和内核模式是什么含意?
  4. 在 Java 中 Lock 接口比 synchronized 块的优势是什么?你需要实现一个高效的缓存,它允 许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?
  5. socket网络编程,说一下TCP的三次握手和四次挥手
  6. 同步IO和异步IO的区别?
  7. Java GC机制?GC Roots有哪些?
  8. 如和判断一个对象是否存活?(或者 GC 对象的判定方法)
  9. 红黑树讲一下,五个特性,插入删除操作,时间复杂度?
  10. 快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少

第一轮非常重要,第一面能通过,后续被录用的可能性就比较高

二面

  1. 自我介绍,主要讲讲做了什么和擅长什么
  2. 设计模式了解哪些?
  3. Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
  4. 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据
  5. AtomicInteger怎么实现原子修改的?
  6. RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?
  7. ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
  8. redis数据结构?
  9. redis数据淘汰机制?
  10. Redis 集群方案应该怎么做?都有哪些方案?

三面(约五十分钟)

  1. mysql实现事务的原理(MVCC)
  2. MySQL 中控制内存分配的全局参数,有哪些?
  3. Redis 有哪些适合的场景?
  4. 有哪些数据库优化方面的经验?MySQL数据主从同步是如何实现的?
  5. MySQL索引的实现,innodb的索引,b+树索引是怎么实现的,为什么用b+树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。
  6. 如果Redis有1亿个key,使用keys命令是否会影响线上服务?
  7. Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么?
  8. 遇到最大困难是什么?怎么克服?
  9. 未来的规划是什么?
  10. 你想问我什么?

最后

很多程序员,整天沉浸在业务代码的 CRUD 中,业务中没有大量数据做并发,缺少实战经验,对并发仅仅停留在了解,做不到精通,所以总是与大厂擦肩而过。

我把私藏的这套并发体系的笔记和思维脑图分享出来,理论知识与项目实战的结合,我觉得只要你肯花时间用心学完这些,一定可以快速掌握并发编程。

不管是查缺补漏还是深度学习都能有非常不错的成效,需要的话记得帮忙点个赞支持一下

Java面试精选题、架构实战文档传送门:点击这里免费领取

整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~

以上是关于Java面试基础知识,2021阿里Java笔试总结的主要内容,如果未能解决你的问题,请参考以下文章

2021阿里Java笔试总结,挥泪整理面经

2021阿里Java高级面试题总结,工作感悟

MySQL最全整理!2021阿里Java笔试总结

纯干货分享!2020阿里java岗笔试面试题总结(附答案)

毕业之后所有面试总结

毕业之后所有面试总结