Java面试题集锦

1. 计算机网络

1、什么是计算机网络

2、什么是协议

3、什么是IP地址

4、什么是子网

5、什么是DNS

6、什么是NAT

7、什么是带宽和延迟

8、什么是VPN

9、路由器和交换机的区别

10、OSI与TCP/IP模型

11、TCP与UDP的区别

12、TCP三次握手四次挥手

13、HTTP和HTTPS的区别

14、HTTPS连接建立的过程

15、对称加密和非对称加密

16、GET和POST请求的区别

17、HTTP常见响应状态码

18、转发和重定向的区别

19、Cookie和Session的区别

20、浏览器输入Url后的过程

21、什么是DDoS攻击

22、什么是SSL/TLS

23、什么是跨域

2. Linux

1、什么是Linux

2、什么是Linux内核

3、Linux基本组件

4、进程和线程的区别

5、用户态和内核态

6、操作系统的内存管理

7、Linux常用命令

8、查看当前运行进程

9、查看磁盘使用情况

10、查看内存使用情况

11、查看修改文件权限

12、查看网络接口状态

13、挂载文件系统

3. Java基础

1、八大基础类型

2、Java三大特性

3、重载和重写的区别

4、public、protected、(default)不写、private修饰符的作用范围

5、==和equals的区别

6、hashcode()值相同,equals就一定为true

7、为什么重写equals(),就要重写hashCode()?

8、&和&&的区别

9、String、StringBuilder、StringBuffer的区别

10、String rap = new String("ctrl");创建了几个对象

11、什么是反射

12、浅拷贝和深拷贝的区别

13、构造器能被重写吗

14、并发和并行

15、实例变量和类变量

16、抽象类和接口的区别

17、Error和Exception的区别

18、如果try里有一个return语句,那么finally里的代码会不会被执行,什么时候被执行,return前还是后

19、final关键字有哪些用法

20、jdk1.8的新特性

21、throw和throws的区别

22、说一下你熟悉的设计模式

23、实例化对象有哪几种方式

24、java中什么样的类不能被实例化

25、序列化和反序例化,序列化的优点

26、什么是单点登录,实现单点登录的方式

27、如何防止表单提交

28、泛型是什么?有什么好处

29、值传递和引用传递

30、什么是字节码?采用字节码的最大好处是什么

31、final、finally、finalize的区别

32、this、super关键字用法

33、static存在的意义

34、break、contine、return的区别及作用

35、面向对象和面向过程的区别

36、面向对象五大基本原则

37、什么是内部类,什么是匿名内部类

38、java中IO流分为几种

39、BIO、NIO、AIO有什么区别

40、java获取反射的三种方法

41、什么是字符串常量池,String是最基本的数据类型吗

42、String有哪些特性,String为什么是不可变的

43、说一下自动装箱与拆箱

44、Integer a = 127与Integer b = 127相等吗

45、Java和C++的区别

46、静态方法和实例方法的区别

47、Java中继承和实现的区别

48、什么是面向对象编程(OOP)

49、Java中面向对象的四大基本特征是什么

50、什么是JVM、JRE、JDK

4. Java集合

1、什么是集合,集合的特点,它包含哪些主要接口

2、集合和数组的区别

3、常用的集合类有哪些

4、List,Set,Map三者的区别?List、Set、Map是否继承自Collection接口?存取元素时,各有什么特点

5、集合框架底层数据结构

6、哪些集合类是线程安全的

7、什么是fail-fast,什么是fail-safe

8、怎么确保一个集合不能被修改

9、什么是迭代器Iterator,有什么特点

10、如何边遍历边移除Collection中的元素,为什么

11、Iterator和ListIterator有什么区别

12、遍历List有哪几种方式,实现原理是怎样的

13、说一下ArrayList的优缺点

14、ArrayList 和 LinkedList的区别是什么

15、如何实现数组和List之间的转换

16、ArrayList和Vector的区别是什么

17、插入数据时,ArrayList、LinkedList、Vector谁速度快,为什么

18、多线程场景下如何使用ArrayList

19、为什么ArrayList的elementData加上transient修饰

20、ArrayList扩容机制是什么?扩容过程是怎样的

21、List和Set的区别

22、说一下HashSet的实现原理

23、HashSet如何检查重复?HashSet是如何保证数据不可重复的

24、HashCode和Equals的相关规定

25、HashSet 和 TreeSet的区别是什么,HashSet和HashMap的区别

26、BlockingQueue是什么

27、PriorityQueue是什么

28、在Queue中poll()和remove以及add()和offer()有什么区别

29、说一下HashMap的实现原理

30、HashMap在JDK1.7和JDK1.8中有哪些不同

31、HashMap的put方法的具体流程

32、HashMap的扩容操作是怎么实现的

33、HashMap是怎么解决哈希冲突的

34、什么是哈希?什么是哈希冲突

35、HashMap的数据结构

36、Hash函数是什么

37、能否使用任何类作为Map的key

38、为什么HashMap中的String、Integer这样的包装类适合作为Key

39、HashMap为什么不直接使用HashCode处理后的哈希值直接作为table的下标

40、HashMap的长度为什么是2的幂次方,为什么是两次扰动?

41、HashMap和HashTable的区别

42、如何决定使用HashMap还是TreeMap

43、HashMap和ConcurrentHashMap的区别

44、ConcurrentHashMap和Hashtable的区别

45、ConcurrentHashMap底层实现原理,JDK1.7和JDK1.8的区别

46、Array和ArrayList有何区别

47、如何实现Array和List之间的转换

48、什么是Comparable和Comparator,它们的区别是什么

49、Collection和Collections有什么区别

50、TreeMap和TreeSet在排序时如何比较元素,Collections工具类中的sort()方法如何比较元素

51、ConcurrentHashMap,为什么用synchronized代替ReentrantLock

52、Hash为什么使用链表、红黑树,为什么不一上来就使用红黑树

53、说说你对红黑树的理解

54、为什么链表长度大于8,并且表的长度大于64的时候,链表会转换成红黑树

55、为什么转成红黑树是8呢?而重新转为链表阈值是6呢

56、为什么负载因子是0.75?

57、HashMap什么时候会扩容,为什么不是满了扩容

58、HashMap的扩容过程

59、HashMap的头插法和尾插法,为什么要从头插法改为尾插法?

60、如何使HashMap线程安全

61、什么是ConcurrentModificationException,如何避免它

5. Java异常

1、说一下Java异常机制

2、Error和Exception区别是什么

3、运行时异常和一般异常(受检异常)区别是什么

4、JVM是如何处理异常的

5、throw 和 throws的区别是什么

6、final、finally、finalized有什么区别

7、NoClassDefFoundError 和 ClassNotFoundException区别

8、try、catch、finally中哪个部分可以省略

9、try-catch-finally中,如果catch中return了,finally还会执行吗

10、常见的RuntimeException有哪些

11、Java常见异常有哪些

12、Java异常最佳实践

13、为什么优先捕获最具体的异常

14、为什么不要捕获Throwable类

15、为什么不要记录并抛出异常

16、什么是异常?Java中的异常分类有哪些

17、什么是try-with-resources语句?它的作用是什么

18、可以只写try块而不写catch或finally块吗

19、自定义异常如何实现

20、什么是多异常捕获(Multi-catch)?它在什么情况下使用

21、什么是链式异常

6. Java并发

1、并发编程的优缺点

2、并发编程三要素是什么?在Java程序中怎么保证多线程的运行安全

3、并行和并发有什么区别

4、什么是线程?线程和进程的区别是什么

5、什么是线程安全?如何实现线程安全

6、什么是上下文切换

7、守护线程和用户线程有什么区别

8、如何查找哪个线程cpu利用率最高

9、什么是线程死锁

10、形成死锁的四个必要条件是什么

11、如何避免线程死锁,死锁与活锁的区别,死锁与饥饿的区别

12、创建线程有哪几种方式

13、说一下runnable和callable有什么区别

14、线程的run()和start()有什么区别

15、为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法

16、什么是Callable和Futrue

17、什么是FutrueTask

18、说说线程的生命周期及五种基本状态

19、Java中用到的线程调度算法是什么

20、线程的调度策略

21、什么是线程调度器和时间分片

22、请说出与线程同步以及线程调度相关的方法

23、sleep()和wait()有什么区别

24、你是如何调用wait()方法的?使用if块还是循环?为什么?

25、为什么线程通信的方法wait(),notify()和notifyAll()被定义在Object类里

26、为什么wait(),notify()和notifyAll()必须在同步方法或者同步块中被调用

27、Thread类中的yield方法有什么作用

28、为什么Thread类的sleep()和yield()方法是静态的

29、线程的sleep()方法和yield()方法有什么区别

30、如何停止一个正在运行的线程

31、Java中interrupted和isInterrupted方法的区别

32、什么是阻塞式方法

33、Java中你怎样唤醒一个阻塞的线程

34、notify和notifyAll有什么区别

35、如何在两个线程间共享数据

36、Java如何实现多线程之间的通讯和协作

37、同步方法和同步块,哪个是更好的选择?

38、什么是线程同步和线程互斥,有哪几种实现方式

39、在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同步

40、如果你提交任务时,线程池队列已满,这时会发生什么

41、什么叫线程安全?servlet是线程安全的吗

42、在Java程序中怎么保证多线程的运行安全

43、你对线程优先级的理解是什么

44、线程类的构造方法、静态块是被哪个线程调用的

45、Java中怎么获取一份线程dump文件?你如何在Java中获取线程堆栈

46、一个线程运行时发生异常会怎样

47、Java线程数过多会造成什么异常?

48、什么是线程池?为什么要使用线程池,有哪几种创建方式

49、线程池有哪些状态

50、什么是Executor框架?为什么使用Executor框架

51、在Java中Executor和Executors的区别

52、线程池中submit()和execute()方法有什么区别

52、Executors和ThreadPoolExecutor创建线程池的区别

53、ThreadPoolExecutor构造函数重要参数分析

53、说一下线程池的工作原理

54、线程池有哪些拒绝策略

55、说一下ScheduledThreadPoolExecutor

56、说一下FutrueTask

57、什么是Fork/Join框架

58、说一下CompletableFutrue异步编排

59、如何设置线程池的参数

60、常用的并发工具类有哪些

61、并发工具类CountDownLatch、Semaphore、CycliecBarrier解析

62、什么是线程间交换数据工具Exchanger

63、什么是原子操作,Java Api中有哪些原子类

64、说一下atomic的原理

65、说一下Java内存模型JVMM,为什么要有JMM,用来解决什么问题

66、Java中垃圾回收有什么目的?什么时候进行垃圾回收

67、如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?

68、finalize()方法什么时候被调用?析构函数(finalization)的目的是什么

69、为什么代码会重排序?

70、as-if-serial规则和happens-before规则的区别

71、synchronized的作用

72、说说自己是怎么使用synchronized关键字,在项目中用到了吗

73、说一下synchronized底层实现原理

74、什么是自旋

75、多线程中synchronized锁升级的原理是什么

76、线程B怎么知道线程A修改了变量

77、当一个线程进入一个对象的synchronized方法A之后,其他线程是否可进入此对象的synchronzed方法B

78、synchronized、volatile、CAS比较

79、synchronized 和 Lock有什么区别

80、synchronized 和 ReentrantLock 区别是什么

81、volatile 关键字的作用

82、Java中能创建 volatile数组吗

83、volatile变量和atomic变量有什么不同

84、volatile能使得一个非原子操作变成原子操作吗

85、项目中有没有用过volatile

86、transient关键字的作用?

87、synchronized 和 volatile的区别是什么

88、volatile底层原理,禁止指令重排原理

89、final关键字作用,什么是不可变对象,它对写并发应用有什么帮助

90、Java中的Lock接口是什么,对比同步它有什么优势

91、乐观锁和悲观锁的理解及如何实现,有哪些实现方式

92、什么是CAS

93、CAS会产生什么问题

94、多线程锁的升级原理是什么

95、介绍下AQS

96、AQS原理分析

97、ReentrantLock实现原理

98、什么是可重入锁,公平锁和非公平锁实现原理

99、读写锁RentrantReadWriteLock原理分析

100、Condition原理分析与等待通知机制

101、说一下LockSupport

102、说一下Unsafe类

103、SynchronizedMap和ConcurrentHashMap有什么区别

104、Java中ConcurrentHashMap的并发度是什么

105、Java中的同步集合与并发集合有什么区别

106、CopyOnWriteArrayList是什么,可以用于什么场景,有哪些优缺点

107、ThreadLocal是什么?有哪些使用场景

108、什么是线程局部变量

109、ThreadLocal造成内存泄漏的原因

110、ThreadLocal内存泄漏解决方案

111、说一下强引用、软引用、弱引用、虚引用

112、怎么解决父子线程以及线程池之间的值传递问题

113、有没有遇到线程池之间传递变量不生效问题

114、说一下InhitableThreadLocal以及TTLThreadLocal

115、什么是阻塞队列

116、阻塞队列的实现原理是什么

117、如何使用阻塞队列来实现生产者-消费者模型

118、详细介绍下ArrayBlockingQueue与LinkedBlockingQueue

119、详细介绍下ConcurrentLinkedQueue

120、shutdown和shutdownNow的区别

121、JMM的约定,JMM的八个命令

122、说一下悲观锁和乐观锁,以及使用场景

123、说一下自旋锁和自适应自旋锁

124、无锁、偏向锁、轻量级锁、重量级锁

125、说一下公平锁和非公平锁

126、说一下可重入锁,synchronized和ReentanLock是否是可重入锁

127、说一下独享锁和共享锁

128、说一下互斥锁和读写锁

129、说一下分段锁

130、说一锁优化技术

7. Java虚拟机

1、什么是JVM,它的主要组成部分有哪些

2、JVM内存结构是怎样的

3、什么是垃圾回收?JVM中的垃圾回收算法有哪些

4、JVM中的垃圾收集器有哪些?它们的特点是什么

5、说一下CMS垃圾收集器

6、说一下G1垃圾收集器

7、堆内存和栈内存的区别是什么

8、如何监控和调试JVM的性能

9、在JVM中如何进行内存调优

10、什么是类加载机制?JVM中的类加载器有哪些

11、类加载的过程是怎样的

12、什么是双亲委派模型

13、如何分析和解决内存泄漏和内存溢出问题

14、什么是即时编译器(JIT)

15、简述垃圾回收机制

16、GC是什么?为什么要GC

17、垃圾回收器的基本原理?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收

18、Java中有哪些引用类型

19、怎么判断对象是否可以被回收

20、在Java中,对象什么时候可以被垃圾回收

21、JVM中的永久代中会发生垃圾回收吗

22、新生代垃圾收集器和老年代垃圾收集器都有哪些,有什么区别

23、简述分代垃圾收集器是怎么工作的

24、简述Java内存分配策略

25、描述一下JVM加载Class文件的原理机制

26、说一下JVM调优的工具

27、常用的JVM调优的参数都有哪些

28、说一下YoungGC和Full GC,什么情况下会发生Full GC

29、说一下内存溢出(OOM)和栈溢出(StackOverFlow)

30、说一下CPU和Load

8. Mysql

1、什么是数据库?什么是数据库管理系统(DBMS)

2、什么是Mysql,它有什么主要特点

3、什么是SQL,常用的SQL命令有哪些?DDL、DML、DCL、TCL

4、什么是主键、外键、唯一键

5、什么是索引?索引的类型有哪些

6、什么是事务?事务的四大特性(ACID)是什么

7、如何在Mysql中实现事务

8、什么是存储过程和触发器

9、什么是联合查询?如何使用,内连接,左连接,右连接,全外连接

10、什么是视图?如何创建和使用视图

11、如何优化Mysql查询性能,进行SQL调优

12、什么是主从复制?它的工作原理是什么

13、数据库三大范式是什么

14、Mysql的binlog有几种录入格式?分别有什么区别

15、Mysql存储引擎MyISAM与InnoDB区别

16、MyISAM索引与InnoDB索引的区别

17、InnoDB引擎的四大特性

18、索引的数据结构,B+树原理?

19、索引的基本原理,怎么避免索引失效

20、索引的设计原则

21、使用索引查询一定能提高查询性能吗

22、百万级别或以上的数据如何删除

23、什么是最左前缀原则?什么是最左匹配原则

24、B树和B+树的区别

25、使用B树的好处,B+树的好处

26、Hash索引和B+树索引有什么区别或者优劣

27、数据库为什么使用B+树而不是B树

28、B+树在满足聚簇索引和覆盖索引的时候不需要回表查询数据?

29、什么是聚簇索引?何时使用聚簇索引与非聚簇索引

30、非聚簇索引一定会回表查询吗

31、联合索引是什么?为什么需要注意联合索引中的顺序

32、什么是脏读?幻读?不可重复读?

33、Mysql事务隔离级别有哪些,Mysql的默认隔离级别是什么,为什么

34、Mysql四大特性怎么实现的,或怎么保证的

35、Mysql事务实现原理

36、对Mysql的锁了解吗

37、隔离级别与锁的关系

38、按照锁的粒度,数据库锁有哪些

39、从锁的类别上分Mysql有哪些锁?会不会影响并发效率

40、Mysql中InnoDB引擎的行锁是怎么实现的

41、InnoDB存储引擎的锁的算法有几种

42、什么是死锁?怎么解决

43、数据库的乐观锁和悲观锁是什么?怎么实现的

44、Mysql中的in和exists区别

45、什么是子查询,子查询的三种情况

46、drop、delete与truncate的区别

47、union与union all的区别

48、说一下MVCC机制

49、说一下redo log,undo log,binlog以及它们的区别,写入顺序

50、Mysql Buffer Pool是什么

51、如何定位及优化SQL语句的性能,创建的索引有没有被用到

52、SQL的生命周期

53、大表数据查询,怎么优化

54、超大分页怎么处理

55、慢查询日志怎么分析

56、关心过业务系统里面的sql耗时吗,统计过慢查询吗,对慢查询都怎么优化

57、为什么要尽量设定一个主键

58、主键使用自增ID还是UUID

59、如何优化关联查询、子查询、limit分页,union查询,where子句查询

60、Mysql数据库cpu飙升到500%,怎么处理

61、大表怎么优化,某个表有近千万数据,CRUD比较慢,如何优化

62、分库分表是怎么做的,分库分表后会有什么问题

63、分库分表用到了什么中间件,它们的原理知道吗

64、说一下垂直分表和水平分表,适用场景及优缺点

65、读写分离有哪些解决方案

66、数据表损坏的修复方式有哪些

9. Redis

1、什么是Redis

2、Redis有哪些优缺点

3、为什么要用缓存?为什么要用Redis?

4、为什么要用Redis而不用Map/Guava做缓存

5、Redis为什么这么快

6、Redis有哪些数据类型

7、Redis的应用场景

8、什么是Redis持久化

9、Redis的持久化机制是什么?各自的优缺点

10、如何选择合适的持久化方式

11、Redis持久化数据和缓存怎么做扩容

12、Redis的过期键的删除策略

13、Redis key的过期时间和永久有效分别怎么设置

14、我们知道通过expire来设置key的过期时间,那么对过期的数据怎么处理呢

15、Mysql里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据

16、Redis的内存淘汰策略有哪些

17、Redis主要消耗什么物理资源

18、Redis的内存用完了会发送什么

19、Redis如何做内存优化

20、说一下Redis的线程模型

21、什么是Redis事务

22、Redis事务的概念

23、Redis事务的三个阶段

24、Redis事务相关命令

25、事务管理(ACID)概述

26、Redis事务支持隔离性吗

27、Redis事务保证原子性吗,支持回滚吗

28、Redis事务其他实现

29、说一下Redis的哨兵模式

30、说一下Redis Cluster方案

31、说一下Redis主从架构

32、Redis集群的主从复制模型是怎样的

33、生产环境中的Redis是怎么部署的

34、说一下Redis哈希槽的概念

35、Redis集群会有写操作丢失吗?为什么?

36、Redis集群之间是如何复制的

37、Redis集群最大节点个数是多少

38、Redis集群如何选择数据库

39、Redis是单线程的,如何提高多核CPU的利用率

40、为什么要做Redis分区

41、你知道有哪些Redis分区实现方案

42、Redis分区有什么缺点

43、Redis实现分布式锁原理

44、如何解决Redis的并发竞争Key问题

45、分布式Redis是前期做还是后期规模上来了再做好?为什么?

46、什么是Redisson,实现原理是什么

47、说一下Redisson看门狗机制,锁一般锁多久

48、什么是缓存穿透、缓存雪崩、缓存击穿?解决方案有哪些

49、说一下缓存预热?缓存降级

50、说一下热点数据和冷数据

51、说一下缓存热点key

52、Redis支持的Java客户端都有哪些?官方推荐用哪个

53、Redis和Redisson有什么关系

54、Jedis和Redisson对比有什么优缺点

55、Redis和Memcached的区别

56、如何保证缓存与数据库双写时的数据一致性

57、说一下双写模式和失效模式,以及问题

58、说一下延时双删方案

59、Redis常见性能问题和解决方案

60、Redis如何做大量数据插入

61、假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如何将它们全部找出来

62、使用Redis做过异步队列吗,是如何实现的

63、Redis如何实现延时队列

64、Redis回收进程如何工作的

65、Redis回收使用的是什么算法

66、Redis遇到Hash冲突怎么办

67、什么是热点Key 问题,如何解决热点Key问题

68、Redis中的哨兵选举算法是如何实现的

69、为什么Redis集群的最大槽树是16384个

10. Elasticsearch

1、什么是Elasticsearch

2、Elasticsearch的核心概念有哪些

3、什么是分片(Shard)和副本(Replica)

4、说一下Elasticsearch的倒排索引,它和正排索引有什么区别

5、Elasticsearch的查询和过滤器有什么区别

6、什么是Elasticsearch的映射(Mapping)

7、Elasticsearch如何实现分布式搜索

8、什么是Elasticsearch的聚合(Aggregation)

9、如何优化Elasticsearch的索引性能

10、如何优化Elasticsearch的搜索性能

11、什么是Elasticsearch的分片分配

12、如何监控Elasticsearch集群的健康状态

13、Elasticsearch如何处理数据丢失

14、Elasticsearch 和传统关系型数据库的区别是什么

15、如何在Elasticsearch中实现全文搜索

16、如何实现Elasticsearch的安全和权限管理

17、Elasticsearch的角色和用户管理如何实现

18、如何在Elasticsearch中实现地理位置查询

19、如何在Elasticsearch中处理大数量的索引和查询

20、详细说下Elasticsearch深分页问题以及滚动搜索,Scroll、SearchAfter

21、Elasticsearch在高并发下如何保证读写一致的

22、说一下Elasticsearch的写入流程

23、说一下Elasticsearch的更新和删除流程

24、按照query和fetch两阶段,介绍下es搜索流程

25、建立索引阶段性能提升方法

26、Elasticsearch的分布式原理

27、Elasticsearch是如何选举Master的

28、Elasticsearch是如何避免脑裂的

11. RabbitMQ

1、为什么使用MQ?MQ的优点

2、消息队列有什么优缺点?RabbitMQ有什么优缺点

3、你们公司生产环境用的是什么消息中间件

4、Kafka、ActiveMQ、RabbitMQ、RocketMQ有什么优缺点

5、MQ有哪些常见问题?如何解决这些问题?

6、什么是RabbitMQ?

7、RabbitMQ的使用场景

8、RabbitMQ的基本概念

9、RabbitMQ的工作模式

10、如何保证RabbitMQ消息的顺序性

11、消息如何分发

12、消息怎么路由

13、消息基于什么传输

14、如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性

15、如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?

16、如何保证RabbitMQ消息的可靠传输

17、为什么不应该对所有的message都使用持久化机制

18、RabbitMQ如何保证高可用

19、如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?

20、有几百万消息持续积压几个小时,说说怎么解决

21、给出一个设计MQ地思路

22、如何保证消息不丢失

23、RabbitMQ支持哪些交换器类型

24、RabbitMQ如何实现消息持久化

25、什么是RabbitMQ的确认机制(Acknowledgment)

26、什么是RabbitMQ的死信队列

27、如何优化RabbitMQ的性能

28、什么是prefetch参数,如何使用

29、如何在RabbitMQ中实现消息的延迟投递

30、RabbitMQ如何实现负载均衡

31、RabbitMQ的安全和权限管理如何实现

32、如何保证RabbitMQ的高可用性(HA)

33、RabbitMQ的镜像队列和普通队列有什么区别

34、如何监控RabbitMQ

35、如何在RabbitMQ中处理消息的重试机制

36、如何在RabbitMQ中实现优先级队列

12. RocketMQ

1、什么是RocketMQ

2、RocketMQ的主要组件有哪些

3、RocketMQ是如何保证消息顺序的

4、RocketMQ中的生产者如何发送消息

5、RocketMQ中消费者的消费模式有哪些

6、什么是消息过滤?RocketMQ如何实现消息过滤

7、RocketMQ的消息存储机制是怎样的

8、RocketMQ如何实现高可用性

9、RocketMQ的消息重试机制是怎样的

10、如何优化RocketMQ的性能,性能优化措施有哪些

11、如何监控RocketMQ的状态和性能

12、如何处理消息堆积问题

13、如何保证消息的幂等性

14、RocketMQ支持哪些协议

15、RocketMQ的事务消息是什么,详细说一下

16、什么是RocketMQ的顺序消息

17、如何解决消息丢失问题

18、什么是死信队列(DLQ)

19、RocketMQ的架构组成部分有哪些

20、RocketMQ支持哪几种消息模型

21、RocketMQ事务消息的工作原理是什么

22、如何理解RocketMQ的Rebalance机制

23、RocketMQ如何实现消息的持久化与缓存

13. Dubbo

1、什么是Dubbo

2、Dubbo的核心功能有哪些

3、Dubbo的架构设计有哪些主要组件

4、Dubbo的服务注册与发现是如何实现的

5、如何在Dubbo中配置服务提供者和消费者

6、Dubbo支持哪些负载均衡策略,如何实现服务的负载均衡

7、如何实现服务降级

8、如何实现服务的熔断与限流

9、如何监控Dubbo服务的性能

10、如何进行Dubbo服务的性能调优

11、如何处理Dubbo服务的版本控制

12、如何实现服务的灰度发布

13、当服务提供者挂掉时,消费者如何处理

14、如何处理Dubbo的依赖冲突问题

15、Dubbo的工作流程是怎样的

16、Dubbo如何实现容错处理

17、Dubbo的注册中心是什么

18、Dubbo中的动态代理是怎么实现的

14. Nginx

1、什么是Nginx

2、Nginx有哪些主要功能

3、Nginx的架构设计有哪些主要组件

4、Nginx如何处理一个Http请求

5、如何配置Nginx的虚拟主机

6、如何在Nginx中配置反向代理

7、如何优化Nginx的性能

8、如何配置Nginx的缓存

9、如何配置Nginx的SSL/TLS

10、如何防止Nginx的DDoS攻击

11、如何在Nginx中配置负载均衡

12、如何实现Nginx的日志切割

13、如何配置Nginx的重定向

14、如何配置Nginx的静态文件服务

15、Nginx中的四种负载均衡策略是什么

16、如何配置Nginx的Http基本认证

17、如何配置Nginx的访问日志和错误日志

18、如何排查Nginx的502 Bad Gateway错误

19、如何处理Nginx的Worker进程异常退出

20、如何在Nginx中配置动静分离

21、如何配置Nginx的静态文件服务

22、如何配置Nginx的负载均衡健康检查

15. Tomcat

1、什么是Tomcat

2、Tomcat的主要功能有哪些

3、Tomcat的架构设计有哪些主要组件

4、Tomcat如何处理一个Http请求

5、如何配置Tomcat的服务器端口

6、如何在Tomcat中配置虚拟主机

7、如何调优Tomcat的性能

8、如何配置Tomcat的SSL/TLS

9、如何防止Tomcat的目录列表显示

10、如何处理Tomcat的内存泄漏问题

11、如何部署一个Web应用到Tomcat

12、如何配置Tomcat的日志

13、如何在Tomcat中配置数据源

14、如何配置Tomcat的集群

15、Tomcat的目录结构

16、Tomcat的缺省端口

16. Mybatis

1、Mybatis是什么

2、ORM是什么

3、为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里

4、传统JDBC开发存在的问题

5、JDBC编程有哪些不足之处,Mybatis是如何解决这些问题

6、Mybatis优缺点

7、Mybatis框架适用场景

8、Hibernate 和 Mybatis的区别

9、Mybatis编程步骤是什么样的

10、请说说Mybatis的工作原理

11、Mybatis的功能架构是怎样的

12、Mybatis的框架架构设计是怎么样的

13、为什么需要预编译

14、Mybatis都有哪些Executor执行器?它们之间的区别是什么

15、Mybatis中如何指定使用哪一种Executor执行器

16、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么

17、#{}和${}的区别

18、模糊查询like语句该怎么写

19、在mapper中如何传递多个参数

20、Mybatis如何执行批量操作

21、如何获取生成的主键

22、当实体类中的属性名和表中的字典名不一样,怎么办

23、Mapper编写有哪几种方式

24、什么是Mybatis的接口绑定?有哪些实现方式

25、使用Mybatis的Mapper接口调用时有哪些要求

26、最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗

27、Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

28、简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?

29、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

30、Xml映射文件中,除了常见的select、insert、update、delete标签之外,还有哪些标签

31、Mybatis实现一对一、一对多有几种方式,怎么操作的

32、Mybatis是否可以映射Enum枚举类

33、Mybatis动态sql是做什么的,都有哪些动态sql?能简述一下动态sql的执行原理吗

34、Mybatis是如何进行分页的?分页插件的原理是什么

35、简述Mybatis的插件运行原理,以及如何编写一个插件

36、介绍一下Mybatis的一二级缓存

37、Mybatis映射文件包含哪些内容

38、Mybatis的核心配置文件包含哪些内容

39、Mybatis如何进行事务管理

40、如何优化Mybatis的性能

41、什么是Mybatis的懒加载?如何配置

42、如何处理Mybatis中的嵌套查询

43、如何将Mybatis与Spring集成

17. SpringMVC

1、什么是Spring MVC?简单介绍下你对Spring MVC的理解

2、Spring MVC的优点

3、Spring MVC的主要组件

4、什么是DispatcherServlet

5、什么是Spring MVC框架的控制器

6、Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决

7、请描述Spring MVC的工作流程?描述一下DispatcherServlet的工作流程

8、MVC是什么?MVC设计模式的好处有哪些

9、注解原理是什么

10、Spring MVC常用的注解有哪些

11、Spring MVC中的控制器的注解一般用哪个,有没有别的注解可以替代

12、@Controller注解的作用

13、@RequestMapping注解的作用

14、@RequestBody、@ResponseBody注解的作用

15、@PathVariable和@RequestParam的区别

16、Spring MVC与Struts2区别

17、Spring MVC怎么样设定转发和重定向的

18、Spring MVC怎么和Ajax相互调用的

19、如何解决Post请求中文乱码问题,Get请求又如何处理

20、Spring MVC的异常处理

21、如果在拦截请求中,想拦截get方式提交的方法,怎么配置

22、怎么在方法里面得到Request 或者Session

23、Spring MVC中的拦截器是什么?如何使用

24、如何在Spring MVC中创建Restful服务

25、如何在Spring MVC中实现国际化

26、如何优化Spring MVC的性能

27、如何在Spring MVC中进行单元测试

28、Spring MVC的处理器映射(HandlerMapping)是如何实现的

29、Spring MVC的处理器适配(HandlerAdapter)是如何实现的

30、Spring MVC的视图解析器(ViewResolver)是如何实现的

31、Spring MVC的数据绑定是如何实现的

18. Spring

1、什么是Spring

2、Spring的优缺点是什么,有哪些应用场景

3、Spring由哪些模块组成

4、Spring框架中都用到了哪些设计模式

5、详细讲解一下核心容器(Spring Context应用上下文)模块

6、Spring框架中有哪些不同类型的事件

7、Spring应用程序有哪些不同组件

8、使用Spring有哪些方式

9、什么是Spring IOC容器

10、控制反转(IOC)有什么作用

11、IOC的优点是什么

12、Spring IOC的实现原理

13、Spring 的 IOC支持哪些功能

14、BeanFactory 和 ApplicationContext有什么区别

15、Spring 如何设计容器的,BeanFactory 和ApplicationContext的关系详解

16、ApplicationContext通常的实现是什么

17、什么是Spring的依赖注入(DI)

18、依赖注入的基本原则

19、依赖注入有什么优势

20、有哪些不同类型的依赖注入实现方式

21、构造器依赖注入和Setter方法注入的区别

22、什么是Spring Beans

23、一个Spring Bean定义包含什么

24、如何给Spring 容器提供配置元数据?Spring有几种配置方式

25、Spring配置文件包含了哪些信息

26、Spring基于Xml注入Bean的几种方式

27、你怎样定义类的作用域

28、解释Spring支持的几种Bean的作用域

29、Spring框架中的单例Bean是线程安全的吗

30、Spring如何处理线程并发问题

31、介绍一下Spring中Bean的生命周期

32、哪些是重要的Bean生命周期方法?你能重载它们吗

33、什么是Spring的内部Bean?什么是Spring Inner Beans

34、在Spring中如何注入一个Java集合

35、什么是Bean装配

36、什么是Bean的自动装配

37、介绍一下不同方式的自动装配,Spring自动装配Bean有哪些方式

38、使用@Autowired注解自动装配的过程是怎样的

39、自动装配有哪些局限性

40、你可以在Spring中注入一个null和一个空字符串吗

41、什么是基于Java的Spring注解配置?给一些注解的例子

42、怎样开启注解装配

43、Component,Controller,Repository,Service有何区别

44、Required注解有什么作用

45、Autowire注解有什么作用

46、Autowired和Resource之间的区别

47、Qualifirer注解有什么作用

48、RequestMapping注解有什么作用

49、Spring DAO有什么用

50、Jdbc Template是什么

51、Spring支持的事务管理类型,Spring事务实现方式有哪些

52、Spring事务的实现方式和实现原理

53、说一下Spring的事务传播行为

54、说一下Spring的事务隔离级别

55、Spring框架的事务管理有哪些优点?你更倾向于用哪种事务管理类型

56、哪些场景会导致Spring事务失效

56、什么是AOP

57、Spring Aop和AspectJ Aop有什么区别?Aop有哪些实现方式

58、JDK动态代理和CGlib动态代理的区别

59、如何理解Spring中的代理

60、解释一下Spring Aop里面的几个名词

61、在Spring Aop中,关注点和横切关注的区别是什么

62、Spring通知有哪些类型

63、什么是切面Aspect

64、解释基于Xml Schema方式的切面实现

65、解释基于注解的切面实现

66、有几种不同类型的自动代理

67、Spring有哪几种配置方式

68、如何使用XML配置Spring Bean

69、Spring支持哪几种依赖注入方式

70、Spring的循环依赖是如何解决的,代码中如何避免出现循环依赖

71、Spring常用扩展点

72、实例化和初始化的区别

73、Spring Bean的加载过程是怎样的

74、Spring容器是如何初始化的

75、Spring的IOC容器是如何实现的

76、Spring的依赖注入实现原理是什么

77、Spring的Bean生命周期管理是如何实现的

78、Spring Aop的核心实现原理是什么

79、Spring事务管理的实现原理是什么

80、如何调试Spring源码

19. SpringBoot

1、什么是Spring Boot,主要功能有哪些

2、Spring Boot有哪些优点

3、Spring Boot的核心注解是哪个?它主要由哪几个注解组成的

4、什么是Java Config

5、Spring Boot自动配置原理是什么

6、你如何理解Spring Boot配置加载顺序

7、什么是Yaml

8、Yaml配置的优势在哪里

9、Spring Boot是否可以使用XML配置

10、Spring Boot核心配置文件是什么?bootstrap.properties 和 application.properties有何区别

11、什么是 Spring Profiles

12、如何在自定义端口上运行Spring Boot应用程序

13、如何实现Spring Boot应用程序的安全性

14、比较一下Spring Security 和Shiro各自的优缺点

15、Spring Boot中如何解决跨域问题

16、什么是CSRF攻击

17、Spring Boot中的监视器是什么

18、如何在Spring Boot中禁用 Actuator端点安全性

19、如何监视所有 Spring Boot 微服务

20、什么是WebSockets

21、什么是Spring Data

22、什么是FreeMarker模板

23、什么是Apache Kafka

24、什么是Swagger?你用Spring Boot实现了它吗

25、前后端分离,如何维护接口文档

26、如何重新加载Spring Boot上的更改,而无需重新启动服务器?Spring Boot项目如何热部署

27、你使用了哪些starter maven依赖项

28、Spring Boot中的starter到底是什么

29、spring-boot-starter-parent有什么用

30、Spring Boot打成的jar和普通的jar有什么区别

31、运行Spring Boot有哪几种方式

32、SpringBoot需要独立的容器运行吗

33、开启Spring Boot特性有哪几种方式

34、如何使用Spring Boot实现异常处理

35、如何使用Spring Boot实现分页和排序

36、微服务中如何实现session共享

37、Spring Boot中如何实现定时任务

38、如何在Spring Boot中进行单元测试,如何在Spring Boot中进行Mock测试

39、Spring Boot如何实现外部化配置,Spring Boot的Profile是如何实现的

40、Spring Boot应用程序启动过程是怎样的

41、如何提高Spring Boot应用程序的性能

42、Spring Boot如何启动嵌入式服务器的

43、如何自定义Spring Boot的自动配置

44、如何在Spring Boot启动的时候运行一些特定的代码

45、Spring Boot的全局异常处理

20. SpringCloud

1、什么是Spring Cloud

2、Spring Cloud包含哪些核心组件

3、Spring Cloud中的服务注册与发现是如何实现的

4、Spring Cloud Config是如何实现集中化配置管理的

5、Spring Cloud Gateway是如何实现Api网关的

6、Spring Cloud中的负载均衡是如何实现的

7、Spring Cloud中的熔断器是如何实现的

8、Spring Cloud Stream是如何实现消息驱动微服务的

9、Spring Cloud Sleuth是如何实现分布式跟踪的

10、如何优化Spring Cloud应用的性能

11、Spring Cloud如何实现安全管理

12、Spring Boot和Spring Cloud的区别

13、服务注册和发现是什么?Spring Cloud如何实现

14、Spring Cloud 和Dubbo的区别

15、负载均衡的意义是什么

16、什么是Hystrix,它如何实现容错

17、什么是Open Feign,它的优点是什么

18、什么是Spring Cloud Bus

19、Spring Cloud断路器的作用

20、什么是Ribbon,如何自定义负载均衡

21、什么是Spring Cloud Config

22、什么是Spring Cloud Gateway

23、微服务是什么,什么是SOA

24、你知道哪些RPC框架

25、Eureka包含几个组件

26、Eureka的工作原理

27、说一下CAP理论

28、都是服务注册中心,Eureka比zookeeper好在哪里

29、Nacos和Eureka的区别

30、Ribbon的作用和原理

31、Ribbon和Nginx的区别

32、说一下Feign的作用

33、SpringCloud有几种调用接口方式

34、Ribbon和Feign调用服务的区别

35、说一说什么是服务雪崩

36、什么是服务降级、服务熔断、服务隔离

37、服务降级和服务熔断的区别

38、什么是Zuul微服务网关

39、什么是Zipkin

40、Zipkin和Sleuth的区别和联系

21. SpringCloudAlibaba

1、什么是Spring Cloud Alibaba

2、Spring Cloud Alibaba包含哪些核心组件

3、Nacos是什么,说一下AP还是CP

4、Nacos的服务注册与发现是如何实现的

5、Nacos的配置管理是如何实现的

6、Sentinel是什么

7、Sentinel的流量控制是如何实现的

8、RocketMQ是什么

9、如何在Spring Cloud Alibaba中集成RocketMQ

10、Dubbo是什么

11、如何在Spring Cloud Alibaba中集成Dubbo

12、Seata是什么

13、如何在Spring Cloud Alibaba中集成Seata

14、Seata的核心组件有哪些

15、Seata支持哪些事务模式

16、Seata AT模式的工作原理是什么

17、如何配置Seata的DataSource代理

18、如何处理Seata的事务冲突

19、如何监控Seata的事务状态

20、Seata如何保证数据一致性

21、如何优化Seata的性能

22、Seata如何处理分布式事务的隔离问题

23、Seata如何处理分布式事务的超时问题

24、如何实现Seata的高可用性

25、Seata的容错机制是怎样的

26、项目中为什么不用Seata

22. 分布式系统

1、什么是分布式系统

2、分布式系统的优缺点是什么

3、什么是CAP理论

4、什么是BASE理论

5、分布式系统中的数据一致性问题是什么

6、如何实现分布式系统中的数据一致性

7、什么是分布式事务

8、如何实现分布式事务

9、什么是分布式锁

10、如何实现分布式锁

11、什么是分布式缓存

12、如何实现分布式缓存

13、什么是消息队列

14、如何实现分布式系统中的消息队列

15、什么是服务发现

16、如何实现分布式系统中的服务发现

17、什么是Paxos算法

18、什么是Raft算法

19、如何实现分布式系统的高可用性

20、如何实现分布式系统的容错性

21、分布式系统设计两大思路:中心化和去中心化

22、分布式与集群的区别是什么

23、说一下一致性算法

24、说一下什么是分区容错性

25、分布式事务解决方案有哪些

26、说一下2PC、3PC

27、说一下TCC方案,有哪些问题

28、说一下可靠消息最终一致性

29、说一下本地消息表

30、说一下最大努力通知

23. Docker

1、什么是Docker

2、Docker和虚拟机有什么区别

3、什么是Docker镜像

4、什么是Docker容器

5、如何创建Docker镜像

6、如何运行Docker容器

7、Docker的网络模式有哪些

8、如何在Docker中管理数据

9、什么是Docker Compose

10、如何使用Docker Compose

11、什么是Docker Swarm

12、如何创建Docker Swarm集群

13、如何在Docker Swarm中部署服务

14、什么是Dockerfile

15、什么是多阶段构建

16、如何优化Docker镜像

17、如何调试Docker容器

18、如何确保Docker容器的安全性

19、如何定期更新和修补Docker镜像

20、如何在生产环境中部署Docker应用

21、Docker和Kubernetes的区别和联系

22、Docker镜像和容器的关系

23、Docker数据持久化

24. Kubernetes

1、什么是Kubernetes

2、Kubernetes的核心组件有哪些

3、什么是Pod

4、如何创建Pod

5、什么是ReplicaSet

6、什么是Deployment

7、什么是Service

8、什么是ConfigMap

9、什么是Secret

10、Kubernetes的Service类型有哪些

11、什么是PersistentVolume(PV)

12、什么是PersistentVolumeClaim(PVC)

13、如何在Pod中使用PVC

14、什么是ServiceAccount

15、什么是RBAC(Role-Based Access Control)

16、如何升级Kubernetes集群

17、如何监控Kubernetes集群

18、如何备份和恢复Kubernetes集群

19、什么是CNI(Container Network Interface)

20、如何配置Kubernetes中的持久化存储

21、什么是StatefulSet

22、Kubernetes负载均衡

23、Kubernetes部署实例

24、Kubernetes常用命令

25、如何查看Pod的状态

26、如何实现Pod的水平自动扩缩容

27、如何对Pod进行健康检查

25. Netty

1、Netty是什么

2、Netty的特点是什么

3、Netty的优势有哪些

4、Netty的应用场景有哪些

5、Netty 高性能表现在哪些方面

6、BIO、NIO和AIO的区别

7、NIO的组成

8、Netty的线程模型

9、TCP 粘包/拆包的原因及解决方法

10、什么是Netty的零拷贝

11、Netty中有哪些重要组件

12、Netty发送消息有几种方式

13、默认情况Netty起多少线程?何时启动

14、了解哪几种序列化协议?如何选择序列化协议

15、Netty支持哪些心跳类型设置

16、Netty 和 Tomcat的区别

17、说一下Netty的IO模型

18、说一下Nettty的线程模型,事件驱动模型、Reactor线程模型

19、说一下NIO的组成

20、select、poll、epoll

21、Netty的核心组件有哪些

22、Netty的架构设计是怎样的

23、如何优化Netty的性能

24、Netty如何处理粘包和拆包问题

25、Netty的内存管理是怎样的

26、Netty中的零拷贝机制是怎样的

27、Netty中的Pipeline和Handler是怎样的

28、如何在Netty中实现心跳检测

29、如何在Netty中实现SSL/TLS加密

30、Netty如何处理高并发

31、Netty与传统Socket编程有什么区别

26. DDD

1、什么是领域驱动设计(DDD)

2、领域驱动设计的核心概念有哪些

3、什么是限界上下文(Bounded Context)

4、什么是实体(Entity)

5、什么是值对象(Value Object)

6、什么是聚合(Aggregate)

7、什么是仓储(Repository)

8、什么是工厂(Factory)

9、什么是服务(Service)

10、什么是领域事件(Domain Event)

11、什么是防腐层(Anticorruption Layer)

12、什么是事件溯源(Event Sourcing)

13、什么是CQRS(Command Query Responsibility Segregation)

14、如何选择限界上下文的边界

15、如何处理跨限界上下文的事务

16、如何有效地进行领域建模

17、什么是充血模型(Rich Model)

18、什么是贫血模型(Anemic Model)

19、什么是战略设计(Strategic Design)

20、什么是战术设计(Tractical Design)

21、什么是事件风暴(Event Storming),事件风暴的步骤

22、如何进行微服务的拆分

23、如何在实际项目中落地DDD

24、DDD的落地过程中可能会遇到哪些挑战

25、DDD的分层分包设计,以及各层的职责作用

27. 设计模式

1、什么是设计模式

2、什么是单例模式

3、什么是工厂方法模式

4、什么是抽象工厂模式

5、什么是建造者模式

6、什么是原型模式

7、什么是适配器模式

8、什么是桥接模式

9、什么是组合模式

10、什么是装饰模式

11、什么是外观模式

12、什么是享元模式

13、什么是代理模式

14、什么是责任链模式

15、什么是命令模式

16、什么是解释器模式

17、什么是迭代器模式

18、什么是中介者模式

19、设计模式通常分为几大类?如创建型、结构型、行为型模式

28. 场景设计

1、扫码登录到底是怎么实现的

2、订单超时自动取消功能如何设计

3、怎么理解接口幂等,项目中如何保证接口幂等

4、消息推送中的已读消息和未读消息设计难题

5、布隆过滤器到底是什么东西?它有什么用

6、limit 1000000, 10加载很慢该怎么优化

7、会员批量过期的方案怎么实现

8、什么是幂等?如何解决幂等性问题

9、常见的限流算法有哪些

10、说说你对一致性Hash算法的理解

11、如果让你设计一个秒杀系统,怎么设计

12、如果问你项目的重点和难点,该如何回答

13、来一个亿级数据存储问题讲解,每天新增6000万数据

14、什么情况下会出现Full GC,怎么解决

15、生产环境服务器变慢,如何诊断处理

16、将user表进行了分库分表,那么手机号的唯一索引是不是就失效了

17、在2G大小的文件中,找出高频top100的单词

18、数据量达到多少的时候要开始分库分表

19、表数据量大的时候,影响查询效率的主要原因有哪些

20、应用程序中存在包冲突的情况下,怎么发现和解决

21、如何提升接口的性能

22、对接第三分接口要考虑哪些问题

23、设计一个分布式环境下全局唯一id生产

24、设计一个带有过期时间的LRU缓存

29. 算法设计

1、什么是时间轮,请你说一下你对时间轮的理解

2、什么是令牌桶限流算法

3、请你说一下你对滑动窗口算法的理解

4、简述雪花算法的实现原理

5、SkipList的索引过程,能否越两级搜索

6、对称加密与非对称加密有什么区别

7、敏感数据怎么加解密和传输

8、URL黑名单

9、词频统计

10、重复URL

11、短域名系统

12、手写线程池

13、手写单例

14、手写快排

15、手写消费者生产者模式

16、手写阻塞队列

17、手写多线程交替打印ABC

18、交替打印FooBar

30. 算法模板

1、DFS模板

2、BFS模板

3、二分查找模板

4、动态规划模板

5、贪心算法模板

6、回溯算法模板

7、滑动窗口模板

8、拓扑排序模板

9、快慢指针模板

10、双指针模板

11、优先队列模板

12、并查集模板

13、前缀和模板

14、单调栈模板

15、排序模板

31. 常用函数

1、字符串操作

2、StringBuilder操作

3、数组操作

4、List操作

5、Set操作

6、Map操作

7、Queue操作

8、栈操作

9、链表操作

10、二叉树操作

11、图操作

12、数学操作

13、位操作

14、线程操作

15、同步操作

32. LeetCode

1、两数之和(数组)

2、买卖股票的最佳时机(数组)

3、存在重复元素(数组)

4、除自身以外数组的乘机(数组)

5、最大子序和(数组)

6、反转链表(链表)

7、合并两个有序链表(链表)

8、环形链表(链表)

9、删除链表的倒数第N个节点(链表)

10、相交链表(链表)

11、无重复字符的最长子串(字符串)

12、有效的字母异位词(字符串)

13、有效的括号(字符串)

14、最长回文子串(字符串)

15、实现strStr()(字符串)

16、二叉树的最大深度(树)

17、验证二叉搜索树(树)

18、翻转二叉树(树)

19、二叉树的层序遍历(树)

20、二叉搜索树的最近公共祖先(树)

21、合并k个排序链表(堆)

22、前 K个高频元素(堆)

23、数据流中的中位数(堆)

24、数据流中的第K大元素(堆)

25、滑动窗口最大值(堆)

26、岛屿数量(图)

27、克隆图(图)

28、课程表(图)

29、单词接龙(图)

30、最小生成树(图)

31、爬楼梯(动态规划)

32、打家劫舍(动态规划)

33、最长上升子序例(动态规划)

34、单词拆分(动态规划)

35、零钱兑换(动态规划)

36、跳跃游戏(贪心算法)

37、加油站(贪心算法)

38、分发糖果(贪心算法)

39、分发饼干(贪心算法)

40、用最少数量的箭引爆气球(贪心算法)

41、只出现一次的数字(位操作)

42、位1的个数(位操作)

43、比特位计数(位操作)

44、颠倒二进制位(位操作)

45、2的幂(位操作)

33. 开放性问题

1、自我介绍,简易介绍下负责的项目

2、你在项目中遇到的问题,怎么解决的

3、有没有遇到过线上问题,怎么排查解决的

4、你们系统的QPS有多少,PV,UV大概多少

5、说一下你们的服务是怎么拆分的

2020版面试题2024版面试题面试题总结面试常见问题

相关推荐
Algorithm15766 分钟前
JVM是什么,与Java的关系是什么,以及JVM怎么实现的跨平台性
java·开发语言·jvm
Gnevergiveup7 分钟前
2024网鼎杯青龙组Web+Misc部分WP
开发语言·前端·python
边疆.21 分钟前
C++类和对象 (中)
c语言·开发语言·c++·算法
yy_xzz24 分钟前
QT编译报错:-1: error: cannot find -lGL
开发语言·qt
你不讲 wood26 分钟前
使用 Axios 上传大文件分片上传
开发语言·前端·javascript·node.js·html·html5
林浔090634 分钟前
C语言部分输入输出(printf函数与scanf函数,getchar与putchar详解,使用Linux ubuntu)
c语言·开发语言
遇见你真好。1 小时前
SpringBoot整合quartz定时任务
java·springboot·quartz
一颗甜苞谷1 小时前
开源一款基于 JAVA 的仓库管理系统,支持三方物流和厂内物流,包含 PDA 和 WEB 端的源码
java·开发语言·开源
CLCNboss1 小时前
Mac安装Ruby
开发语言·经验分享·笔记·macos·ruby
ai产品老杨1 小时前
深度学习模型量化原理
开发语言·人工智能·python·深度学习·安全·音视频