商品名称:java面经-5w字八股文,java面试题一网打尽,offer到手

特别说明:商品包含与视频同步的文档资料

售价:8.8

发布时间:2024-10-01 14:44:06

5w字java面试题八股文,文档目录:

一、课程简介

二、 java基础

 基本数据类型有哪些?

 Integer i1 = 1;Integer i2 = 1;那么i1 == i2吗?

 java agent的两种类型

 String str="abc"和String str= new String("abc")区别?

 String和StringBuffer和StringBuilder区别?

 ArrayList和LinkedList有什么区别?

 深拷贝和浅拷贝的区别?

 ==和equals()的区别

 重载和重写的区别?

 list和set的区别?

 CopyOnWriteArrayList的原理?

 hascode和equals重写时应该注意什么?

 检查异常和非检查性异常的区别?

 HashSet是什么样的结构?

 <? extends T>和<? super T>区别?

 hashmap的结构?

 1.8或之后的hashmap的put流程是什么?

 1.8或之后的hashmap扩容流程是什么?

 java中的引用类型有几种?

 SimpleDateFormat可否在多线程环境中使用?

 如何判断某个数字在1亿个数字中是否存在?

 对称加密和非对称加密有什么区别?

 加密、hash、签名分别有什么作用?

 常见的序列化方式有哪些?

三、并发编程

 线程安全怎么理解?

 并发编程的三大特性是什么?

 Synchronized和ReentrantLock的区别?

 什么是指令重排以及如何禁止?

 锁的分类

 Synchronized锁升级过程?

 该怎么理解cas无锁机制?cas存在哪些问题?

 aqs是什么?

 ReentrantLock的tryLock()和lock()的区别?

 volatile的作用?

 JMM内存模型是什么?如何理解可见一致性?

 常见的创建线程有哪几种方式?

 为什么阿里开发规范禁止使用Executors来创建线程池?

 线程的生命周期?

 notify和notifyAll的区别

 yield和join区别

 线程池的运行流程是什么?

 线程池queue的大小指定的原则依据是什么?

 线程池有哪几种状态?

 如何保证n个线程执行完成之后再执行后续逻辑?

 线程除了io密集型还有什么类型?

 线程的分类?

 串行、并发、并行区别?

 ConcurrentHashMap相对HashMap进行了哪些改造?

 为对象分配内存时,jvm如何控制多线程环境下不产生地址冲突?

 内存泄漏和内存溢出

 说说你对ThreadLocal的理解

四、jvm

 HotSpot是什么?还有哪些实现?

 说一下jvm体系结构

 java是编译执行还是解释执行?

 如何可视化查看class文件的结构

 java中的类加载器有哪些?

 类加载器加载字节码文件的过程是怎样的?

 jvm双亲委派类加载机制为什么是安全的?

 java代码加载过程是怎样的?

 java语言为什么能够跨平台?

 jvm、jre、jdk区别?

 jvm的参数

 如何查看应用配置的jvm参数

 gcroots有哪些?

 如何确定一个对象是不是垃圾对象?

 垃圾回收算法有哪些?

 实现了垃圾回收算法的垃圾回收器有哪些?

 各种垃圾回收器的搭配?

 垃圾回收器的原理是怎么理解的?

 jvm默认的垃圾回收器是什么?

 stw是什么?

 MinorGC、FullGC、majorgc区别?

 什么情况下可能出现oom?

 发生fullgc但又没出现oom可能是什么原因?

 安全点safepoint和安全区域是什么?

 直接内存如何控制最大使用大小以及回收?

 一个对象的生命周期是什么?

 如何捕捉线上jvm运行出现问题时的快照?

五、mysql数据库

 mysql的整体架构分层

 MyISAM和InnoDB的区别?

 count(*)和count(1)和count(列名)的区别?

 datetime和timestamp类型有什么区别?

 mysql的存储引擎有哪些?

 mysql数据库的隔离级别有哪些?不同的隔离级别会造成什么问题?

 mysql支持哪些锁?

 bufferpool是什么?

 redo log有什么用处?

 undo log有什么用处?

 MVCC是什么?

 慢sql的优化方式

 索引的分类有哪些?

 b树和b+tree的区别?

 聚簇索引和非聚簇索引的结构?

 索引的设计原则?

 为什么会出现回表查询以及如何避免?

 什么是索引覆盖?

 索引下推是什么?

 为什么会发生索引重排?

 联合索引的结构以及排序规则?

 最左前缀匹配法则是什么?

 mysql innodb每次预读取的最小单位是什么?

 mysql中表空间是什么?

 数据页是什么?

 数据页和索引的关系?

 mysql数据库中为什么常说单表的数据不宜超过2kw?

 为什么推荐必须有主键?为什么推荐主键是整型的自增类型?

 explain执行计划中需要关注哪些字段?

 mysql的日志有哪些?

 binlog有几种模式?

 主从同步原理

 主从同步延迟怎么解决?

 事务的特性?

 limit 深度分页

 order by xx流程?

 影子表有什么用?

六、web开发

 javaEE和java web有什么区别?

 常用的java应用服务器有哪些?

 tomcat有几种部署方式?

 servlet是单实例还是原型?

 tomcat有哪四大容器?

 说一下tomcat的整体请求流程?

 tomcat应用的是哪种io模型?

 tomcat为什么要自定义类加载器?

 http的keep-avlive和tcp的keep-alive有什么关系?

 http的短连接怎么控制?长连接怎么控制

 浏览器与tomcat交互的流程是怎样的?

 跨域请求的解决方案?

 tomcat的keepAliveTimeout、maxKeepAliveRequests参数

 短url原理

 你知道哪些模板引擎?

 在集群环境中使用websocket该如何设计?

七、网络相关

 ssl和tls的区别?

 三次握手和四次挥手流程?

 七层网络模型和四层网络模型是如何划分的?

 bio、nio、aio的区别?

 reactor模型是什么?

 同步与异步怎么理解?

 阻塞与非阻塞怎么理解?

 如何对http或tcp请求抓包来排查问题?

 tcp与socket的关系?

八、springmvc

 如何理解restful?

 filter和interceptor有什么区别?谁先执行?

 @RestControllerAdvice能处理filter中抛出的异常吗?

 如何处理filter或拦截器中的异常?

 springmvc中实现请求处理有哪些写法?

 springmvc中HandlerMapping的作用是什么?

 springmvc中HandlerAdapter的作用是什么?

 springmvc的执行流程是什么?

九、spring

 spring bean是线程安全的吗?

 @Primary和@Qualifier使用场景?

 @Resource和@Autowired的区别?

 spring事务什么时候会失效?

 tx传播机制?

 spring 事务传播机制的原理?

 事务方法a调用事务方法b,b是异步的,事务怎么传播?

 BeanFactory和ApplicationContext有什么区别?

 简述下spring的启动流程?

 spring bean的生命周期是什么?

 无参构造中能够使用需要依赖注入的对象吗?

 ioc和di有什么区别?

 ioc到底指的是什么?

 单例bean和单例模式一样吗?

 aop有哪些应用场景?

 aop与spring aop与AspectJ之间的关系?

 说一说spring aop中的相关概念?

 spring中支持的通知类型有哪些?

 spring aop中的Advisor是干什么的?

 spring aop原理是什么?

 事务原理是什么?

 spring是如何解决循环依赖的?

 spring提供的扩展点xxPostProcessor是干什么的?

 spring中用到了哪些设计模式?

十、mybatis

 mybatis的优缺点?

 mybatis如何返回插入后生成的主键

 mybatis中的Executor有哪些?

 mybatis中如何实现一对一、一对多关联查询?

 为什么说mybatis是半自动的ORM框架?

 mapper.xml解析过程中会涉及到哪些mybatis内部数据结构,说一下它们的用途?

 说说你对mybatis懒加载的理解?

 mybatis如何处理嵌套查询时非懒加载过程中遇到的循环依赖?

 mybatis模糊查询支持哪些写法?

 一级缓存与二级缓存的区别

 mapper接口的工作原理是什么?

 mapper接口中能定义重载的方法吗?

`#{}`和${}的区别

 mybatis中用到了哪些设计模式?

十一、springboot

 为什么使用springboot?

 @SpringBootApplication注解的作用?

 springboot是如何启动web容器的?

 springboot配置方式优先级?

 springboot的starter是什么?

 springboot的自动注入是如何实现的?

 springboot启动jar的原理?

 springboot jar包启动和非jar包启动涉及到的类加载器?

 springboot中的松散绑定是什么?

 说一下你对约定大于配置的理解

十二、linux

 说几个linux中的常用命令

 linux的io模型有哪些?

 谈谈对零拷贝技术的理解

 shell编程中&&、||、双引号""、单引号''、反引号``、$()分别有什么用处?

 select/poll/epoll的区别?

 用户态和内核态是什么?

 服务器哪些指标可能影响到应用的运行?

 linux中的shell是什么?

十三、设计模式

 你知道哪些设计原则?

 举出你工作中遇到的设计模式?

 动态代理和静态代理的区别?

 单例模式都有哪些实现方式?

 观察者模式与发布订阅模式有什么区别?

 有哪些不属于gof23种设计模式,但我们平常又经常用的设计模式?

 举出哪里用到了责任链设计模式?

 举例说出哪里用到了模板方法设计模式?

 举例说出哪里用到了建造者设计模式?

 举例说出哪里用到了装饰器设计模式?

 举例说出哪里用到了享元设计模式?

十四、springcloud生态

 spring cloud核心组件有哪些以及使用场景?

 服务雪崩的概念与防范措施?

 熔断和降级的区别?

 dubbo和spring cloud的区别?

 dubbo一次rpc调用的流程是什么?

 Hystrix是用来干什么的?

 openfeign调用过程中http请求头会丢失吗?

 openfeign完成远程调用的底层原理是什么?

 如何优化openfeign调用?

 简单说下skywalking的架构组成?

 nacos中配置加载规则与优先级?

 springcloud中的配置自动刷新有什么应用场景?

 LoadBalancerClient在远程调用中是如何实现负载均衡的?

十五、redis

 redis常用数据类型与应用场景?

 redis网络模块api是单线程,为什么这么快?

 redis持久化策略有哪些?

 rdb和aof持久化的区别?

 redis是不是单线程?

 缓存击穿、缓存穿透、缓存雪崩概念区分?分别该如何应对?

 redis过期策略有哪些?各自的优缺点是什么?

 LRU淘汰算法是怎么实现的?

 value过大导致网络io较长,rt变高,如何优化?

 hotkey导致redis压力过大如何解决?

 redis集群策略有哪些?

 哨兵机制怎么理解?

 redis主从同步/复制的过程原理是什么?

 常见的缓存淘汰算法?

 如何保证db和缓存双写一致性?

十六、elasticsearch

 常用的中文分词有哪些? 分词算法有哪些?

 倒排索引的结构?

 es支持哪些查询方式?

 es中term、match、keyword区别

 索引和shard的关系

 es对shard的分配原则?

 为什么primary shards在索引创建后不能更改?

 es集群中写入文档的流程是怎样的?

 es集群中召回文档的全文检索流程是怎样的?

 es的概念与关系型db的对比?

十七、消息队列

 消息队列的作用?

 说一下rocketmq的架构

 rocketmq的整体流程是什么?

 rocketmq如何保证消息可靠性?

 rocketmq的retryTopic是什么?

 rocketmq死信队列是什么?

 rocketmq的延时队列是什么?

 如何解决重复消费的问题?

 rocketmq如何解决乱序消费的问题?

 rocketmq是如何做到消息的高效读写的?

 常见mq的对比?

十八、分布式相关

 rpc和http有什么区别?

 什么场景下需要考虑分布式session的问题?

 分布式session解决有哪些方案?

 简单说下单点登录的原理?

 分布式session和单点登录有什么区别?

 oauth2.0了解吗?

 oauth2.0有哪几种授权方式

 说一下你是如何保证与外围系统交互的接口的安全性?

 分布式id生成方案?

 趋势递增和单调递增的区别

 分布式锁的实现方式以及区别?

 分布式锁如何避免偶然的锁超时导致删除其他线程放入的锁?

 如何解决大量锁超时导致分布式锁失效?

 什么是垂直分表、垂直分库、水平分库、水平分表?

 对于水平分表,order by执行的流程是什么?

 异构索引表是什么?

 分库分表如何实现?

 寻址(如分布式缓存)算法有哪些?

 cap定理是什么?

 说说你对base理论的理解?

 单机跨库事务解决?

 分布式事务解决方案?

 分布式事务中常说的xa和jta是什么?

 幂等性是如何保证的?

 soa、微服务、分布式有什么区别?

 微服务拆分方式与原则?

 DDD是什么?

 敏捷开发是什么?

 你是如何对分布式系统进行限流的?

十九、数据结构

 bloomfilter

 bitmap

 树

  二叉树

  满二叉树

  完全二叉树

  多叉树

  二叉排序树

  平衡二叉树

  字典树

  b树

  b+tree

  树的扇出(fanout)是什么意思?

二十、算法

 如何衡量时间复杂度?

 如何衡量空间复杂度?

 说一下对雪花算法的理解

 如何理解一致性hash算法?

 有哪些常用的排序算法?

 有哪些常用的查找算法

 有哪些常用的路由算法?

 说一下常见的限流算法

  计数器/固定窗口

  滑动时间窗口

  漏桶

  令牌桶

 two sum问题是什么?

 分布式一致性/共识算法

二十一、容器化

 什么是docker?

 docker镜像是什么?

 docker容器和虚拟机的区别?

 docker容器为什么能够秒级启动?

 说下与docker容器相关的常用命令有哪些?

 为什么tomcat镜像比单独的tomcat软件要大很多?

 Dockerfile中CMD和ENTRYPOINT有什么区别?

 k8s由哪些组件构成?

 说一下k8s中常用的资源类型?

 如何查看pod的日志?

二十二、devops

 谈谈你对devops的理解?

 谈谈你对cicd的理解

 金丝雀发布是什么?

 ab测试是什么?

二十三、工具篇

 简单描述下git的工作流程?

 git中origin表示什么?

 如何把一份代码推送到多个远程仓库?

 git中的tag有什么作用?

 maven依赖优先级规则?

 说几个你常使用的maven插件

 Nginx支持websocket吗?

二十四、系统架构

 系统设计中常说的三高指的是什么?

 你是如何做系统设计的?

 对系统进行压测,需要关注哪些指标?

 如何在中间件与sdk间进行选型

 你是如何把控团队研发质量的?

 jsr是什么?

 各种不同的数据模型XxO都有什么区别

 MVC与三层架构

二十五、场景题

 描述下你做过的xxx项目以及你主要负责什么?

 我现在有个xx需求,你怎么设计一个系统?

 谈谈接口性能优化的思路

 说些印象比较深刻的优化

 cpu占用过高排查思路?

 常用java问题排查工具

视频讲了面试文档每个模块中的前几个,以下是视频目录:

1.课程简介

2.[java基础]-基本数据类型有哪些

3.[java基础]-Integer i1 = 1;Integer i2 = 1;那么i1 == i2吗

4.[java基础]-java agent的两种类型

5.[并发编程]-线程安全怎么理解

6.[并发编程]-并发编程的三大特性是什么

7.[并发编程]-Synchronized和ReentrantLock的区别

8.[jvm]-HotSpot是什么,还有哪些实现

9.[jvm]-说一下jvm体系结构

10.[jvm]-java是编译执行还是解释执行

11.[mysql数据库]-mysql的整体架构分层

12.[mysql数据库]-MyISAM和InnoDB的区别

13.[mysql数据库]-count(星号)和count(1)和count(列名)的区别

14.[web开发]-javaEE和java web有什么区别

15.[web开发]-常用的java应用服务器有哪些

16.[web开发]-tomcat有几种部署方式

17.[web开发]-servlet是单实例还是原型

18.[网络相关]-ssl和tls的区别

19.[网络相关]-三次握手和四次挥手流程

20.[网络相关]-七层网络模型和四层网络模型是如何划分的

21.[springmvc]-如何理解restful

22.[springmvc]-filter和interceptor有什么区别,谁先执行

23.[springmvc]-如何处理filter或拦截器中的异常

24.[spring]-spring bean是线程安全的吗

25.[spring]-@Primary和@Qualifier使用场景

26.[spring]-@Resource和@Autowired的区别

27.[spring]-spring事务什么时候会失效

28.[mybatis]-mybatis的优缺点

29.[mybatis]-mybatis如何返回插入后生成的主键

30.[mybatis]-mybatis中的Executor有哪些

31.[mybatis]-mybatis中如何实现一对一、一对多关联查询

32.[springboot]-为什么使用springboot

33.[springboot]-@SpringBootApplication注解的作用

34.[springboot]-springboot是如何启动web容器的

35.[springboot]-springboot配置方式优先级

36.[linux]-说几个linux中的常用命令

37.[linux]-linux的io模型有哪些

38.[linux]-谈谈对零拷贝技术的理解

39.[设计模式]-你知道哪些设计原则

40.[设计模式]-举出你工作中遇到的设计模式

41.[设计模式]-动态代理和静态代理的区别

42.[springcloud生态]-spring cloud核心组件有哪些以及使用场景

43.[springcloud生态]-服务雪崩的概念与防范措施

44.[springcloud生态]-熔断和降级的区别

45.[redis]-redis常用数据类型与应用场景

46.[redis]-redis网络模块api是单线程,为什么这么快

47.[redis]-redis持久化策略有哪些

48.[elasticsearch]-常用的中文分词有哪些,分词算法有哪些

49.[elasticsearch]-倒排索引的结构

50.[elasticsearch]-es支持哪些查询方式

51.[消息队列]-消息队列的作用

52.[消息队列]-说一下rocketmq的架构

53.[消息队列]-rocketmq的整体流程是什么

54.[分布式相关]-rpc和http有什么区别

55.[分布式相关]-什么场景下需要考虑分布式session的问题

56.[分布式相关]-分布式session解决有哪些方案

57.[数据结构]-布隆过滤器

58.[数据结构]-bitmap

59.[算法]-如何衡量时间复杂度

60.[算法]-如何衡量空间复杂度

61.[算法]-说一下对雪花算法的理解

62.[容器化]-什么是docker

63.[容器化]-docker镜像是什么

64.[容器化]-docker容器和虚拟机的区别

65.[devops]-谈谈你对devops的理解

66.[devops]-谈谈你对cicd的理解

67.[devops]-金丝雀发布是什么

68.[工具篇]-简单描述下git的工作流程

69.[工具篇]-git中origin表示什么

70.[工具篇]-如何把一份代码推送到多个远程仓库

71.[系统架构]-系统设计中常说的三高指的是什么

72.[系统架构]-你是如何做系统设计的

73.[系统架构]-对系统进行压测,需要关注哪些指标

74.[场景题]-描述下你做过的xxx项目以及你主要负责什么

75.[场景题]-我现在有个xx需求,你怎么设计一个系统

76.[场景题]-谈谈接口性能优化的思路


在线观看地址: https://www.bilibili.com/video/BV1KkxeeYExS

在线咨询
返回顶部