【java】常见面试题目

一、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性能调优?

八、常见算法题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值