Java面试题目录

1、Java基础

1.1、ConcurrentHashMap的底层实现,jdk1.7和jdk1.8的区别,锁方面的优化;

ConcurrentHashMap底层实现原理(JDK1.7 & 1.8) - 简书 (jianshu.com)

1.2、GC的原理,涉及到的算法有哪些,GC调优怎么处理;

老大难的Java GC原理和调优,看这篇就够了 - 分布式系统架构 - 博客园 (cnblogs.com)

JVM基础系列:G1垃圾回收器 - 梅晓煜 - 博客园 (cnblogs.com)

1.3、ArrayList和LinkedList的区别是什么,底层实现是什么;

Java中ArrayList与LinkedList的区别 - 知乎 (zhihu.com)

1.4、jvm内存模型,以及jvm如何加载class文件;

JVM内存模型及类加载运行机制_凌兮~的博客-CSDN博客

1.5、线程和进程的区别是什么;

线程和进程有什么区别 - bwinLv - 博客园 (cnblogs.com)

1.6、jvm调优有哪些方面,包含了哪些参数;

Java面试复习总结(JVM篇9)——JVM常用参数以及调优实践-CSDN博客

1.7、Java类加载器有几种;

(47条消息) 深入理解Java类加载器(ClassLoader)_zejian_的博客-CSDN博客_java类加载器

1.8、jit是什么;即时编译器(Just In Time Compiler,下文统称JIT编译器)

java中的即时编译(JIT)简介 - 老魏去东 - 博客园 (cnblogs.com)

1.9、spi;

Java SPI详解 - jy的blog - 博客园 (cnblogs.com)

Java SPI 与 Dubbo SPI 有什么区别? - Java技术栈 - 博客园 (cnblogs.com)

1.10、jmx;

(47条消息) Java JMX 使用_shpunishment的博客-CSDN博客

1.11、数据结构

红黑树与B树、B+树_红黑树和b树和b+树的区别-CSDN博客

1.12、内存溢出cpu飚高的解决办法

CPU&内存GC分析和JVM调参 - 扰扰 - 博客园 (cnblogs.com)

2、spring

2.1、spring的生命周期,或者说bean的生命周期;

一文读懂 Spring Bean 的生命周期_老周聊架构的博客-CSDN博客_springbean生命周期详解

2.2、spring循环依赖怎么解决,spring三层缓存机制;

2.3、springboot是如何实现自动装配的;

(47条消息) springboot自动装配_csdn_freak_dd的博客-CSDN博客

2.4、spring常用的注解有哪些;

@Condition(条件判断)、@ConditionalOnMissingBean、

2.5、springmvc生命周期:

(47条消息) SpringMVC的生命周期_风神修罗使的博客-CSDN博客

3、并发编程

3.1、cas、synchronized 和 volatile的区别和原理;

(47条消息) synchronized、volatile以及CAS的区别_大当家_白的博客-CSDN博客_synchronized、volatile、cas 比较

cas能保证线程安全,volatile只能保证线程间可见,线程不安全

3.2、sychronized锁及锁升级

深入理解synchronized底层原理,一篇文章就够了! - 腾讯云开发者社区-腾讯云 (tencent.com)

3.2、aqs的原理及相关实现类;

从ReentrantLock的实现看AQS的原理及应用 - 美团技术团队 (meituan.com)

3.3、阻塞队列有哪些,线程工具类有哪些,例如condition;

3.3、可重入锁、乐观锁、悲观锁、红黑锁、公平锁和非公平锁的机制;

Java中的锁机制 -- 乐观锁、悲观锁、自旋锁、可重入锁、读写锁、公平锁、非公平锁、共享锁、独占锁、重量级锁、轻量级锁、偏向锁、分段锁、互斥锁、同步锁、死锁、锁粗化、锁消除_java四种锁机制-CSDN博客

3.4、线程池相关内容,线程池类型及相关参数;

Java面试-03多线程 - 扰扰 - 博客园 (cnblogs.com)

FixedThreadPool-CSDN博客

3.5、线程池拒绝策论;

(47条消息) java线程池的四种拒绝策略_TTODS.的博客-CSDN博客

4、redis

4.1、redis的集群方式(cloud哨兵模式);

4.2、redis雪崩和击穿的处理方式;

【Redis】缓存穿透、缓存击穿、缓存雪崩的原因及解决方案-CSDN博客

4.3、redis的使用场景是什么;

4.4、redis如果处理缓存数据和持久化数据的同步问题;

5、mysql

5.1、关于sql慢查询的处理方式;

5.2、关于聚合索引和非聚合索引的区别;

5.2.1、联合索引查询的问题及联合索引的建立过程

MySQL索引之联合索引_mysql 联合索引-CSDN博客

5.3、事务管理及mvcc机制

MySQL事务&&锁&&MVCC (baidu.com)

5.4、如何做数据库优化;

in查询需要少于1000的对象,要不然速度很慢

5.5、MyBatis一级缓存和二级缓存;

MyBatis基础应用 (四)——一篇文章从底层彻底弄明白MyBatis一级缓存和二级缓存_mybatis进行1级缓存查询时不会打印sql日志吗-CSDN博客

5.6、MyBatis注意事项

1、查询海量数据时需要使用游标,要不然内存占用高。MyBatis 3.2 以上版本支持游标,允许逐行处理结果集。

5.7、日志类型和作用

了解mysql三大日志:binlog、redolog、undolog_在mysql中,undo_log,redo_log,bin_log是不是都必须存在,能不能少一个或两-CSDN博客

5.8、mysql锁机制

MySQL锁篇 - 知乎 (zhihu.com)

6、消息队列(rabbitMQ为例)

6.1、消息队列的使用场景;

6.2、如何处理重复消息的问题;

RabbitMQ重复消费-CSDN博客

6.3、消息队列的有哪些主要对象

(vhost:虚拟主机、Exchange:消息交换机、Queue:消息队列载体、Binding:绑定、Routing Key:路由关键字、producer:消息生产者、consumer:消息消费者、channel:消息通道、Broker:简单来说就是消息队列服务器实体)

6.4、死信队列

6.5、顺序消费

RabbitMQ顺序消费-CSDN博客

7、ElasticSearch

Elasticsearch面试题汇总与解析-CSDN博客

7.1、基本概念;

7.2、倒排索引的概念;

7.3、数据同步的问题;

7.4、数据只读不写问题

es默认磁盘超过80%,就只能读,不能写。需要修改配置

8、zookeeper

8.1、zookeeper的节点类型,

临时节点、临时有序节点、持久节点、持久有序节点;

8.2、zookeeper的监听机制;

9、dubbo

9.1、dubbo的负载均衡策略;

9.2、dubbo的服务注册和发现,check=fasle设置问题;

9.3、dubbo支持的协议类型

dubbo 支持的9种协议_mb63f320ecc1fa6的技术博客_51CTO博客

9.4、dubbo支持的序列化类型

Dubbo的多种序列化算法-腾讯云开发者社区-腾讯云 (tencent.com)

10、设计模式有哪些?

24种设计模式 - 简书 (jianshu.com)

11、使用过哪些算法

堆排序、快排、空间规划算法D1

排序算法之快速排序、堆排序_快速排序和堆排序-CSDN博客

12、分布式锁的实现

什么是分布式锁?实现分布式锁的三种方式 - 刘清政 - 博客园 (cnblogs.com)

12.1、通过zookeeper实现,涉及到哪些问题,怎么解决;

12.3、通过redis实现,涉及到哪些问题,怎么解决;

13、分布式事务

两段式提交

分布式事务:seata_分布式事务seata-CSDN博客

posted @ 2022-09-24 11:05  扰扰  阅读(52)  评论(0编辑  收藏  举报