2021 - Java后端开发,找工作常见面试题(二)

随着IT行业竞争越来越激烈,面试过程中,各厂对基础也越来越看重了,也就是我们所说的“卷”。面试过程中涉及到的有关知识点整理如下:(重要的事说三遍,基础很重要,基础很重要,基础很重要啊!!!)


一、JAVA基础篇


1、ConcurrentHashMap是如何保证线程安全的,HashMap为什么是线程不安全的? HashTable为什么是线程安全的,HashSet为什么是线程不安全的?

2、volatile是如何保证变量,在线程之间是互相可见的,为什么它无法保证原子性?

3、JDK8中新增的Lambda、Stream的流式编程

4、Future、CompleteFuture的基本原理

5、创建线程的3种方式:Thread 、Runnable、Callable


二、多线程篇


1、线程池的底层是如何实现的,常用的线程池有哪些?任务队列有哪几种?各自有什么特性?拒绝策略有哪几种,分别有什么区别?

2、synchronized如何保证线程安全的?

3、ReentrantLock底层是如何实现的,其创建的公平锁和非公平锁是如何实现的?AQS指的是什么?

4、CAS(Compare and swap) 的基本原理是什么?如何避免CAS过程中产生的ABA的问题?

5、悲观锁、乐观锁、公平锁、非公平锁、自旋锁分别是什么意思?

6、过度加锁是指什么意思?


三、SQL篇


1、MySQL的聚簇索引和非聚簇索引区别,查询过程分别是怎样的?什么是回表?

2、MySQL底层的数据结构是什么?数据页和索引页之间是怎么管理的?

3、MySQL的索引是如何生效的?索引的代价是什么?索引失效和索引生效的机制是怎样的?

4、数据库的事务隔离级别 : Read Uncommitted、 Read Committed、 Repeatable Read、Serializable,四种隔离级别分别会带来什么样的问题?(脏读、不可重复读、幻读)

5、数据库对于这些事务隔离是如何保证的?(MVCC、Next-Key-Locks)

6、分布式事务TCC 模式、XA 模式、AT 模式、SAGA 模式,分别是如何实现的?各自有什么缺点?


四、No-SQL篇


1、Redis的过期策略

2、Redis的底层数据持久化分为RDB和AOF,各自有什么优点和缺点?

3、Redis分布式锁是怎么回事?

4、缓存雪崩、缓存击穿、缓存穿透分别是什么?如何解决?

5、布隆过滤器的底层实现怎样的?它有什么缺点?


五、MQ篇


1、Kafka集群原理、主从节点各自功能是什么?数据是如何持久化的?

2、KafkaProducer在发送消息时,是如何选择分区的?RecordAccumulator线程和Send线程的作用分别是什么?发送的消息有哪几种压缩方式?

3、KafkaConsumer中,ConsumerGroup和GroupCoordinator是如何工作的?

4、如何提高消费者集群的消费能力?消费者集群中,什么情况下会发生Rebalance,会有什么影响?

发生Rebalance时,分区重配策略Range、Round Robin、Sticky分别是怎样的?


六、框架篇


1、Mybatis是怎么通过动态代理实现查询?MapperProxy和MapperMethod分别是什么作用?

2、Spring的AOP是如何实现的?JDK自带的动态代理和基于Cglib的动态代理有什么区别?

3、Airflow的六个模块(WebServer、Worker、Flower、Scheduler、Postgres、Redis),分别是有什么作用?如何提高airflow的性能?

4、BeanFactory 和 FactoryBean有什么区别?

5、Kubernates 主节点 : API-Server、 Scheduler、 Controller、 etcd ,从节点 : Kubelet、Kube-proxy、 Docker ,各自的功能是什么?

6、Kubernates的 Ingress、Service、Deployment、Pod、Container之间是怎么关联的?

7、同一节点Pod内部容器、同一节点不同Pod内的容器、不同节点Pod内的容器,是如何通信的?

8、Hadoop框架的内部结构是怎样的?Map和Reduce的工作机制是怎样的?

9、Hadoop是如何基于作业jar包,开展map和reduce计算的?在这过程中,Shuffle起到了什么作用?


七、JVM篇


1、JVM内分为哪几个部分?在JVM中,是如何新建一个类的?

2、JVM的GC算法有:标记清理法、标记整理法、标记复制法,分别有什么优缺点?

3、一个对象是如何从年轻代到过度代,再到老年代的?

4、Minor GC 和 Major GC的区别是什么?

5、如何对JVM性能调优?


八、常见算法题

请参考如下地址:常见算法编程题


PS : 如果我的文章对你有帮助,请帮忙点一个赞哟~~~ღ( ´・ᴗ・` )

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

  • 1.负数左边,正数右边,且相对位置不变 解决办法,冒泡+从右向左,大段大段的交换 public class Sol...
    张佳奇阅读 354评论 0 0
  • 目录 1. 栈和队列1.用两个队列实现栈2.用两个栈实现队列3.实现一个栈,可以用常数级时间找出栈中的最小值4.判...
    MigrationUK阅读 3,107评论 4 20
  • 从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = ...
    拼搏男孩阅读 660评论 0 0
  • Part 1.生产者-消费者问题 这绝对是属于重点了,不管是考察对于该重要模型的理解还是考察代码能力,这都是一道很...
    程序员日常填坑阅读 253评论 0 1
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,782评论 28 54

友情链接更多精彩内容