Java架构直通车——Java基础面试考点清单

2023-11-08

基础

  1. 强引用、弱引用、虚引用、软引用
  2. final关键字的作用 (方法、变量、类)
  3. 泛型、泛型继承、泛型擦除
  4. jdk ServiceLoader
  5. LinkedList、LinkedHashMap、LRU
  6. 装饰者模式、代理模式、责任链模式、工厂模式、适配器模式、建造者模式、单例模式、模板模式、观察者模式…
  7. 关于精度损失问题:int、long 超过最大值
  8. 关于注解:元注解的种类、继承java.lang.Annotation、注解的基础类型、注解的常用方法
  9. 关于ClassLoader,类加载器,双亲委派模型

J.U.C

  1. 线程池参数说明,线程池的线程回收、shutdown
  2. 线程池的生命周期?
  3. 线程池的核心模型Worker对象的运作流程是怎样的?
  4. 线程池的拒绝策略有哪4种?
  5. 线程池的提交,execute与submit有什么区别?在实际开发中需要注意哪些问题?
  6. threadlocal原理,数据结构
  7. 并发集合类了解哪些?
    • ConcurrentHashMap
    • CopyOnWrite集合、原理、锁机制
    • ConcurrentLinkedQueue、LinkedTransferQueue、ArrayBlockingQueue、PriorityBlockingQueue、SynchronousQueue、DelayQueue
  8. AQS 原理:
    1. 独占 & 共享
    2. state & CHL队列
  9. 锁:
    1. Synchronized、ReentrantLock、RWLock、Condition、LockSupport、StampedLock、
    2. 概念:CAS 自旋、重入、偏向
  10. volatile:
    1. 多线程共享 & 阻止指令重排序
    2. jvm的逃逸分析 & Tlab & 消除伪共享 & UNsafe &
  11. atomic:
    • CAS的缺点,自旋、ABA问题
  12. atomic 原子性、Reference、referenceArray、longadder

jvm虚拟机

  1. 虚拟机内存模型
  2. 新生代(Eden S0 S1)、老年代 、MetaSpace (比例)
  3. 垃圾回收算法(引用计数、标记压缩、清除、复制算法、分区)、垃圾收集器
  4. GC停顿、吞吐量,进入老年代阈值、大对象回收问题等
  5. jvm性能调优、参数配置
  6. 常用命令:jstat、jmap、jstack等
  7. 内存溢出分析:堆内、堆外 (含义、如何设置)
  8. CPU飙升:死锁、线程阻塞
  9. 关于GC: minor major full
    • stw,安全点等

数据结构&算法

  1. 数组、链表、树、队列…
  2. 关于时间复杂度,时间换空间转换案例
  3. 关于排序、冒泡、快排、递归、二分搜索、位运算

Spring

  1. Spring生命周期,流程梳理
  2. Spring扩展点作用
  3. Spring IOC AOP 基本原理
  4. 动态代理
  5. BeanPostProcessor 作用?
  6. ApplicationContextAware 的作用和使用?
  7. BeanNameAware与BeanFactoryAware的先后顺序?
  8. InitializingBean 和 BeanPostProcessor 的after方法先后顺序?
  9. ApplicationListener监控的Application事件有哪些?
  10. Spring模块装配的概念,比如@EnableScheduling @EnableRetry @EnableAsync,@Import注解的作用?
  11. ImportBeanDefinitionRegistrar 扩展点用于做什么事情?
  12. ClassPathBeanDefinitionScanner 的作用?
  13. NamespaceHandlerSupport 命名空间扩展点的作用?
  14. 如何实现动态注入一个Bean?
  15. 如何把自定义注解所在的Class 初始化注入到Spring容器?
  16. BeanDefinition指的是什么,与BeanDefinitionHolder的区别,Spring如何存BeanDefinition实例?
  17. ASM 与 CGlib
  18. Spring的条件装配,自动装配

RPC通信框架

Dubbo

  1. Dubbo的Spi机制?
  2. Dubbo的核心模型 invoker、invocation、filter
  3. Dubbo的隐式传递?
  4. Dubbo的泛化调用?
  5. Dubbo的export与importer时机?
  6. Dubbo的服务调用过程?
  7. Dubbo的负载均衡策略?
  8. Dubbo的集群容错?

网络通信

IO / NIO

  1. IO NIO区别?
  2. 多路复用的概念,Selector
  3. Channel的概念、Bytebuf的概念,flip、position…
  4. FileChannel 如何使用?
  5. RAF使用,seek、skip方法

Netty

  1. 关于Netty的Reactor实现?
  2. Netty的ByteBuf有哪些?
  3. 内存与非内存Bytebuffer的区别与使用场景?
  4. 池化与非池化buffer的区别与使用场景?
  5. 关于Netty的请求Buffer和响应Buffer?
  6. Netty的ChannelPipeline设计模式?
  7. Netty的核心option参数配置?
  8. Netty的ChannelInboundHandlerAdapter和SimpleChannelInboundHandler关系?
  9. Netty的EventLoop核心实现?
  10. Netty的连接管理事件接口有哪些常用方法(ChannelDuplexHandler)?
  11. Netty的编解码与序列化手段
  12. Netty的FastThreadLocal实现?
  13. Netty中应用的装饰者 和 观察者模式在哪里体现?

MQ

  1. API使用,常用生产消费模型,集群架构搭建
  2. 常见问题,消息可靠性投递、幂等性保障
  3. 概念、原理、存储、消息投递、通信机制、性能相关优化
  4. MQ常见的作用于目的、服务解耦、削峰填谷等

RocketMQ
Kafka
RabbitMQ
ActiveMQ

缓存

  1. 内存缓存
  2. 堆外内存缓存 回收释放
  3. 缓存穿透、雪崩、热点Key、大Key、无底洞问题,缓存更新与淘汰、缓存与数据库的一致性

Redis

  1. Redis的幂等性
  2. Redis的分布式锁实现
  3. Redis的原子性,Redis的特点
  4. Redis集群相关问题、一致性hash、slot概念等
  5. 什么是 Redis?
  6. .Redis 的数据类型?
  7. 使用 Redis 有哪些好处?
  8. Redis 相比 Memcached 有哪些优势?
  9. Memcached 与 Redis 的区别都有哪些?
  10. Redis 是单进程单线程的吗?为何它那么快那么高效?
  11. 一个字符串类型的值能存储最大容量是多少?
  12. Redis 的持久化机制是什么?各自的优缺点?
  13. Redis 常见性能问题和解决方案有哪些?
  14. Redis 过期键的删除策略?
  15. Redis 的回收策略(淘汰策略)?
  16. 为什么Redis 需要把所有数据放到内存中?
  17. Redis 的同步机制了解么?
  18. Pipeline 有什么好处,为什么要用 Pipeline?
  19. 是否使用过 Redis 集群,集群的原理是什么?
  20. Redis 集群方案什么情况下会导致整个集群不可用?
  21. Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?
  22. Jedis 与 Redisson 对比有什么优缺点?
  23. Redis 如何设置密码及验证密码?
  24. 说说 Redis 哈希槽的概念?
  25. Redis 集群的主从复制模型是怎样的?
  26. Redis 集群会有写操作丢失吗?为什么?
  27. Redis 集群之间是如何复制的?
  28. Redis 集群最大节点个数是多少?
  29. Redis 集群如何选择数据库?
  30. 怎么测试 Redis 的连通性?
  31. 怎么理解 Redis 事务?
  32. Redis 事务相关的命令有哪几个?
  33. Redis key 的过期时间和永久有效分别怎么设置?
  34. Redis 如何做内存优化?
  35. Redis 回收进程如何工作的?
  36. 都有哪些办法可以降低 Redis 的内存使用情况呢?
  37. Redis 的内存用完了会发生什么?
  38. 一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set他们最多能存放多少元素?
  39. MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证Redis 中的数据都是热点数据?
  40. Redis 最适合的场景是什么?
  41. 假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?
  42. 如果有大量的 key 需要设置同一时间过期,一般需要注意什么?
  43. 使用过 Redis 做异步队列么,你是怎么用的?
  44. 使用过 Redis 分布式锁么,它是什么回事?
  45. 如何预防缓存穿透与雪崩?

Mybatis

  1. mybatis 中 #{}和 ${}的区别是什么?

  2. mybatis 有几种分页方式?

  3. RowBounds 是一次性查询全部结果吗?为什么?

  4. mybatis 逻辑分页和物理分页的区别是什么?

  5. mybatis 是否支持延迟加载?延迟加载的原理是什么?

  6. 说一下 mybatis 的一级缓存和二级缓存?

  7. mybatis 和 hibernate 的区别有哪些?

  8. mybatis 有哪些执行器(Executor)?

  9. mybatis 分页插件的实现原理是什么?

  10. mybatis 如何编写一个自定义插件?

其他技术

Hystrix
Sentinel
高可用服务中间件
Zookeeper / Curator
Nginx
Haproxy
LVS
Haproxy
数据库存储&调度
Sharding-JDBC
ElasticJob
调度平台相关:DAG、airflow等
搜索相关度
ELK ,数据库加速、主搜(算法)
Logback、Slf4j2

Solr & Lucene

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java架构直通车——Java基础面试考点清单 的相关文章

  • 面试准备

    首行占位 Python相关 1 Python3特性和变化 1 Python3默认编码是UTF 8 xff0c 2为ASCII 2 Python3中只有int xff0c 2中有int跟long xff0c 其中int不能超过sys maxi
  • 面试准备:Spring/Spring MVC常见面试题汇总

    文章目录 1 Spring框架有什么优点 2 什么是AOP 3 实现AOP的方式 AOP织入的三种时期 Spring AOP是怎么实现的 4 JDK动态代理实现方式 5 PageHelper实现方式 6 什么是IoC 什么是DI 7 Spr
  • 面试总结:测试常见面试题汇总

    文章目录 理论 测试流程 各个测试阶段 单元测试 集成测试 系统测试区别 测试用例设计 什么是好的测试用例 方法 用户登录 实例 App测试和Web测试的区别 典型测试场景 聊天功能测试用例怎么设计 怎么测试微信朋友圈 TODO 怎么测试微
  • Java架构直通车——过滤器、拦截器、AOP的区别

    文章目录 过滤器 拦截器 AOP 面向切面 三者使用场景 过滤器 过滤器拦截的是URL Spring中自定义过滤器 Filter 一般只有一个方法 返回值是void 当请求到达web容器时 会探测当前请求地址是否配置有过滤器 有则调用该过滤
  • Java架构直通车——Kafka介绍和高性能原因

    文章目录 Kafka介绍 Kafka高性能原因 Kafka介绍 Kafka以前说过很多次了 包括了Kafka单独的介绍 Kafka与Fabric 这里知识简单说说 Kafka的主要特点就是基于Pull模式来处理消息消费 追求高吞吐量 一开始
  • 面试准备:Java常见面试题汇总(一)

    面试准备 Java常见面试题汇总 一 面试准备 Java常见面试题汇总 二 面试准备 Java常见面试题汇总 三 文章目录 1 面向对象的特点 特性有哪些 补充 Java的多态是编译时多态还是运行时多态 2 接口和抽象类的相同点和不同点 3
  • Java架构直通车——Redis的PF实现原理:HyperLogLog

    文章目录 引入 什么是基数统计 基数统计的常用方法 HyperLogLog原理 再近一步 分桶平均 更近一步 真实的HyperLogLog 引入 之前的文章Java架构直通车 点赞功能用Mysql还是Redis 一文中 我们介绍了分别从my
  • Java架构直通车——Java基础面试考点清单

    文章目录 基础 J U C jvm虚拟机 数据结构 算法 Spring RPC通信框架 网络通信 MQ 缓存 Mybatis 其他技术 基础 强引用 弱引用 虚引用 软引用 final关键字的作用 方法 变量 类 泛型 泛型继承 泛型擦除
  • Java架构直通车——DispatcherServlet详解

    文章目录 引入 DispatcherServlet处理流程 DispatcherServlet与WebApplicationContext 处理流程 DispatcherServlet源码分析 init service destroy 前文
  • 从头开始学Java——JVM虚拟机八问

    文章目录 什么是Java虚拟机 为什么Java被称为 平台无关的编程语言 什么是JIT HotSpot怎么工作的 HotSpot虚拟机要使用解释器与编译器并存的架构 什么是编译时 运行时 编译 运行 编译时运行时问题归纳 反射 描述Java
  • Java架构直通车——Java中单体应用锁的局限性&分布式锁

    文章目录 前言 单体应用锁的局限性 什么是分布式锁 目前存在的分布式的方案 前言 通过之前的并发编程的学习 对JAVA中的锁有了深刻的理解 前面内容中讲到的锁都是有JDK官方提供的锁的解决方案 也就是说这些锁只能在一个JVM进程内有效 我们
  • Java架构直通车——基于数据库for update实现分布式锁

    文章目录 使用数据库解决超卖问题 非分布式 分为三步 原始方法 合并二 三步 使用update行锁使操作下沉到数据库 合并一 二 三步 使用方法锁 优化 使用块锁 使用数据库解决分布式超卖问题 主要原理 解决方案 解决库存超卖问题 可以另扣
  • 招银网络科技电话面试

    1 关于项目的负责内容 还是非常有必要熟悉应急 天基的基础传输模块的 基本面试中都会觉得只界面模块很单薄 应急 基础传输模块 无人机网络协议 速率控制模块 界面模块 天基 基础传输模块 MRUDP 界面模块 2 TCP长连接 问 如何在TC
  • Java架构直通车——过滤器和拦截器使用

    文章目录 过滤器和拦截器的区别 Filter过滤器 Interceptor拦截器 过滤器和拦截器的区别 规范不同 Filter是Servlet规范中定义的 是Servlet容器支持的 而拦截器是Spring容器内的 是Spring框架支持的
  • 测开面经总结的经常考察的知识点

    一 算法相关 1 熟悉常见的排序算法 冒泡排序 插入排序 选择排序 归并排序 堆排序 快排 希尔排序 二 计算机网络相关 1 http协议 http 超文本传输协议 是一个在客户端和服务器端之间基于请求与响应模式的 无状态的 应用层的协议
  • 【动态规划】最长公共子序列和最长公共子串(python)

    编写用时 2020年3月12日12 02 28 1h 动态规划经典例题 最长公共子序列和最长公共子串 python 很久之前大概是高中的时候写过这种题目 使用动态规划的方法求解的 现读研究生了 要把过去的拾起来的呢 1 最长公共子序列 LC
  • Java架构直通车——RabbitMQ集群架构模式

    文章目录 RabbitMQ四种架构模式 主备模式 远程模式 镜像模式 多活模式 RabbitMQ四种架构模式 主备模式 主备模式也被称为warren 兔子窝 一个主 备方案 主节点挂掉后 从节点提供服务 和ActiveMQ利用Zookeep
  • Java架构直通车——ThreadLocal实现RabbitMQ消息的批量发送

    文章目录 引入 什么是ThreadLocal 使用ThreadLocal 引入 之前 我们完成了单个消息的发送 以及单个消息发送的多线程池化 这里 我们继续完成批量发送消息的封装 因为rabbitMq本身是不支持批量发消息的 所以我们可以直
  • C++面试题目集合(持续跟新)

    与我前面写的C语言进阶知识点遥相呼应 这才是C 面试 网上的面试题有些太简单了 C 面试题目最多集中在对象的内存模型 记住了 如果用c c 内存都不清楚 还写个屁的程序 1 C 的虚函数是怎样实现的 C 的虚函数使用了一个虚函数表来存放了每
  • Linux内核内存管理算法Buddy和Slab

    文章目录 Buddy分配器 CMA Slab分配器 总结 Buddy分配器 假设这是一段连续的页框 阴影部分表示已经被使用的页框 现在需要申请一个连续的5个页框 这个时候 在这段内存上不能找到连续的5个空闲的页框 就会去另一段内存上去寻找5

随机推荐

  • 分支限界法解作业分配问题的实现(C++)

    include
  • Mac版本的After Effects 2023中英文切换方法

    打开ae模板会发现有许多系统的表达式错误 这些错误时由于系统语言不通导致的 只要更改下ae界面语言即可 那么如何将中文版的After Effects 2023 Mac版切换成英文版呢 新版本已经不能通过首选项更改语言设置了 要从applic
  • 国内直接下载google play谷歌商店apk安装包的网站【https://apkpure.com/】

    https apkpure com 这里可以直接下载google play 谷歌商店中的app
  • RedisTemplate使用最详解(一)--- opsForValue()

    1 set K var1 V var2 新增一个字符串类型的值 var1是key var2是值 key存在就覆盖 不存在新增 redisTemplate opsForValue set BBB 你好 2 set K key V value
  • $Luogu[P3673]$小清新计数题

    这他妈什么玩意儿 这里是可爱的链接菌 转化模型 对于第 i 句话 第 p 句话为真话 将 i p 连一条白边 第 p 句话为假话 将 i p 连一条黑边 显然我们的图会是一片基环树森林 并且边为无向边 白边连的两点真假相同 黑边相反 那么要
  • python存csv中文乱码问题

    这两天做了一个小测试是抓的天气信息本来想存数据库 后来觉得还是存csv比较好 使用方便 但是在使用的过程中 发现存中文的时候会出现乱码的情况 查了一下资料 跟大家分享一下python3中存csv乱码的问题 亲测在python2中是不能设置这
  • Linux脚本- 将当前文件夹以及所有子文件夹下的所有.cpp文件,拷贝到指定文件路径下

    需求 将当前文件夹以及所有子文件夹下的所有 cpp文件 拷贝到指定文件路径 home majn llvm project llvm cpp test suite下 以下是一个用于实现该功能的 Bash 脚本 它会递归地查找当前文件夹和所有子
  • mpvue 未找到入口 app.json 文件

    从网上下了个mpvue的程序下来 说是直接用微信打开目录就ok了 但是打开之后发现编译直接出错了 说 未找到入口 app json 文件 懵逼啊 原来要先运行 npm intall 安装依赖包 然后再运行 npm run dev 执行一下m
  • SQL Server数据导入导出工具BCP详解

    bcp是SQL Server中负责导入导出数据的一个命令行工具 它是基于DB Library的 并且能以并行的方式高效地导入导出大批量的数据 bcp可以将数据库的表或视图直接导出 也能通过SELECT FROM语句对表或视图进行过滤后导出
  • 磁盘分区基础和LINUX上硬盘分区设备号解释

    现在就开始讲讲分区 先明确一下概念 主分区 一块物理硬盘上可以被独立使用的一部分 一个硬盘最多可以有4个主分区 扩展分区 为了突破一个物理硬盘只能有4个分区的限制 引入了扩展分区 扩展分区和主分区的地位相当 但是扩展分区本身不能被直接使用
  • linux之getopt 函数

    命令行参数解析函数 getopt getopt 函数声明如下 include
  • mysql日期相减取小时

    mysql日期相减取小时 TIMESTAMPDIFF HOUR a StartTime a EndTime 转载于 https www cnblogs com penghq p 8657064 html
  • 各国语言对应翻译表

    为了工作方便 自己做了一个地区语言的英文翻译 让自己可以更快的找到自己需要的地方 同时 分享给大家 谢谢 中文 各国语言 翻译 序号 中文 翻译 1 阿尔巴尼亚语 2 阿拉伯语 3 阿姆哈拉语 4 阿塞拜疆语 Az rbaycan 5 爱尔
  • 本地springboot项目上传到gitee

    1 在gitee上新建一个仓库 创建后可以拿到仓库地址 https gitee com ouyangshuiming linux test git 2 选中 创建git仓库 3 4 最后一步 一定记得这里要写上一段话 才能成功提交 比如gi
  • Elasticsearch的一些基本概念

    文章目录 基本概念 文档和索引 JSON文档 元数据 索引 REST API 节点和集群 节点 Master eligible节点和Master节点 Data Node 和 Coordinating Node 其它节点 分片 Primary
  • 如何找到电脑自带的浏览器

    1 找到电脑自带的浏览器 首先就是进入你的C盘 然后在C盘里找到自己的如下路径 C Program Files internet explorer 找到成功 完成
  • Conan

    环境 ubuntu bionic的docker image shell docker run it ubuntu bionic 预装工具 shell apt get install cmake 安装conan shell pip3 inst
  • ViT常见的模型规格以及源码记录

    ViT常见的模型规格以及源码记录 综述 介绍 网络结构 模型规格 源码实现 综述 论文题目 AN IMAGE IS WORTH 16X16 WORDS TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
  • Java设计模式——单例模式(Singleton Pattern)

    从上一篇文章Java设计模式 装饰模式 Decorator Pattern 中估计大家都已经对java设计模式有了初步的理解 今天呢 阿Q就给大家讲一下另一种设计模式 单例设计模式 首先我们先来了解一下它的概念 单例模式是设计模式中最简单的
  • Java架构直通车——Java基础面试考点清单

    文章目录 基础 J U C jvm虚拟机 数据结构 算法 Spring RPC通信框架 网络通信 MQ 缓存 Mybatis 其他技术 基础 强引用 弱引用 虚引用 软引用 final关键字的作用 方法 变量 类 泛型 泛型继承 泛型擦除