当前位置: 首页 > 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?

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 架构师备考的一些思考(四)
  • 【Hue导入Hive文件类型数据(自动建表)】
  • 网站如何防范BOT流量?
  • 【FATFS】f_mount函数详细解析
  • Python+Pytest框架,“api_key.py文件怎么编写“?
  • Ubuntu下beanstalkd无法绑定局域网IP地址以及消息队列beanstalkd上的error: JOB_TOO_BIG的解决
  • ZYNQ LWIP(RAW API) TCP函数学习
  • 每日OJ_牛客_点击消除(栈)
  • 反激电路中TL431光耦反馈参数的计算,环路设计思路
  • Stream流的思想和获取Stream流
  • 极越造车2.0:01销量回暖,07杀出血路,ASD抢跑FSD
  • 实战外网配置——光猫桥接+路由器PPPoE拨号+防火墙外网链路健康检查+外网流量负载均衡
  • 【Go】-基于Gin和GORM的小清单项目
  • PPStructure核心源码研究(三)LayoutPredictor类详解
  • 昇思MindSpore AI框架MindFormers实践3:ChatGLM3-6B对一段文字进行提取
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • CSS 三角实现
  • CSS魔法堂:Absolute Positioning就这个样
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Java方法详解
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Vue 动态创建 component
  • 回流、重绘及其优化
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 力扣(LeetCode)357
  • 浏览器缓存机制分析
  • 前端js -- this指向总结。
  • 延迟脚本的方式
  • 一天一个设计模式之JS实现——适配器模式
  • - 转 Ext2.0 form使用实例
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 交换综合实验一
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #ifdef 的技巧用法
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (4)logging(日志模块)
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (附源码)计算机毕业设计大学生兼职系统
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)大型网站架构演变和知识体系
  • (转载)hibernate缓存
  • ***检测工具之RKHunter AIDE
  • .gitignore文件使用
  • .net mvc 获取url中controller和action