2024年5月面试知识点梳理

news2024/9/24 3:29:30

2024年5月面试知识点梳理

  • 资料来源
  • Java基础
    • 泛型
    • 注解
    • 异常
    • 反射
    • SPI机制
    • Java集合
      • Collection
      • Map
  • 并发基础
    • 线程
    • 并发关键字
    • 并发集合
    • Lock核心类
    • 并发集合核心类
    • 原子类核心类
    • 线程池核心类
      • ScheduledThreadPoolExecutor
      • ForkJoinPool
      • FokJoinTask
    • JUC原子类: CAS, Unsafe和原子类详解
    • JUC 工具类
  • Java IO
    • 字节流
    • 字符流
  • Java 8 特性
  • 开发框架
    • Spring
    • Spring Boot
    • Mybatis
    • Tomcat
  • 虚拟机
  • MySQL
    • MySQL基础
    • MySQL主从复制
    • 集群
  • Redis
    • [小林Coding的Redis](<https://xiaolincoding.com/redis/ >)
      • 主从复制是怎么实现的
      • 哨兵模式
    • Redis集群
  • Zookeeper
  • 常用排序算法
  • 大数据处理算法
    • 何谓海量数据处理? 解决的思路?
    • 大数据处理之分治思想?
    • 加密算法
  • 架构相关
    • 缓存
    • 限流
    • 降级和熔断
    • 负载均衡
    • 灾备和故障转移
  • 开发工具
    • Git
    • Maven
  • 分布式
    • 一致性算法
    • 全局唯一ID
    • 分布式锁
    • 分布式事务
    • 分布式缓存
    • 分布式任务
    • 分布式会话
    • 常见系统设计
  • [网络](<https://xiaolincoding.com/network/ >)
  • 其他
    • 设计模式
    • 软件理论

本文是本次N+1后,开始找工作的面试准备,进行的一些常见的知识点的梳理,尽量全面,尽量争取拿到大厂Offer,持续更新…

资料来源

  • Java 全栈知识体系
  • Hello算法
  • 小林Coding

Java基础

面向对象、注解、泛型、集合、多线程、熟悉线程同步、阻塞队列、并发工具类、线程池

泛型

作用于方法、作用于集合、泛型上下限(PECS)、泛型擦除、伪泛型

注解

作用域、作用、自带注解、元注解

异常

分类、使用心得、Java 7 的 try-with-resource(AutoCloseable)、异常的底层(Exception Table)

反射

SPI机制

定义、常见应用、自定义应用场景

Java集合

Collection 和 Map 两种

Collection

Set(HashSet/TreeSet/LinkedHashSet)、List(ArrayList/Vector/LinkedList)、Queue(LinkedList/PriorityQueue)

Map

TreeMap/HashMap/HashTable/LinkedHashMap

并发基础

线程

解决了什么问题、创建、状态流转、中断方式、协作方式

并发关键字

synchronized(对象,对象监视器,同步队列以及执行线程状态之间的关系、缺点)/final/volatile(如何实现可见性)

并发集合

在这里插入图片描述

Lock核心类

在这里插入图片描述

并发集合核心类

在这里插入图片描述

原子类核心类

  • 原子更新基本类型

    • AtomicBoolean: 原子更新布尔类型。

    • AtomicInteger: 原子更新整型。

    • AtomicLong: 原子更新长整型。

  • 原子更新数组

    • AtomicIntegerArray: 原子更新整型数组里的元素。

    • AtomicLongArray: 原子更新长整型数组里的元素。

    • AtomicReferenceArray: 原子更新引用类型数组里的元素。

  • 原子更新引用类型

    • AtomicIntegerFieldUpdater: 原子更新整型的字段的更新器。

    • AtomicLongFieldUpdater: 原子更新长整型字段的更新器。

    • AtomicStampedFieldUpdater: 原子更新带有版本号的引用类型。

    • AtomicReferenceFieldUpdater: 上面已经说过此处不在赘述

  • 原子更新字段类

    • AtomicReference: 原子更新引用类型。

    • AtomicStampedReference: 原子更新引用类型, 内部使用Pair来存储元素值及其版本号。

    • AtomicMarkableReferce: 原子更新带有标记位的引用类型。

线程池核心类


ScheduledThreadPoolExecutor

ForkJoinPool

FokJoinTask



工作窃取

JUC原子类: CAS, Unsafe和原子类详解

JUC 工具类

CountDownLatch、CyclicBarrier、Semaphore、Phaser、Exchanger

Java IO

字节流

字符流


Java 8 特性

函数式编程(FunctionalInterface)、stream常用方法、Optional

开发框架

Spring

  • AOP 有哪些应用场景?
  • 有哪些AOP Advice通知的类型?
  • AOP 有哪些实现方式?
  • 谈谈你对CGLib的理解?
  • Spring AOP和AspectJ AOP有什么区别?
  • Spring中的bean生命周期?
    在这里插入图片描述
  • 说说自己对于Spring MVC的了解?
  • Spring MVC的工作原理了解嘛?
    在这里插入图片描述
  • Spring框架中用到了哪些设计模式?
  • @Component和@Bean的区别是什么?
  • 将一个类声明为Spring的bean的注解有哪些?
  • Spring事务管理的方式有几种?
  • Spring事务中的隔离级别有哪几种?
  • Spring事务中有哪几种事务传播行为?
  • Bean Factory和ApplicationContext有什么区别?
  • 如何定义bean的范围?
  • 可以通过多少种方式完成依赖注入?

Spring Boot

  • 什么是SpringBoot?
  • 为什么使用SpringBoot?
  • SpringBoot自动配置的原理?
  • Spring Boot的核心注解是哪些?他主由哪几个注解组成的?
  • SpringBoot的核心配置文件有哪几个?他们的区别是什么?
  • 什么是Spring Boot Starter?有哪些常用的?
  • spring-boot-starter-parent有什么作用?
  • 如何自定义Spring Boot Starter?
  • 为什么需要spring-boot-maven-plugin?
  • SpringBoot 打成jar和普通的jar有什么区别?
  • 如何使用Spring Boot实现异常处理?
  • SpringBoot 实现热部署有哪几种方式?
  • Spring Boot中的监视器是什么?
  • Spring Boot 可以兼容老 Spring 项目吗?

Mybatis

  • 什么是日志系统和日志门面?分别有哪些框架?
  • 日志库中使用桥接模式解决什么问题?
  • 在日志配置时会考虑哪些点?
  • 对Java日志组件选型的建议?
  • 对日志架构使用比较好的实践?
  • 对现有系统日志架构的改造建议?

Tomcat

  • Tomcat 整体架构的设计?
  • Tomcat 一个请求的处理流程?
  • Tomcat 中类加载机制?
  • Tomcat Container设计?
  • Tomcat LifeCycle机制?
  • Tomcat 中Executor?
  • Tomcat 中的设计模式?

虚拟机

熟悉JVM内存模型,内存结构、垃圾回收机制;了解CMS/G1垃圾回收器基本原理等

image.png
image.png

MySQL

MySQL基础

答案链接

  • 基础篇👇
    • 执行一条 SQL 查询语句,期间发生了什么?
    • MySQL 一行记录是怎么存储的?
  • 索引篇 👇
    • 索引常见面试题
    • 从数据页的角度看 B+ 树
    • 为什么 MySQL 采用 B+ 树作为索引?
    • MySQL 单表不要超过 2000W 行,靠谱吗?
    • 索引失效有哪些?
    • MySQL 使用 like “%x“,索引一定会失效吗?
    • count(*) 和 count(1) 有什么区别?哪个性能最好?
  • 事务篇 👇
    • 事务隔离级别是怎么实现的?
    • MySQL 可重复读隔离级别,完全解决幻读了吗?
  • 锁篇 👇
    • MySQL 有哪些锁?
    • MySQL 是怎么加锁的?
    • update 没加索引会锁全表?
    • MySQL 记录锁+间隙锁可以防止删除操作而导致的幻读吗?
    • MySQL 死锁了,怎么办?
    • 字节面试:加了什么锁,导致死锁的?
  • 日志篇 👇
    • undo log、redo log、binlog 有什么用?
  • 内存篇 👇
    • 揭开 Buffer_Pool 的面纱

MySQL主从复制

答案链接

  • 原理和SQL
    • 什么是事务?
    • 事务基本特性ACID?
    • 数据库中并发一致性问题?
    • 事务的隔离等级?
    • ACID靠什么保证的呢?
    • SQL 优化的实践经验?
    • Buffer Pool、Redo Log Buffer 和undo log、redo log、bin log 概念以及关系?
    • 从准备更新一条数据到事务的提交的流程描述?
  • MySQL
    • 能说下myisam 和 innodb的区别吗?
    • 说下MySQL的索引有哪些吧?
    • 什么是B+树?
    • 为什么B+树成为主要的SQL数据库的索引实现?
    • 那你知道什么是覆盖索引和回表吗?
    • 什么是MVCC?
    • 说说MySQL实现MVCC的原理?
    • MySQL 锁的类型有哪些呢?
    • 你们数据量级多大?分库分表怎么做的?
    • 那分表后的ID怎么保证唯一性的呢?
    • 分表后非sharding_key的查询怎么处理呢?
    • MySQL主从复制?
    • MySQL主从的延迟怎么解决呢?
    • MySQL读写分离方案?

集群

Redis

小林Coding的Redis

小林Coding
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主从复制是怎么实现的

第一次同步 -> 命令传播
分摊主服务器的压力
增量复制

常见面试题

  • Redis主从节点时长连接还是短连接
  • 怎么判断 Redis 某个节点是否正常工作?
  • 主从复制架构中,过期key如何处理?
  • Redis 是同步复制还是异步复制?
  • 主从复制中两个 Buffer(replication buffer 、repl backlog buffer)有什么区别?
  • 如何应对主从数据不一致?
  • 主从切换如何减少数据丢失?
  • 主从如何做到故障自动切换?

哨兵模式

在这里插入图片描述

Redis集群

Redis数据结构(快表、跳表)、Redis哨兵模式、Raft选举、主从复制原理、利用watch实现分布式锁、Redis watch功能?
Redis Stream

Zookeeper

数据结构、数据同步流程、以及选举机制,熟悉数据发布-订阅、分布式锁等使用场景;

常用排序算法

大数据处理算法

何谓海量数据处理? 解决的思路?

所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。那解决办法呢?

  • 针对时间: 我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie树;
  • 针对空间: 无非就一个办法: 大而化小,分而治之(hash映射);
  • 集群|分布式: 通俗点来讲,单机就是处理装载数据的机器有限(只要考虑cpu,内存,硬盘的数据交互); 而集群适合分布式处理,并行计算(更多考虑节点和节点间的数据交互)。

大数据处理之分治思想?

分而治之/hash映射 + hash统计 + 堆/快速/归并排序,说白了,就是先映射,而后统计,最后排序:

  • 分而治之/hash映射: 针对数据太大,内存受限,只能是: 把大文件化成(取模映射)小文件,即16字方针: 大而化小,各个击破,缩小规模,逐个解决。
  • hash_map统计: 当大文件转化了小文件,那么我们便可以采用常规的hash_map(ip,value)来进行频率统计。
  • 堆/快速排序: 统计完了之后,便进行排序(可采取堆排序),得到次数最多的IP。

加密算法

架构相关

缓存

  • 使用缓存的经验?
    不合理使用缓存非但不能提高系统的性能,还会成为系统的累赘,甚至风险。 12-2-缓存

限流

  • 什么是限流?三种限流的算法?
  • 限流令牌桶和漏桶对比?
  • 在单机情况下如何实现限流?
  • 在分布式环境下如何实现限流?

降级和熔断

  • 为什么会有容错?一般有哪些方式解决容错相关问题?
  • 谈谈你对服务降级的理解?
  • 什么是服务熔断?和服务降级有什么区别?
  • 如何设计服务的熔断?
  • 服务熔断有哪些实现方案?

负载均衡

  • 什么是负载均衡?原理是什么?
  • 负载均衡有哪些分类?
  • 常见的负载均衡的算法?

灾备和故障转移

  • 什么是容灾?一般基于什么实现?
  • 一般怎么实现灾备?

开发工具

Git

Maven

  • Maven中包的依赖原则?如何解决冲突?

分布式

一致性算法

  • 什么是分布式系统的副本一致性?有哪些?
  • 在分布式系统中有哪些常见的一致性算法?
  • 谈谈你对一致性hash算法的理解?
  • 什么是Paxos算法? 如何实现的?
  • 什么是Raft算法?

全局唯一ID

  • 全局唯一ID有哪些实现方案?
  • 数据库方式实现方案?有什么缺陷?
  • 雪花算法如何实现的?
  • 雪花算法有什么问题?有哪些解决思路?

分布式锁

  • 有哪些方案实现分布式锁?
  • 基于数据库如何实现分布式锁?有什么缺陷?
  • 基于redis如何实现分布式锁?有什么缺陷?
  • 基于zookeeper如何实现分布式锁?

分布式事务

  • 什么是ACID?
  • 分布式事务有哪些解决方案?
  • 什么是分布式的XA协议?
  • 什么是2PC?
  • 什么是3PC?
  • 什么是TCC?
  • 什么是SAGA方案?
  • ZAB

分布式缓存

  • 分布式系统中常用的缓存方案有哪些?
  • 分布式系统缓存的更新模式?
  • 分布式系统缓存淘汰策略

分布式任务

  • Java中定时任务是有些?如何演化的?
  • 常见的JOB实现方案?

分布式会话

  • Cookie和Session有什么区别?
  • 谈谈会话技术的发展?
  • 分布式会话有哪些解决方案?
  • 什么是Session Stick?
  • 什么是Session Replication?
  • 什么是Session 数据集中存储?
  • 什么是Cookie Based Session?
  • 什么是JWT?使用JWT的流程?对比传统的会话有啥区别?

常见系统设计

  • 如何设计一个秒杀系统?
  • 接口设计要考虑哪些方面?
  • 什么是接口幂等?如何保证接口的幂等性?

网络

  • SYN洪泛攻击(SYN Flood,半开放攻击),怎么解决?
  • DNS 解析流程?
  • 为什么DNS通常基于UDP?
  • 什么是DNS劫持?
  • 什么是DNS污染?
  • 为什么要DNS流量监控?
  • 输入URL 到页面加载过程?
  • 如何使用TCPDump抓包?
  • 如何使用Wireshark抓包分析?

其他

设计模式

软件理论

  • 什么是CAP理论?
  • 什么是BASE理论?
  • 什么是SOLID原则?
  • 什么是合成/聚合复用原则?
  • 什么是迪米特法则?
  • 什么是康威定律?
    、算法、项目、MQ、分库分表、Flink、MongoDB、ClickHouse、DDD、Faiss

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1678099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】linux | 配置系统日志 | 安全日志 | 操作日志 | 登录日志

一、诉求 1、linux服务器开启日志功能&#xff0c;并记录10个月的登录 二、操作 1、进入目录 cd /etc 2、编辑配置 vi logrotate.conf 3、复制配置 /var/log/wtmp {monthlycreate 0664 root utmpminsize 1Mrotate 10 }/var/log/btmp {missingokmonthlycreate 0600 root …

多客陪玩系统,陪玩系统源码,线下搭子,爆改家政整理师等功能,陪玩预约系统 定制化陪玩系统,陪玩软件APP小程序H5游戏陪玩成品软件源码

简述 陪玩系统源码是指一款游戏陪玩平台的程序代码。陪玩系统通常是一个在线平台&#xff0c;可以让用户通过该平台找到愿意为他们提供游戏陪玩服务的人员&#xff0c;从而帮助他们在游戏中取得更好的成绩。这种系统通常包括客户端和服务器端两个部分&#xff0c;客户端用于用…

【强训笔记】day23

NO.1 思路&#xff1a;直接计算结果&#xff0c;先计算怪物可以抗几次攻击&#xff0c;再计算勇士受到的伤害&#xff0c;如果勇士的攻击力大于等于怪物的血量&#xff0c;那么就可以击杀无数只&#xff0c;如果勇士的血量正好是受到攻击的整数倍&#xff0c;那么击杀的怪物数…

服务攻防——应用协议软件,设备平台

向日葵利用 vnc利用5900端口 当为none就可以直接连接&#xff0c;而其他几种密码也能破解 可以使用hydna来尝试爆破 teamviewer(cve2020-13699) 让对方点击这个网站&#xff0c;就会 触发 zabbix 端口10051 cve2020 手工 点击这个 找到cookie 然后不需要密码就能进…

手心经常出汗、多汗是怎么回事?

点击文末领取揿针的视频教程跟直播讲解 手心爱出汗是一种怎样的体验&#xff1f; 手握着鼠标&#xff0c;一会儿就变得湿漉漉&#xff0c;小心翼翼拿着手机&#xff0c;防止它从满是汗的手掌滑出去……其实手心总出汗可能是一种病。 很多人都有手掌心出汗的症状。如果年轻健康…

【leetcode面试经典150题】-26. 删除有序数组中的重复项

26. 删除有序数组中的重复项 1 题目介绍1 个人解题思路1.1 解题代码1.2 思路解析 2、分析官方题解2.1 快慢双指针 1 题目介绍 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新…

佛山信息学真题 桂城-2021-五年级1.2

一、两位数&#xff08;GC4091&#xff09; GC4091 GC.2021.五年级.01.两位数http://43.139.152.26/d/DH_Trial/p/GC4091 题目描述 小明正在思考一个数学问题&#xff1a;有一个两位数&#xff0c;它的十位数大于等于个位数。现已知它的十位数和个位数之和为a&#xff0c;十位…

在pycharm添加pyqt5外部工具插件

一&#xff1a;查看环境所在位置以及安装pyqt5库 1、打开anaconda&#xff0c;输入以下命令&#xff0c;查看环境名&#xff0c;以及环境所在位置。 conda info --envs 从图中得知以下信息&#xff0c;下面根据自己实际情况&#xff0c;记住环境名和路径 ①环境名是&#xf…

Google IO 2024有哪些看点呢?

有了 24 小时前 OpenAI 用 GPT-4o 带来的炸场之后&#xff0c;今年的 Google I/O 还未开始&#xff0c;似乎就被架在了一个相当尴尬的地位&#xff0c;即使每个人都知道 Google 将发布足够多的新 AI 内容&#xff0c;但有了 GPT-4o 的珠玉在前&#xff0c;即使是 Google 也不得…

数据结构_链表基本操作的实现_代码_例题

一、基本操作实现 1.按位序插入&#xff08;带头节点&#xff09; 2.按位序插入&#xff08;不带头节点&#xff09; 3.指定结点的后插操作 4.指定结点的前插操作 5.按位序删除&#xff08;带头节点&#xff09; 6.指定结点的删除 7.按位查找&#xff0c;返回第i个元素&…

优雅谈论大模型8:神经网络与矩阵

向量与矩阵 上个章节的神经网络是为了解Transformer或者Mamba做好铺垫&#xff0c;在和后辈交流过程中发现有个障碍&#xff0c;那就是向量和矩阵。其实向量和矩阵的表达方式不是所有人都很习惯。在继续下面的章节之前小编认为有必要将向量、矩阵和神经网络做下补充解释。 向…

【完美恢复】修复计算机中丢失emp.dll的多个详细方法

最近&#xff0c;在尝试运行某款游戏时&#xff0c;我遭遇了一个令人头痛的问题——“emp.dll文件丢失”。这个错误通常意味着游戏的某个关键文件没有被正确加载或已损坏。以下是我解决问题的步骤和一些心得体会&#xff0c;希望对遇到类似问题的玩家们有所帮助。 emp.dll是一…

BI软件超实用功能揭秘

面对海量数据、复杂的指标计算和分析&#xff0c;BI软件都能轻而易举地达成&#xff0c;并且所用时间远远低于一般的分析软件。这背后自然是得益于一众强大的功能&#xff0c;接下来就来一起了解下BI软件那些超实用的功能。 1、标准化方案&#xff0c;更新数据源&#xff0c;立…

Anaconda下载安装

看到这篇文章的同学们&#xff0c;说明你们是要下载Anaconda&#xff0c;这篇文章讲的就是下载安装教程。 Anaconda下载网址&#xff1a; Download Now | Anaconda 根据我们需要的系统版本下载&#xff0c;我的电脑是window&#xff0c;所以选择第一个&#xff0c;如下图&am…

MIT 6.5840(6.824) Lab2:Key/Value Server 设计实现

1 实验要求 在本次 Lab 中&#xff0c;你将在单机上构建一个键/值服务器&#xff0c;以确保即使网络出现故障&#xff0c;每个操作也只能执行一次&#xff0c;并且操作是可线性化的。 客户端可以向键/值服务器发送三个不同的 RPC&#xff1a; Put(key, value) 、 Append(key,…

项目中使用Elasticsearch的API相关介绍

项目中使用Elasticsearch的API相关介绍 0、域映射类型 text&#xff1a;会分词&#xff0c;不支持聚合对当前搜索关键词&#xff0c;先自身分词&#xff0c;分成多个词&#xff0c;然后去一个一个的词去利用倒排索引去查询es索引库一般应用在搜索关键字匹配的字段的类型。 商…

如何解决 CentOS 双网卡配置的内外网通信问题?

&#x1f42f; 如何解决 CentOS 双网卡配置的内外网通信问题&#xff1f;&#x1f43e; 博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的…

Spring学习①__Spring初识

Spring Spring初识一、框架二、Spring&#xff08;春天&#xff09;简介Spring官网Spring是什么?Spring介绍拓展 Spring初识 一、框架 ​框架就是一些类和接口的集合&#xff0c;通过这些类和接口协调来完成一系列的程序实现。 JAVA框架可以分为三层&#xff1a; 表示层业务…

【网络安全】【Frida实战案例】某图xx付费功能逆向分析(二)

文章目录 一、目标应用二、环境三、步骤1、重打包2、运行打包后apk3、找到签名信息&#xff08;1&#xff09;、查看apk签名信息&#xff08;2&#xff09;、hook Android方法获取apk签名信息&#xff08;3&#xff09;、转为md5验证 4、hook apk签名信息 四、总结五、相关源码…

【稳定检索|投稿优惠】2024年医学、药学与生物工程国际会议(ICMPB 2024)

2024年医学、药学与生物工程国际会议&#xff08;ICMPB 2024&#xff09; 2024 International Conference on Medicine, Pharmacy, and Biotechnology 【会议简介】 2024年医学、药学与生物工程国际会议将于长沙召开。此次会议将汇聚全球医学、药学与生物工程领域的顶尖学者…