快手三面(Java岗),意向已拿,盘点一下面试官都问了些啥?

快手三面(Java岗),意向已拿,盘点一下面试官都问了些啥?
最新回答
野港

2023-04-04 20:16:12

在快手三面(Java岗)的面试中,面试官可能会问到的问题涵盖了多个方面,包括基础概念、集合框架、并发编程、IO与NIO、JVM相关知识、Spring框架、MySQL数据库、网络知识、Redis缓存、Kafka消息队列、分布式系统、微服务架构、设计模式、算法题以及系统设计等。以下是对这些问题的详细盘点:

一、基础概念
  • 数据类型占字节数:int、float、short、double、long、char各占多少字节。
  • 数据范围:int和float的取值范围。
  • hashcode和equals:它们的关系以及各自的作用。
  • 深拷贝与浅拷贝:两者的区别及实现方式。
  • Java异常体系:RuntimeException、Exception、Error的区别及常见例子。
  • lambda表达式:为什么在使用外部变量时需要是final或effectively final。
二、集合框架
  • Collection接口:其子接口及具体实现类。
  • ArrayList:实现原理、添加和取值操作、扩容机制。
  • HashMap:原理、是否支持并发读、并发写的问题。
  • ConcurrentHashMap:原理、头插法还是尾插法、扩容机制。
  • :存储方式及插入位置。
  • 集合迭代:在迭代过程中插入或删除数据的影响。
三、并发编程
  • 线程与进程:区别、并行与并发的概念、协程的了解。
  • 进程间通信:进程A读取进程B主存的方法。
  • 线程间通信:方式及线程生命周期的状态转换。
  • wait与sleep:区别及适用场景。
  • 停止线程:方法。
  • 线程控制:如何控制多个线程按序执行。
  • 线程池:使用方式、实现原理、常用线程池、ThreadPoolExecutor参数、拒绝策略等。
  • :种类、区别、实现原理、ReentrantLock应用场景、死锁条件。
  • AQS:底层实现原理、实现类、AtomicInteger底层实现。
  • volatile:作用、可见性理解及适用场景。
  • ThreadLocal:原理及存储位置。
四、IO与NIO
  • NIO:了解程度及与BIO的区别。
  • Netty:原理了解。
五、JVM相关知识
  • 内存区域:JVM内存分布及GC发生的部分。
  • 垃圾回收:过程、算法、回收器(如G1)的了解。
  • 容器与JVM内存:关系及参数配置。
  • JVM调优:线上JVM参数调整、OOM问题排查思路等。
  • 性能排查:CPU使用率高、频繁GC的排查方法。
  • 类加载器:实现方式、加载过程、初始化顺序。
六、Spring框架
  • Spring介绍:基本概念及作用。
  • IOC与AOP:原理及作用。
  • IOC循环依赖:防止方法。
  • AOP实现原理:动态代理过程。
  • Tomcat与Spring:关系及controller的作用。
  • Spring Boot Starter:自加载实现及生命周期阶段。
  • Spring请求处理:过程。
七、MySQL数据库
  • 数据仓库与MySQL:区别及Hive、Spark、Hadoop的比较。
  • 事务:ACID含义、隔离级别、幻读解决方法。
  • MySQL锁:种类及适用场景。
  • MyISAM与InnoDB:区别及InnoDB的优势。
  • MVCC:原理及多版本数据存放位置。
  • 日志:redo log、undo log的作用。
  • 索引:InnoDB索引结构、聚簇索引、B+树与B树、二叉树的区别及优势、多列索引结构等。
  • SQL优化:join与in的选择、union与union all的区别、慢查询处理、索引使用不当的处理等。
  • 分库分表:策略及保证ID唯一的方法。
  • UUID:理解及GUID、Random算法的比较。
  • 主键选择:随机ID、UUID、自增ID的优缺点及影响。
  • 主从复制:过程、原理及强一致性保证方法。
八、网络知识
  • TCP:可靠性机制、拥塞控制、close_wait处理、三次握手与四次挥手。
  • HTTP:HTTP/2新增功能、版本、缓存机制、CDN、header缓存字段、cookie与session、HTML页面与后端交互流程、协议报文格式、keepalive作用、HTTPS原理、状态码、请求方法等。
  • 前后端分离:区别及优缺点。
  • Web攻击:常见类型及CSRF攻击了解。
  • RESTful:作用及优缺点。
  • Nginx:负载均衡方法、算法及优缺点。
九、Redis缓存
  • Redis数据结构:种类、对象及使用场景。
  • 内存淘汰策略:了解及选择方法。
  • 缓存处理:热点Key处理、缓存穿透避免方法。
  • Redis命令:keys命令的缺点。
  • 主从同步:原理及新加从库过程。
  • RDB与AOF:选择方法及适用场景。
  • zset:使用场景及底层实现。
  • 分布式锁:实现方法。
十、Kafka消息队列
  • Kafka功能:使用场景及功能。
  • Kafka原理:内部原理及工作流程。
  • 数据可靠性:保证方法。
  • Exactly-Once:实现方法。
十一、分布式系统
  • 分布式组件:熟悉程度及简单介绍。
  • CAP理论:含义及MySQL满足的部分。
  • 分布式锁:实现方式及优缺点。
  • 一致性Hash:了解及实现数据结构选择。
十二、微服务架构
  • 微服务体系:使用体系。
  • 熔断:概念、原理、令牌桶、三个状态关系。
  • 熔断性能:对性能的影响及线上熔断经历。
  • RPC:概念及幂等性实现方法。
  • 微服务优缺点:了解。
  • 配置中心:选项及Apollo架构、已加载数据无感更新方法。
十三、设计模式
  • 工厂方法:与抽象工厂的区别。
  • 装饰器与代理:区别。
  • 单例:实现方法、懒加载单例双重校验锁及原因。
十四、算法题
  • 排序算法:常用排序算法及时间复杂度。
  • 手写快排:实现及时间复杂度。
  • 稳定性:快排是否稳定及稳定性定义。
  • 最长子串:给定字符串中不含有重复字符的最长子串长度。
  • 硬币问题:9个硬币中有一个劣币,用天平秤最坏几次找出。
  • 深度优先与广度优先:了解。
  • 数字转中文:实现方法。
  • 括号匹配:时间复杂度及空间复杂度。
  • 链表排序与加法:单向链表的归并排序、链表做加法。
  • 大文件处理:1G大小文件,每行最大16k单词,限制内存1m,统计单词频率最多的100个单词。
  • 大数字减法:手写100位带小数的大数字的减法。
  • 全排列:实现及进阶问题(给定数组长度n,求第k行的排列)。
十五、系统设计
  • 文章爬取:一天爬一千万条文章的设计及并行协调、负载均衡方法。
  • 秒杀系统:设计方法及解决大并发问题。
  • 抢红包系统:设计注意点。
  • 微博社交系统:高效设计、索引设计、缓存设计等。
  • 生产者消费者模型:Java手动实现。
  • 视频上传流程:表设计、文件上传服务器原理、CDN使用、高QPS处理方法等。
  • 分布式ID生成:方法及其优缺点。
  • 反羊毛:方法。
  • 智能家居系统:设计方法及考虑点。
  • 登录过程:设计方法及MD5原理、可逆性。
十六、面试结尾问题
  • 部门与岗位:定位及职责。
  • 业务与加班:目前业务情况及加班情况。
  • 薪酬福利:介绍。
  • Offer情况:手头offer、其他公司面试流程、倾向性、预期薪酬、想加入的团队、绩效情况等。

此外,面试过程中还可能涉及一些大厂高频面试题,以及面试官对候选人个人情况的询问,如个人经历、项目经验等。在面试前,建议候选人充分准备,对以上知识点进行复习和巩固,以提高面试通过率。

(以上图片为大厂高频面试题示例)