当前位置: 首页 > news >正文

八股文知识汇总(常考)

八股文知识汇总(常考)

语言特性相关

JAVA知识

- JDK动态代理为什么只能代理有接口的类?

  • 说一下对象创建的过程?
  • ThreadLocal是什么?他的实现原理是什么?
  • ThreadLocal会出现内存泄露吗?
  • String、StringBuilder和StringBuffer的区别
  • 为什么重写equals方法必须重写hashCode方法?
  • JAVA反射的优缺点?

集合相关

  • HashMap如何解决哈希冲突?
  • HashMap中的hash方法为什么要右移16位异或?
  • ConcurrentHashMap底层实现原理
  • ConcurrentHashMap的size()方法是线程安全的吗?
  • HashMap什么时候扩容?为什么扩容?
  • 为什么ConcurrentHashMap中的key不允许为null?
  • HashMap与Hashtable的区别?
  • 为什么HashMap会产生死循环?
  • ConcurrentHashMap是如何保证线程安全的?
  • ArrayList的自动扩容机制?

JVM相关

  • 谈谈对JVM的理解?
  • 什么是双亲委派机制?
  • 如何破坏双亲委派模型?
  • JVM如何判断一个对象可以被回收?
  • G1垃圾器的原理,为什么低时延?
  • JVM分代年龄为什么是15次?可以是25次吗?
  • JVM为什么使用元空间替代了永久代?
  • 常见的垃圾回收器介绍
  • 说一下CMS垃圾回收器的回收原理?
  • JVM中一次完整的GC流程是什么样的?对象如何晋升到老年代?

多线程与并发

  • 谈一下CAS机制(CompareAndSwap)
  • ReentrantLock的实现原理?
  • 简单说一下你对线程池的理解?
  • 如何中断一个正在运行的线程?
  • 为什么引入偏向锁、轻量级锁?介绍下升级流程。
  • 请谈谈AQS是怎么一回事?
  • ReentrantLock是如何实现锁的公平与非公平性的?
  • 谈谈你对CompletableFeature的理解?
  • 线程状态下,Blocked与Wait有什么区别?
  • Thread与Runnable的区别?
  • wait和sleep是否会触发锁的释放与CPU资源的释放?
  • AQS为什么使用双向链表?
  • 讲下线程池的线程回收。
  • 如果一个线程调用两次start方法,会出现什么问题?
  • JAVA官方提供了几种线程池?分别有什么特点?
  • 请说一下你对happen-before的理解?
  • 线程池是如何实现线程复用的?
  • 当任务数超过线程数的核心线程数时,如何让他不进入队列,而是直接启用最大线程数?
  • 并行与并发的区别
  • wait和notify为什么要在sync代码块里面?

IO相关

  • IO和NIO的区别?
  • 什么是IO的多路复用机制?
  • JAVA中有几种文件拷贝方式?哪种最高效?
  • select与epoll的区别?

数据结构

  • B树与B+树的理解

数据库相关

  • MySQL性能调优
    • 硬件及操作系统层面优化
    • 架构设计层面优化
    • 程序配置优化
    • SQL优化
  • 谈谈对MVCC的理解,MVCC的过程中会加锁吗?
  • 关于索引的底层实现,为什么选用B+树,不用红黑树?
  • MySQL数据库CPU飙升怎么解决?
  • binlog与redolog有什么区别?
  • innoDB如何解决幻读?
  • 说一说MySQL的事务隔离机制?
  • 数据库连接池有什么用?它有哪些关键参数?
  • 说一下MySQL索引的优点与缺点?
  • MySQL事务的实现原理?
  • 说一下你对行锁、临键锁、间隙锁的理解?
  • 索引为什么失效?
  • MySQL中MyISAM和InnoDB引擎的区别?
  • 说一下对InnoDB中索引数据结构的理解?

网络相关

  • 谈一下网络四元组
  • TCP为什么要设计三次握手?
  • 简单说一下对序列化、反序列化的了解
  • Cookie与Session的区别?

操作系统

  • 死锁发生的原因和怎么避免?

常见框架

Spring相关

  • Spring Bean生命周期的执行过程?
  • Spring是如何解决循环依赖的?
  • Spring中事务的传播行为有哪些?
  • Spring中bean的作用域有哪些?
  • Spring中有哪些方式可以把Bean注入到IOC容器?
  • Spring中的BeanFactory和FactoryBean的区别?
  • 介绍下Spring IoC的工作流程?
  • Spring中有两个id相同的bean会报错吗?在哪个阶段报错?
  • Spring里的事务与分布式里的事务如何区分?以及这两个事务里面有什么关联?
  • Spring中的bean是线程安全的吗?
  • 谈谈你对Spring中bean的理解。
  • Spring中bean的生命周期?
  • Spring为什么需要三级缓存解决循环依赖,而不是二级缓存?
  • Spring AOP的原理?

SpringBoot相关

  • SpringBoot自动装配原理是什么?
  • 如何理解SpringBoot中的starter?
  • SpringBoot如何解决跨域问题?

SpringCloud相关

  • 谈谈对SpringCloud的理解?

Dubbo相关

  • 什么是Dubbo?它有哪些核心功能?
  • Dubbo负载均衡的几种策略是什么?
  • Dubbo的工作原理是什么?
  • Dubbo与SpringCloud的区别?
  • Dubbo是如何动态感知服务下线的?

MyBatis相关

  • 说一说MyBatis里面的缓存机制?
  • MyBatis如何实现分页?
  • MyBatis何时使用1级缓存,何时使用2级缓存?

Eureka相关

  • Eureka Server数据同步原理介绍一下?
  • Dubbo与Eureka的优缺点对比?

中间件相关

  • Redis与MySQL如何保证数据一致性?
  • Zookeeper和Redis用于实现分布式锁,哪种更好?
  • 谈谈对Redis的理解
  • 关于你对Zookeeper的理解?
  • 介绍一下对Netty的认识?
  • 请说一下Netty中的reactor模式?
  • Redis的内存淘汰算法与原理是什么?
  • Kafka如何保证消息不丢失?
  • Kafka如何保证消息的顺序性?
  • Kafka怎么避免重复消费?
  • Kafka中partition分区副本的leader选举算法?
  • Kafka中一个topic有3个partition,同一个消费组中2个消费者怎么消费?
  • 什么是ISR?为什么要引入ISR?
  • ZK中的watch机制?
  • Redis存在线程安全问题吗?
  • Redis多线程模型如何理解?会有线程安全问题吗?
  • RDB和AOF的实现原理及优缺点?
  • 请描述一下Redis中AOF的重写过程?
  • ZK是如何实现Leader的选举的?
  • Redis的哨兵机制与集群有什么区别?
  • Redis中的哨兵选举算法是怎么实现的?
  • Redis主动复制的原理?
  • Redis遇到哈希冲突怎么办?
  • Redis主从数据一致性怎么保证的?
  • Redis sentinel集群与cluster集群有什么区别?
  • 为什么Redis的最大槽数是16384个?
  • 如何处理消息队列的消息堆积问题?

架构相关

  • 什么是服务网格
  • RPC相关
    • 什么是远程调用?
    • 什么是RPC?
    • RPC的运用场景和优势?
  • RPC与HTTP协议的差异?
  • 分布式事务的原理
  • 什么是负载均衡?
  • 什么是消息队列?
  • 说一下对分布式锁的理解,以及分布式锁的实现。
  • 常见的限流算法有哪些?
  • 谈谈你对一致性哈希算法的理解?
  • 说一下对分布式与微服务的理解?
  • 谈谈常用的分布式ID设计方案?
  • 谈谈对CAP的理解?
  • 服务注册中心应该是CP还是AP?

相关文章:

八股文知识汇总(常考)

八股文知识汇总(常考) 语言特性相关 JAVA知识 - JDK动态代理为什么只能代理有接口的类? 说一下对象创建的过程?ThreadLocal是什么?他的实现原理是什么?ThreadLocal会出现内存泄露吗?String、…...

unity 图片置灰shader

我和chatgpt真强! 在 Unity 编辑器中,右键点击 Assets 文件夹,选择 Create -> Shader -> Unlit Shader。shader代码如下,尽管我看的不是很懂,但确实有用 Shader "Custom/GrayScaleShader" {Properti…...

【C语言】(指针系列2)指针运算+指针与数组的关系+二级指针+指针数组+《剑指offer面试题》

前言:开始之前先感谢一位大佬,清风~徐~来-CSDN博客,由于是时间久远,博主指针的系列忘的差不多了,所以有些部分借鉴了该播主的,有些地方如果解释的不到位,请翻看这位大佬的,感谢大家&…...

探索信号处理:使用傅里叶小波变换分析和恢复信号

在现代信号处理领域,傅里叶变换是分析和处理信号的一种基本工具。然而,传统的傅里叶变换在处理非平稳信号时存在局限性,因为它无法同时提供时间和频率的信息。为了克服这一挑战,傅里叶小波变换(FSWT)应运而…...

俄罗斯方块——C语言实践(Dev-Cpp)

目录 1、创建项目(尽量不使用中文路径) 2、项目复制 3、项目配置 ​1、调整编译器 2、在配置窗口选择参数标签 3、添加头文件路径和库文件路径 4、代码实现 4.1、main.c 4.2、draw.h 4.3、draw.c 4.4、shape.h 4.5、shape.c 4.6、board.h 4.7、board.c 4.8、cont…...

关于wp网站出现的问题

问题1 问题1:如果出现这个界面的问题 说明是根目录的index.php编码出了问题,用备份的源文件退换一下即可。 问题2 问题2:如果出现页面错位现象,可能是某个WP插件引起的问题,这里需要逐步排查插件,或者你刚…...

为什么H.266未能普及?EasyCVR视频编码技术如何填补市场空白

H.266,也被称为Versatile Video Coding(VVC),是近年来由MPEG(Moving Picture Experts Group)和ITU(International Telecommunication Union)联合开发并发布的新一代国际视频编码标准…...

最全 高质量 大模型 -评估基准数据集(不定期更新)

评估基准是推动人工智能领域技术进步和应用落地的关键工具,通过这些基准,我们可以更全面地理解LLMs的能力,并指导未来的研究和实践。 评估基准,是一套衡量标准,就像老师用考试来检查学生学得怎么样。在大模型的世界里…...

react 中, navigate 跳转链接 2种写法

react 中, navigate 下面2种写法, 有什么区别, import { useNavigate } from "react-router-dom"; const navigate useNavigate(""); onClick{() > navigate("/signup")}import { Navigate } from "react-route…...

k8s Service 服务

文章目录 一、为什么需要 Service二、Kubernetes 中的服务发现与负载均衡 -- Service三、用例解读1、Service 语法2、创建和查看 Service 四、Headless Service五、集群内访问 Service六、向集群外暴露 Service七、操作示例1、获取集群状态信息2、创建 Service、Deployment3、创…...

安全建设当中的冷门知识

今天说点有趣的话题,也是因为在安全建设过程中,安全员也不太可能都按照最理想的状态去工作,有资源的问题,有管理惰性问题,当然也有管理者本身决策的问题。 安全行业起步较晚,16年才施行网络安全法&#xff…...

python画图|极坐标下的3D surface

前述学习过程中,我们已经掌握了3D surface的基本绘制技巧,详见链接: python画图|3D surface基础教程-CSDN博客 基础教程中的3D surface绘制位于笛卡尔坐标系,但有时候会用到极坐标绘图。虽然我们已经学过简单的极坐标绘图技巧&a…...

html+css+js网页设计 旅游 大理旅游7个页面

htmlcssjs网页设计 旅游 大理旅游7个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&#…...

Day 29~42 JavaWeb

Java Web 1、基本概念 1.1、前言 web开发: web,网页的意思,www.baidu.com静态web html,css 提供给所有人看的数据始终不会发生变化动态web 淘宝,几乎是所有的网站 提供给所有人看的数据始终会发生变…...

小程序开发设计-第一个小程序:创建小程序项目④

上一篇文章导航: 小程序开发设计-第一个小程序:安装开发者工具③-CSDN博客https://blog.csdn.net/qq_60872637/article/details/142219152?spm1001.2014.3001.5501 须知:注:不同版本选项有所不同,并无大碍。 一、创…...

C++设计模式——Mediator中介者模式

一,中介者模式的定义 中介者模式是一种行为型设计模式。它通过一个中介者对象将多个对象之间的交互关系进行封装,使得对象之间的交互需要通过中介者对象来完成。该设计模式的结构很容易理解,以中介者为中心。 中介者模式的设计思想侧重于在…...

微服务之间远程调用实现思路

项目使用的Spring Cloud Alibaba框架,微服务之间远程调用使用OpenFeign,具体实现步骤如下: (1)在api工程定义OpenFeign接口,使用FeignClient注解进行定义。 (2)服务提供方定义Open…...

获取STM32 MCU的唯一ID

STM32每个系列都会有唯一的一个芯片序列号(96位bit) STM32F10X 的起始地址是 0x1FFFF7E8 STM32F20X 的起始地址是 0x1FFF7A10 STM32F30X 的起始地址是 0x1FFFF7AC STM32F40X 的起始地址是 0x1FFF7A10 STM32L0XX 的起始地址是 0x1FF80050 STM32L1XX 的起…...

Debian项目实战——环境搭建篇

Debian系统安装 准备工作 1、系统镜像:根据自己的需要选择合适的版本格式:x86 / arm 架构 | 最好下载离线安装版本 | 清华镜像源 2、制作工具:balenaEtcher 3、系统媒介:16G以上U盘最佳 烧录镜像 打开balenaEtcher进行烧录&am…...

CenterNet官方代码—目标检测模型推理部分解析与项目启动

CenterNet模型推理部分解析 CenterNet官方代码环境部署 CenterNet作为2019年CVPR推出的论文,论文中给出了官方代码所在的github仓库地址。https://github.com/xingyizhou/CenterNet。 整个代码的代码量并不是特别大,但整个项目的难点在于使用了老版本的…...

408第一季 - 数据结构 - 线性表

只能用C/C! 顺序表 闲聊 线性表的逻辑顺序和物理顺序相同 都是1234 顺序表的优点: 随机访问,随机访问的意思是访问的时间 和位置没有关系,访问下标1和100一样的,更深层就是直接计算 a100 * 数组大小,随便…...

centos7.9源码安装zabbix7.12,求赞

centos7.9源码安装zabbix7.12-全网独有 3.CentOS7_Zabbix7.0LTS3.1.安装环境3.2.换成阿里源3.3.安装相关依赖包3.3.1.直接安装依赖3.3.2.编译安装-遇到问题01-net-snmp3.3.3.编译安装-遇到问题02-libevent3.3.4.编译安装-遇到问题03-安装openssl 3.4.创建用户和组3.5.下载上传源…...

Spring Boot实现接口时间戳鉴权

Spring Boot实现接口时间戳鉴权,签名(sign)和时间戳(ts)放入请求头(Header)。 一、请求头参数设计 参数名类型说明tsLong13位时间戳(Unix毫秒值),必填&…...

figma 和蓝湖 有什么区别

以下是 Figma 和蓝湖的详细对比分析: 核心定位区别 维度Figma蓝湖本质全功能云端设计工具设计协作与交付平台核心功能设计原型协作开发交付设计稿交付标注切图协作设计能力✅ 完整矢量设计工具❌ 无设计功能(需导入其他工具文件)适用阶段全流…...

嵌入式面试高频!!!C语言(四)(嵌入式八股文,嵌入式面经)

更多嵌入式面试文章见下面连接,会不断更新哦!!关注一下谢谢!!!! ​​​​​​​https://blog.csdn.net/qq_61574541/category_12976911.html?fromshareblogcolumn&sharetypeblogcolumn&…...

C++.OpenGL (1/64) 创建窗口(Hello Window)

OpenGL 创建窗口(Hello Window) 步骤详解与代码实现 #mermaid-svg-436DlGvysFQogISc {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-436DlGvysFQogISc .error-icon{fill:#552222;}#mermaid-svg-436DlGvysFQogISc…...

学习记录aigc

1、DIT https://zhuanlan.zhihu.com/p/683612528 DiT最大的创新点是将Transformer引入到了扩散模型中,并完全抛弃了CNN。但是DiT并不是第一个引入Transformer的,例如之前的U-ViT,UniDiffuser等都尝试了将Transformer引入到扩散模型中。至于…...

极智项目 | 基于PyQT+Whisper实现的语音识别软件设计

这是一个基于OpenAI的Whisper模型的语音识别应用程序,使用PyQt5构建了简洁直观的用户界面。该应用支持多语言识别,特别优化了中文识别体验。 项目下载:链接 功能特点 简洁现代的深色主题界面支持多语言识别(中文、英语、日语等…...

AI Agent开发第78课-大模型结合Flink构建政务类长公文、长文件、OA应用Agent

开篇 AI Agent2025确定是进入了爆发期,到处都在冒出各种各样的实用AI Agent。很多人、组织都投身于开发AI Agent。 但是从3月份开始业界开始出现了一种这样的声音: AI开发入门并不难,一旦开发完后没法用! 经历过至少一个AI Agent从开发到上线的小伙伴们其实都听到过这种…...

AI Infra运维实践:DeepSeek部署运维中的软硬结合

发布会资料 《AI Infra运维实践:DeepSeek部署运维中的软硬结合》 袋鼠云运维服务 1、行业痛点 随着数字化转型的深入,企业面临的运维挑战日益复杂,所依托的平台在长期使用的过程中积累了各式各样的问题或者难点。这些问题不仅影响效率&…...