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基础面试考点清单 的相关文章

  • Java并发编程实战——彻底理解volatile

    文章目录 volatile作用 volatile实现原理 volatile的happens before关系 volatile的内存语义 volatile重排序与JMM内存屏障 volatile的使用误区 volatile的适用场景 vol
  • 编程技术面试的五大要点

    文 何海涛 扎实的基础知识 高质量的代码 清晰的思路 优化代码的能力 优秀的综合能力是编程技术面试的五大要点 找工作一直是一个热门话题 要想找到心仪的工作 难免需要经过多轮面试 编程面试是程序员面试过程中最为重要的一个环节 如果能在编程面试
  • 面试准备:Spring/Spring MVC常见面试题汇总

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

    文章目录 1 为什么要有用户态和内核态 内核态和用户态的运作方式 2 进程间通信方式介绍 3 Linux查看进程状态 cpu状态 占用端口的进程号的命令 linux top命令VIRT RES SHR DATA的含义 4 什么是Swap 5
  • 面试准备:Mybatis常见面试题汇总

    文章目录 1 和 的区别是什么 2 当实体类中的属性名和表中的字段名不一样 怎么办 3 模糊查询like语句该怎么写 4 Mybatis 一对一 一对多的xml怎么写 5 Dao 接口的工作原理是什么 Dao 接口里的方法 参数不同时 方法
  • Java架构直通车——结合源码理解PageHelper

    PageHelper实现方式 PageHelper首先将前端传递的参数保存到page这个对象中 接着将page的副本存放入ThreadLoacl中 这样可以保证分页的时候 参数互不影响 接着利用了mybatis提供的拦截器 取得Thread
  • 零拷贝的实现原理

    文章目录 引入 DMA PageCache 零拷贝 mmap sendfile SG DMA 使用零拷贝技术的项目 引入 在Java架构直通车 Kafka介绍和高性能原因一节中 介绍了Kafka的Zero Copy技术 本文将深入探究一下Z
  • 面试准备:Java新特性详解

    文章目录 Java语言新特性 1 Lambda表达式和函数式接口 2 接口的默认方法和静态方法 3 方法引用 4 重复注解 5 更好的类型推断 6 拓宽注解的应用场景 Java编译器新特性 参数名称 JVM的新特性 更多资料 参考 java
  • 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常见面试题汇总 一 面试准备 Java常见面试题汇总 二 面试准备 Java常见面试题汇总 三 文章目录 43 java 中的 Math round 1 5 等于多少 44 String str abc 与 String
  • Java架构直通车——Java基础面试考点清单

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

    文章目录 引入 AVL树和B树 AVL树 红黑树 B树 B 树 数据库为什么不使用二叉树 为什么使用B 树 与B树的区别 引入 AVL树和B树 AVL树 平衡二叉搜索树是基于二分法的策略提高数据的查找速度的二叉树的数据结构 平衡二叉搜索树的
  • 面试准备:海量数据的处理方式

    文章目录 背景 数据排序 分治 字典树 数据去重 哈希 压缩存储空间 面试题汇总 1 TopK 2 查找中位数 3 随机选择K个数 4 找出出现次数最多的IP 背景 海量数据的处理主要包括三个方面 数据排序 数据统计 数据计算 我们可以简单
  • Java架构直通车——过滤器和拦截器使用

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

    一 算法相关 1 熟悉常见的排序算法 冒泡排序 插入排序 选择排序 归并排序 堆排序 快排 希尔排序 二 计算机网络相关 1 http协议 http 超文本传输协议 是一个在客户端和服务器端之间基于请求与响应模式的 无状态的 应用层的协议
  • Java架构直通车——RabbitMQ集群架构模式

    文章目录 RabbitMQ四种架构模式 主备模式 远程模式 镜像模式 多活模式 RabbitMQ四种架构模式 主备模式 主备模式也被称为warren 兔子窝 一个主 备方案 主节点挂掉后 从节点提供服务 和ActiveMQ利用Zookeep
  • 面试准备:MySQL建立索引的原则

    文章目录 建立索引 1 和in可以乱序 2 最左前缀匹配原则 3 尽量选择区分度高的列作为索引 4 索引列不能参与计算 5 尽量的扩展索引 不要新建索引 6 为经常需要排序 分组和联合操作的字段建立索引 7 为常作为查询条件的字段建立索引
  • C++实现String类

    C 实现String类 还没有完成 待继续 有以下注意的点 1 赋值操作符返回的是一个MyString 而重载的 返回的是一个MyString 其中的原因参看 effective c 主要是返回引用的时候 必须返回必须在此函数之前存在的引用

随机推荐

  • 分支限界法解作业分配问题的实现(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关键字的作用 方法 变量 类 泛型 泛型继承 泛型擦除