万里长征
type
status
date
slug
summary
tags
category
icon
password
引言1.贝壳2.跟谁学3.搜狐4.脉脉5.小米6.百度7.美团8.字节9.快手10.科大讯飞11.美团12.滴滴13.滴滴14.佰钧成15.佰钧成16.美团17.美团18.美团19.美团20.腾讯 21.腾讯22.顺丰23.快手 24.百度25.滴滴26.华为 27.小红书大数据28.Soul29.阿里 30.字节31.校招阿里32.阿里33.三年腾讯34.五年饿了么35.三年字节36.三年字节37.京东38.雪球39.Boss40.Opay41.叮咚42.阿里43.美团44.阿里45.蚂蚁46.中通47.比特大陆48.美团49.Shein50.同花顺51.阿里52.五年VIVO53.金蝶写到最后
引言
待到秋来九月八,我花开后百花杀
1.贝壳
- LeetCode 199,二叉树右视图。
- Dubbo跟 SpringCloud 区别,自己从宏观到细节简单对比着说下。
- 限流算法中的令牌跟漏斗区别。Zuul 作用。
- 项目细节讲解,流程图,瓶颈在哪儿。
- 开发人员写出死循环,发布上线后如何查出此问题来。
- QPS,如何压测,性能测试,性能指标。
- 性能优化经验,聊一聊。
- 线程池说下,如果一堆线程任务有20%概率失败,如何保证100% 成功。
- 关于图数据库的不同种类了解及对比,比如Neo4j、DGraph、GanusGraph。
2.跟谁学
- LeetCode 662.二叉树最长直径。
- 秒杀场景设计,逐步引导设计思路。
- 如果项目数据量、并发度扩大十倍咋办,哪儿是性能瓶颈。
- 消息中间件,如何保证消息不丢失,如何实现消息消费顺序性。Kafka为什么那么快,Kafka重平衡问题。
- SpringCloud那套东西的压力感。
- MySQL理解,事务隔离级别,MVCC,三个日志文件作用。
- 现在做的东西的数据并发量跟业务复杂度探讨。
- 操作系统中的阻塞、非阻塞、同步、异步、BIO、NIO、AIO细节。
- LeetCode 215 TOP K。
- Redis跟MySQL缓存一致性
- 你对Dubbo底层理解。
- 你对DDD的理解。
3.搜狐
- MapJoin 是什么?
- Hive 数据倾斜 咋办?
- cluster by order by reduce by distribute by区别。
- Kafka 为何那么快。
- MySQL B树 B+树区别。
- UDF、Spark、Netty、BIO、NIO、AIO框架。
- LeetCode 103. 二叉树的锯齿形层序遍历。
- 项目介绍,框架流程图,自己负责的部分,数据治理的理解及实战场景。
- MapReduce流程, Shuffle过程细节,数据倾斜如何避免。
- hive语句书写,开窗函数的考察。
- ZooKeeper的理解,分布式事务2PC、3PC、TCC、Paxos实现思路及优缺点。
- LeetCode 5. 最长回文子串。
- HBase架构图,LSM理解。
- Spark在工作中的应用细节。
- Scala语言的熟悉程度,Scala跟Java的区别关系。
4.脉脉
- MySQL 优化 查询 如何优化这些操作。
- MySQL的 ACID理解,如何保证的,MySQL底层架构是啥。
- Redis的几个基本数据类型,底层实现。
- RabbitMQ工作的几种不同模式,数据如何保证顺序性跟不丢失,如何避免数据重复消费。
- Linux 常见指令(说点高级指令比如tmux,awk,别扯 ls、cd)。
- MySQL为什么不建议用Text。
- MySQL limit 10W,10 这样的优化,覆盖索引的使用。
- Linux CPU满负荷如何排查。
- 链表是否有环, 如何找到交点,计算出环的大小。
- 一个字符串中的最长无重复子串。
- 一个帖子来回回复如何存储,如何设计。
- 一个数组包含10W个数据,数据范围都在0~100,请求出两数相加和为100的情况一共多少种。
- 分布式锁实现方案。
- Redis为什么那么快,Redis底层实现。
- RabbitMQ 中的TTL。
- Redis中常见集群部署情况,出现性能问题如何排查。
5.小米
- 两个字符串求最长公共子序列,最长子串。输出字符串结果的那种。
- Hbase的理解,LSM演变过程。
- 数据治理方面的理解。
- 简单SQL语句考察,MySQL各种索引跟如何优化。
- Kafka 重平衡,Kafka架构图的理解,读写流程。
- LeetCode TOP K 。
- 你对Spring的理解,循环依赖。
- 不停机修改MySQL一个字段,如何对MySQL进行服务器扩容。
- RabbitMQ 如何保证消息不丢失,如何保证消息顺序性。
- 1G内存,1T文件,想找到出现次数第二大的字符串。
- 进程间通信几种方式,每种方式的优劣性。
- 地球上所有湖泊跟大海的体积如何求
- 内核态跟用户态的理解,操作系统的几个核心点及调度算法。
- 实现字符串语句翻转比如 I LOVE C++ 变为 C++ LOVE I。
6.百度
- TCP 阻塞如何解决。
- Java HashMap 7 跟 8 的流程设计理念,为什么7中会出现环。
- Java 线程池参数。
- Synchronized 的理解。
- ReentrentLock 优势跟用法。
- 公平锁跟 非公平锁 的理解。如何抉择用哪个。
- Redis中的事务。
- Redis中的zset底层。
- Redis IO多路复用机制。
- Kafka 为什么那么快,消费者组的理解,Kafka的重平衡。
- MySQL隔离级别,MVCC理解。
- Spring AOP的理解,实现原理,String字符串拼接成目标类然后通过反射出所需class。
- LeetCode 572,判断 一个二叉树在另外一个二叉树中。
- 二叉树左右节点互换,自己写出求解过程及测试用例。
- 区间合并,自己写出求解过程及测试用例。
- 多个链表进行合并,自己写出求解过程及测试用例。
- HBase底层架构组成,LSM理解。
- Clickhouse跟Spark的理解。
7.美团
- 图数据的引擎了解么,简单聊一聊,Dgraph,JanusGraph。
- 你对高并发的理解。
- 二叉树转换为双向链表,剑指offer 36 。
- JVM 垃圾回收器 聊一聊,CMS优缺点,三色标记法过程细节,G1的优缺点跟实现过程 。
- HashMap 跟 ConcurrentHashMap 区别跟细节实现,线程不安全在哪里?
- Hive底层执行流程了解么。
- 进程A操作变量x,然后报变量地址写入磁盘,进程B是否可以操作。
- 类似360开机打败全国多少那种设计,正态分布。定期更新模型核心参数。
- TCP 知识点考察。
- 前端请求从发出到最终得到响应,整个数据的流转过程。
- 设计一个数据结构支持O(1)的insert、remove、random。
- RabbitMQ 跟 Kafka 对比下,说下对MQ的理解。
- mmap java里怎么实现的,ZeroCopy的演变历程。
- 在线服务如何保证稳定性
- 常用的负载均衡算法,自己选择个负载均衡算法来实现并进行自测。
- Dubbo 跟 Spring Cloud 开发的区别跟理解。
- 常用限流方法,自己咋实现。
- 分布式链路追踪的实现跟理解。
- 对数据治理的理解。
- 对JUC的理解。
- 对于数据治理的理解,Java开发 + 大数据开发 + BI 报表 + 推荐搜索,整个数据流转的过程的认知。
8.字节
- 项目介绍,你负责的模块,技术难点。
- Kafka为什么那么快,Kafka重平衡咋处理的
- HTTP的发展史理解优缺点,公钥、私钥理解跟加密过程。
- 操作系统内存、进程、IO、文件管理的理解,自己大致说下理解。
- Leetcode 8.atoi ,注意边界问题。
- Hive执行底层流程。
- Hadoop的发展史,自己说下HDFS、MapReduce、Yarn等组件跟数据流转过程。
- Kafka生产者消费者速度不平衡咋办,Kafka重平衡。
- Redis跟MySQL那套八股文的知识点。
- LeetCode 236. 二叉树的最近公共祖先。
- ZooKeeper 的理解。
- 数据重复消费如何解决。
- RabbitMQ 跟 Kafka 聊一聊 宏观 自己说那种。
- 线程池如何实现参数的动态修改。
- Hive执行的底层原理。
- 字符串消消乐。
9.快手
- 链表是否存在环,如果存在咋找到入口,如何获得环长度,为什么fast是2步,345步行不行?
- 线程咋打断,interrupt 用法。
- LeetCode 124,给定一个非空二叉树,返回最大路径和。
- JUC 高频八股文考点。
- syn跟Lock对比,如何进行选择性使用呢。
- BitMap 统计那些数据出现过,那些没出现过。
- 还有好几个是场景设计思考的题,当时能说个12,然后面试官会引导你,看你是否能说出个3来。
- 业务数据处理时数据治理问题,如果规则引擎经常增删如何实现高效的对外服务。
- 大数据从数据收集到对外提供服务的思维跟理念,数据从MySQL、Redis、MongoDB等各种平台获取到后,如何提供对外服务。如何提供高质量的服务呢
- 数据提供服务需要考虑的点,OLAP、OLTP、高性能、高可用、高扩展。
- A服务器a,B服务器文件b,如何判断ab文件是否一致,尽可能的避免来回传输。
- MySQL用户数据,如何保证高可用,你对高并发的理解是啥。
- 数据治理方面的思想idea。
- 无损降级听过吗。
- 布隆过滤器的思想,多个布隆过滤器的思想?
- 服务治理的思考。
- 10块糖,每次最多3个 如何保证必须赢, n块糖呢?如何保证赢。
- 你负责的是什么部分,你感觉最大挑战是啥,选个感觉最好的项目说一说。
- 你对大数据架构体系理解。fast counter 如何实现 类似 变量 i++那种(没及时沟通,充分理解题意)。最后知道考察的是LongAdder 跟 ThreadLocal。
- hive 实现底层 ,开窗函数的考察。
- Redis中的常见高频考点。
- syn 对象头咋回事,锁升级过程。
- 调度框架 爬取10万个URL,10万个URL 属于不同的节点, 每个节点有不同的访问频率跟总次数限制,如何实现。
- Kafka架构体系说下,自己的理解。Leader自己理解下。
10.科大讯飞
- 数据量这么多怎么优化(如何分库分表)
- 虚拟机内存结构
- start和run的区别
- 双亲委派模型
- redis的数据类型
- redis一般存什么数据
- 怎么虚拟机调优
- 创建线程的方式有几种
- 介绍下线程池
- sql优化
- 虚拟机参数,虚拟机内存模型
- redis的数据类型
- redis持久化方式的区别
- synch锁膨胀的过程
- hashmap是否安全
- concurrentHashmap
- 线程run和start区别
- 怎么优化sql
- 介绍forkJoinPool,为什么使用这个
- 虚拟机的内存结构
- 双亲委派模型
11.美团
- 如果因为一些原因,线上Redis挂了,然后所有请求打到数据库层导致数据库也挂了,这时该怎么进行恢复?
- Spring里面的beanid是否允许重复?如果允许重复的话重复了怎么办?如果不允许重复是怎么处理的
- G1对宿主机有什么要求?
- 堆设置有什么注意事项?
- Spring和Mybatis是怎么结合的?
- mysql explain有哪些项?
- dubbo协议
- 单链表找循环节点
- 手写Dubbo的加权随机算法
- Spring获取代理对象解决事务失效的问题
- 顺序读取一亿个整数,找出前100万大的数字,内存限定大小为10M,后内存限定大小为5M。
- 一个升序数组,随机选择一个旋转节点。右边的有序段放到左边,依然保持有序;左边的有序段放到右边,依然保持有序。然后从这个数组中查找某个数。
- stream和foreach区别
- zookeeper和nacos区别?nacos符合CP还是AP?
12.滴滴
- Java线程的状态及转换
- Java创建线程的方式
- 创建线程池的方式有哪些
- JUC包下的类,能说多少说多少
- ReentranLock与sychronized的区别
- volitile的内存语义,底层如何实现
- 解释一下happens-before,有哪些规则
- CurrentHashMap源码
- MySQL的索引及区别
- 算法题:顺时针打印矩阵
- 介绍项目,项目中的难点(15min)
- MySQL是如何优化的,数据量有多少
- 倒排索引与正排索引的区别
- ElasticSearch的原理(倒排索引+TF/IDF)
- Zookeeper用过吗,介绍一下
- Zookeeper一般用在什么场景
- 除了ZAB协议,在介绍几个分布式一致性协议(Paxos、Raft)
- 线程池的几种拒绝策略及其应用场景
13.滴滴
- LSM-tree应用在那些场景、优缺点
- 写SQL:查询每个班级成绩排名前五的学生及成绩
- 你对滴滴有什么了解,知道我们的技术栈吗
- Java集合类常用哪些,ArrayList与LinkedList区别;HashMap底层实现,为什么扩容是2的幂次;如果想要线程安全该怎么用
- JUC包下对哪些类了解,synchronized和JDK提供的锁区别;CAS原理,ABA问题;锁升级过程讲一下;volatile讲一下,为什么不能保证原子性
- JVM内存模型,新生代有哪些区,作用是什么;如何判断对象是否可以被回收(1引用计数2可达性分析)
- JVM常用垃圾回收算法,讲一下CMS原理
- Redis常用数据结构;有序集合底层实现;查找排名在底层如何实现;如何用Redis实现分布式锁,可能遇到的问题和解决办法
- 手撕一个二分查找
- 聊计网,TCP3次握手过程,第三次是否可以携带数据,如何避免SYN攻击(syncookies);TCP四次挥手说一下,为什么要等待2MSL,第二次和第三次挥手是否可以合并(可以)。
- 操作系统,进程、线程和协程的区别;如果创建很多个线程会有什么问题;进程间通信方式有哪些
- MySQL索引如何实现,为什么用B+树不用B树二叉树;聚簇索引和非聚簇索引的区别;平时索引优化如何做,最左匹配原则;
14.佰钧成
- mysql隔离级别
- springaop属于什么设计模式
- 设计模式了解哪些
- springmvc流程
- 多线程链接池的原理
- aop的应用
- spring如何赋值给属性类
- springaop设计模式
- sql优化
- sprng、boot用过没有
- wait和sleep区别,如果sleep还未到时间我要唤醒如何做?
- sql优化?具体怎么优化? # 三年
- 为什么用es,与solr对比
- es怎么用的,怎么保持一致性
- 为什么用springcloud,与dubbo对比
- mysql 优化经验 索引
- mysql用什么隔离级别,考虑过用RC吗
- mq对比,要求可靠性,高吞吐用哪个mq
- redis数据类型 用那种多一点 分布式锁
- redis扛不住怎么办,不允许限流降级
- 项目中用的哪个回收器,G1回收流程,G1适合的场景
- 多线程方面用过什么,线程池,哪几种,怎么用的
- spring aop原理
- 数据库查询优化,索引
- 数据库锁表怎么解决
- java syncronized 原理
- volatile
- spring ioc & aop
- spring中设计模式
- 单例模式 duble check
15.佰钧成
- jvm 组成
- 垃圾收集器
- String StringBuilder StringBuffer
- 创建对象多怎么调整JVM参数
- mybatis 原理
- rabbitmq/kafka 怎么保证可靠消息
- 什么情况内存泄漏
- 静态方法能覆盖吗
- gap lock
- https原理
- eureka原理,与zookeeper
- 分布式事务
- springboot内存占用优化?
- 斐波那契数列
- 微服务如何拆分
- 为什么从单体服务过度到微服务
- 首先介绍一下单体服务优点:
- 微服务监控怎么做的?
- 如何评估服务应用需要扩容?
- 如何及时发现系统异常的情况?
- 微服务通讯方案如何选择
- 分布式中间件如何选型?
- 微服务分布式事务如何解决
- mq 消费失败,如何重发,重复消费问题,消息丢失问题
- Dubbo 系列问题,负载均衡在消费者实现还是服务提供者实现?负载均衡如何实现。服务动态发现如何实现?
16.美团
- String、StringBuffer 和 StringBuilder 的区别
- String 的内部实现
- String 对象主要存储在哪块区域(常量池)
- 重载和重写的区别
- HashMap 和 HashSet 的区别
- 写一下 HashSet 的实现
- JVM运行时数据区
- JVM创建对象的过程
- JVM判断一个对象是否被回收
- JVM新生代和老年代用的垃圾回收策略
- LRU 的实现
- LRU缓存机制(力扣146题)
- HTTP的缓存机制
- 查找单向链表的中间结点,lc第876题
- 链表的倒数第 k 个节点,剑指第22题
- 你希望在什么样的团队里面
- HashMap、HashTable 和 ConcurrentHashMap 的区别
- 强引用、弱引用、软引用和虚引用的区别(我还加上了一个终结器引
- 线程的生命周期
- sleep和wait的区别
- 死锁产生的原因
- 最大子序和
17.美团
- 一个装了 10L 水的桶,一个 7L 的空桶,一个 3L 的空桶,怎样变成 2 个 5L
- c++ 和 java 在内存管理方面的区别
- c++ 有垃圾回收么
- 对 gc(垃圾回收)的理解
- 你觉得可达性分析用什么数据结构比较好(垃圾回收的延伸知识)
- JVM管理内存的策略和机制有哪些
- JVM垃圾回收算法
- 语言类内存泄露的场景
- 语言类c++中的对象类,对象内部的类是如何存储的,内部元素存储在哪些空间里面
- 调用函数的实现机制
- 网络传输都做了哪些事
- 如何保障网络传输的数据安全
- AES 的加于RSA么
- RSA 的实现原理
- MD5 加密以后能解密么
- 网络传输中,你只把数据加密了,就能保证网络的安全么?有没有其他的隐患
- 有没有了解过如何规避 DNS 劫持
- 洪泛攻击的规避方法
- 如何把代码设计的更好,更健壮
18.美团
- 常用的设计原则和设计模式
- 滑动窗口的最大值,lc 239题
- 顺时针打印矩阵,lc剑指29
- 最小路径和,力扣64题
- 前面的面试结束以后,对美团的基本情况有一定了解了么
- 意向城市是上海的原因(简历和最后的业务不在同城而引发的问题)
- 实习经历盘问,主要针对简历上的
- 实习以后的收获
- 选择岗位的偏向
- 觉得自己经历过最难的项目是哪个3
- 你还有其他 offer 么
- 你手上这些 offer,你会怎么选
- 反问环节:进去以后的部门和岗位,需要自己做选择么
- 反问环节:如果有意向书的话,大概什么时候发放 ## 网易
- final 关键字的作用,final 在多线程并发条件下的作用
- 线程安全
- Map 接口的实现有哪几种,实现的特性是什么
- LinkedHashMap 的实现机制
- synchronized 作用于不同方法和代码块的区别
- 哪些方法可以创建线程池
- DNS 域名解析过程
- DNS 劫持
- DNS 解析过程
- DNS 协议的可靠性的设计
- DNS 协议改进方式
- TCP 的拥塞控制机制
- HTTP 和 HTTPS 的区别
- HTTPS 怎么保证安全性的,具体的流程是什么样的
19.美团
- 对称加密和非对称加密的区别
- HTTP 的版本差异
- 进程和线程的区别
- 1个应用里面有多个进程么,在什么情况下需要一个应用里面有多个进程
- 在 Linux 系统下,有哪些进程调度的方式
- 跨进程通信的方式
- 信号量怎么理解
- 操作系统层面,怎么实现异常中断
- LRU 缓存机制(力扣 146 题)
- http和https的区别
- 浏览器中输入域名(url)后发生了什么
- 进程和线程的定义
- 进程通信方式
- 四种类型强制转换
- 数组和链表的区别
- 深拷贝和浅拷贝
- 如何判断堆中哪些对象需要被回收
- gc回收
- 新生代和老年代都用什么算法
- 计算某个字符串的所有排列组合,并且按字符串逆字典序排序的方式输出。
- 从海量数据中找出最大的前K个数
- jvm中,直接内存是什么
- final,finalize, finally有什么区别
- HashSet类如何实现添加元素保证不重复的
20.腾讯
- 最长递增子数组的具体数组
- 进程和线程的区别
- 进程通信的方式
- 多线程的实现方式
- 线程安全怎么保证
- volatile与synchronized的区别
- 用户态和核心态的区别
- http和https的区别
- http不同版本的区别
- 可以使用jdk里面所有的类,随机创建一个链表,链表里面要含有100个随机的既有正数也有负数的节点。不可以自己创建链表类。
- 移除上述链表中的负数
- 用两个线程移除上述链表中的负数
- 异或交换两个值,不可以用临时变量
- 异或找出重复的元素:1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次,类似于力扣上的剑指 Offer 03. 数组中重复的数字
- 十年前怎么防止http的明文信息被窃取。如果黑客窃取了你加密后的东西进行传输,你该怎么办
- 有哪些常见的加密算法
- 网络不安全的原因有哪些
- 洪泛攻击是什么
21.腾讯
- 最小公倍数,复杂度多少
- static的静态方法能不能被继承
- final修饰不同类,方法,基本数据类型的区别,修饰string类以后会怎么样
- 事务是什么
- wait和sleep的区别
- 面向对象的思想
- java和c++的区别
- 进程和线程的区别
- tcp和udp的区别
- udp适用场景
- 剑指 Offer 24. 反链表
- 多线程里的关键字有哪些
- volatile与synchronized的区别和使用场景
- 除了volatile的原子性和可见性以外,还了a解一些更底层的原理么,比如怎么保证原子性和可见性的
- 信号量如何交替进行的
- 有哪些引用类型
- 在垃圾回收时,无论内存是否充足,都会回收弱引用对象吗,WeakReference在消息机制中的怎么用的
- TCP的三次握手
- https加密的具体方式
- https加密协商出来的密钥的类型是什么
- SSL流程
- equals和==的区别
- 讲一下hashCode方法
- 合并两个有序链表
22.顺丰
- http和https的区别
- Http request的几种类型
- GET 和 POST 的区别
- TCP和UDP,区别
- 线程安全怎么保证
- 死锁产生的必要条件
- 线程的生命周期
- 重载和重写的区别
- 数组和链表的区别
- HashMap原理
- 哈希碰撞是什么
- HashMap为什么线程不安全
- 用什么与HashMap有关的数据结构可以实现线程安全
- 用户态和核心态的区别
- tcp拥塞控制算法
23.快手
- ArrayList和LinkedList区别
- List如何删除元素
- 了解HashMap么
- HashMap为什么要用数组加链表的方式,这么做有什么优点
- 哈希冲突的定义和解决方法
- 死锁产生的原因和解决办法
- 内存泄露的原因,并举几个例子
- volatile的作用及其应用场景
- 写一个快排
- sdk的封装了解么
- 进程和线程的区别
- 进程调度算法
- 操作系统分配的进程空间是怎样的?线程能共享哪些
- 如何保证线程安全
- 线程池的创建方法
- static、final、static final的区别
- 反射的定义和作用
24.百度
- 单例模式的应用场景
- 说说二叉树这种结构么
- 104.二叉树的最大深度。
- 面试题 08.08.有重复字符串的排列组合:剪枝
- 关于排列组合的题目,推荐一下2021秋招算法总结1-DFS篇,里面按类包含了大量可以用,但不限于用DFS求解的题目,方便大家对此类问题树立一个基本的解题思路。
- 常见的APP中有这么一个功能:每一个可以上下滑动,其次左右滚动时候可以在多个页面之间进行切换,如果让你写这个app,你会用哪些控件去实现。
- 你说用ReycclerView是放在上下滑动时还是左右滑动时
- 单个分栏中如何实现上下页的切换。
- 全排列的思路
25.滴滴
- 剑指 Offer 24. 反转链表
- 剑指 Offer 25. 合并两个排序的链表
- http和https的区别
- TCP与UDP区别
- TCP流量控制
- Cookie与Session的作用与原理
- 进程和线程的区别
- 进程间通信方式
- 多线程里的关键字
- synchronized应用场景
- wait() 和 sleep() 的区别
- Java内存回收机制
- 垃圾收集器有哪些
- 88. 合并两个有序数组
- 56. 合并区间
26.华为
- 深拷贝和浅拷贝的区别;
- 面向对象三要素;
- 子类父类中静态代码、静态块以及构造器的加载顺序;
- 静态方法能不能访问普通变量,原因?
- 项目介绍(存储相关)
- 共享屏幕IDEA写题;
- Java中实现线程的几种方式?(Thread,Runnable,Callable)区别在哪?
- 文件系统中硬链接和软链接的区别;
- 文件修改后,软硬连接对应的数据会变化吗?
- 机械硬盘和固态硬盘性能差异原因;
- 问是否会C++?函数传参时引用和指针的区别;
- Java 中的方法是值传递还是引用传递;
27.小红书大数据
- IO密级型的系统怎么设置堆内存大小?垃圾回收器怎么选择?
- 多线程,数字处理到10位处理,然后循环处理,怎么做?
- mysql a b 字段索引,查询a=x,b=x会用到什么索引?如果想同时用到ab索引怎么做?
- oom怎么排查
- 大数据flink,流式计算
28.Soul
- jvm设置哪些参数,xmx xms。给个物理内存,出场景让你设定jvm参数。g1和cms怎么处理在并发标记过程中误标的
- 说下mysql为什么用B+树,不用b树
- innodb和myinsam引擎的区别。myisam适合用于哪些场景
- 当前读和快照读的原理,给一个场景让判断读到的结果。mysql的锁机制。gap锁怎么加的,gap锁会有什么问题?
- mysql的sql优化,你看哪些参数。
- kafka为社么快,面试官说是大部分顺序写磁盘,其余靠操作系统缓存。java哪个方法实现了零拷贝?
- kafka消费者挂掉会发生什么?什么情况下会出现?选举机制有没有了解过
- 为每个线程创建一个单独的实例,怎么实现
- 并发synchozed和lock区别,synchized升级过程?偏向锁释放了,再来一个线程会变成轻量级锁吗?
- 如何停止一个线程,使用stop会有什么问题。
- 合并两个有序链表
- es线程池参数设置调过没有
- 分库分表插件,原理了解过没有
- redis线上问题遇到过没有
- redis rehash过程
- dobbo用过没有
- 为什么有rpc调用
- 实现查找附近的人,你怎么设计
29.阿里
- 网络部分
- TPC/UDP的区别
- 粘包问题
- TCP如何确保连接的可靠性
- TCP 拥塞机制
- MySQL
- 索引存储的数据结构
- 索引存储在哈希表的情况
- 使用B+树的优点
- 最左前缀
- Spring
- Spring的加载过程
- AOP的使用
- 反射机制的原理
30.字节
- map下的实现类,详细介绍
- List实现类,详细介绍
- 介绍一下AQS
- 垃圾回收机制
- 线程池参数
- b+树
- innodb隔离级别
- 死锁
- 手撕 反转部分链表
- 介绍项目
- 类加载机制
- syn关键字
- 双亲委派
- get和post区别
- tcp和udp
- 拥塞控制
- http状态码
- 浏览器中输入网址后一系列的事
- host文件是在dns解析前还是后使用
- 进程线程区别
- 手撕 leetcode 54
- 100个人坐飞机,第一个人疯了随便坐,后面的人优先坐自己序号位置,如果被占了就随便坐,问第100人正确坐到自己位置概率
- 1.redis的运行机制,了解多少说多少
- 集群模式和哨兵模式有啥区别,选举过程,raft协议,gossip协议
- 为什么不在从节点内部进行投票选举
- zset结构,跳表+hashtable
- rdb和aof区别,aof下always的安全性
- redis数据过期策略
- redis如何作为分布式锁的
- 项目里是如何设计索引的,为什么这样设计
- 数据内容过多,如何分页查询,分库分表如何做
- 手撕 LeetCode31
31.校招阿里
- 消息队列特性
- redis删除策略
- 双删问题
- list、map、set 分析,使用场景
- Gc如何判断垃圾
- ConcurrentHashMap
- 简单的一些并发问题
- 反转链表递归和迭代 两种实现
- 业务需求会关注什么
- 数据库如何保证并发安全
- 组合和继承
- 如何抛空指针异常,如何产生该异常(一个空对象进行方法调用)
- 如何理解ioc
- equals和hashcode 3
- 如何理解线程安全
- 编译原理,编辑器设计(懵逼,真没学过)
- 你会如何作防爬虫策略
- 以淘宝请求展开,越详细越好,一些推送,广告 逻辑是在哪处理的,不清楚
- innodb数据库的查询流程
- 如何优化sql
- 普通二叉树和b+树的区别
- 悲观锁和乐观锁
- volatile和syn关键字区别
- spring启动过程
32.阿里
- jvm内存结构,gc结构,为什么年轻带分两个区域
- 遇到过cpu100吗,怎么排查,介绍下jstack jmap工具
- 看过dubbo源码吗,讲下实现原理
- 做过序列化优化没
- 线程池实现原理,参数,拒绝策略默认有哪些,你们项目中是怎么用的
- rocketmq项目是如何使用的,幂等性怎么做,顺序消费怎么做
- 知道java中有哪些锁吗,悲观锁和乐观锁区别。countdownlatch是干什么的。
- Redis有哪些数据结构
- threadlocal是什么,在你们项目中是怎么使用的
33.三年腾讯
- TCP、UDP 的区别
- TCP 拥塞控制如何实现?慢启动、快重传等算法原理
- 进程和线程的区别
- 协程介绍
- 进程之间如何通信
- MySQL、Redis 如何做集群
- InnerDB 相对传统数据库的优势
- InnerDB 索引底层数据结构是什么?
- InnerDB 事务如何执行?
- Paxos 和 Raft 协议会么?(这里答了 ZAB 协议介绍)
- select/epoll 区别
34.五年饿了么
- 数据库事务的隔离级别?
- 事务的几大特性,并谈一下实现原理
- 如何用redis实现消息的发布订阅?
- java为什么要在内存结构中设计自己的程序计数器,为什么不使用内核的?
- 分布式事务2pc的过程?
- redis是单线程的,为什么会这么快?
- 谈谈nio的实现,以及netty是如何设计的?
- 微服务化的时候,什么时候应该拆分,什么情况应该合并
- 什么时候应该使用消息,什么时候适合接口调用?
- 分库分表中如果让你设计全局id,如何设计,我回答雪花算法,继续问,百度对雪花算法的优化
- redis如何进行单机热点数据的统计?
- redis集群中新加节点以后,如何给新节点分配数据?
- 如何从含有100亿个整数的文件中找出其中最大的100个?
35.三年字节
- 在涉及支付的接口是如何保证接口的高可用,以及在遇到弱网条件下,发出的请求没有回复怎么办?
- 消息队列问题,如何保证消息的可靠性,不被重复消费,多个相同的消息,如何保证只消费一次?
- 你负责的功能模块的UV怎么去做的?对于某些某段时间内求情次数非常大的用户如何去处理呢?
- Redis基本数据类型底层是怎么去实现的?有了解过吗?
- 在浏览器输入网址敲下回车后发生了什么?从网址DNS解析到HTTP三次握手等过程
- 在服务的多节点情况下,如何保证请求不会被分配到坏的节点上去的?
- Redis分布式锁是怎么做到的?锁的过期时间怎么去设计的?如何保证当前锁不会释放掉其他锁?
- HTTPS和HTTP的区别,HTTPS是如何防止消息被篡改的呢?HTTPS有用到对称加密吗?哪些地方用到了?
- 写一个算法题吧,给一个有序的int数组和数组当中元素k,输出元素k在数组当中出现的次数。例如:[2,3,4,5,5,5,6,8]k=5 output:3要去算法的时间复杂度不超过O(n),也就是说不能去遍历数组了
- 用两个栈实现一个队列
36.三年字节
- https建立链接的过程,ssl的流程,如何协商的和加密的
- 数据交互用的啥json,xml还有个什么buffer没听清,我们全都用的json统一封装请求响应
- tcp断开链接过程,为什么客户端要等待2倍最大报文段时间才断开链接?没答上来
- mysql的undulog,redulog,binlog说一说
- 索引数据结构,主键索引和非主键索引区别
- redis常用数据类型你用过那些,为啥快,做了啥优化?项目用到了redis么?以后缓存怎么做?缓存一致性问题,双删,以数据库为基准,达到最终一致性。缓存穿透说说?
- mq使用场景?咋做到低延时高吞吐的,做了啥优化。回答跑题了,扯到内存节点和磁盘节点去了,还有channel连接池减少创建链接和断开链接的资源损耗。
- rabbitmq整个流程,咋不直接用mysql做你的那个大文件异步下载呢,回答了第一版定时器扫表的那个比较损耗资源,因为不知道多久扫一次。
- 服务间调用用的啥。
- nacos这个注册中心你们自己实现的么,回答用的阿里的组件(感觉面试官是搞php或者go的)
- 虚拟地址到物理地址的寻址流程??
- 操作系统java编译流程
- IO多路复用,回答了redis的请求单线程就用到了这个。有哪些方式?给忘了没答上来?
- mq优化 零拷贝问题?好像跟高吞吐低延时有关系,没答上来
- 项目,bbs点赞怎么设计的,redis缓存,评论支持一级评论和二级评论这种么,是的,记录了parentId来明确数据之间的层级关系,以及点赞评论通知目标准确性
- 算法题,目前有一堆日常的任务,比如任务的id为 1, 2, 3,给出具体的任务数,比如一个数值N和任务之间的依赖关系。多个任务有依赖关系,被依赖的任务执行完,该任务才能执行,输出一种可执行的任务的顺序1,2说明 1的执行依赖于2先完成。输入参数 int N,int[] 1 2 2 3 3 4 输出 4, 3, 2 , 1输入参数 4 ,1 2 2 1 3 4 输出 -1
37.京东
- 讲一下dubbo这个rpc框架的调用方式
- dubbo配合zookeeper怎么进行服务注册与发现
- springboot是怎么读取dubbo.xml文件的,启动spring项目的时候是怎么实例化dubbo里面的类的,分析具体细节与源码
- zookeeper和eureka注册中心的区别,cap定理,zookeeper选举过程
- 平时怎么优化mysql的,mysql的索引结构,每个结点怎么存,mysql一张表最大能存多少数据。b+树的树深度怎么计算。叶子结点存了什么
- 聚簇索引和非聚簇索引的区别与底层原理
- sychronized关键字底层实现,lock底层实现
- lock底层AQS怎么实现,CLH队列怎么存储数据,具体细节
- aqs中的state字段作用,如果这个程序突然挂了,锁着的资源怎么做,aqs里面的执行流程
- volatile原理,底层怎么可见性和保证有序,说一下mesi缓存一致性协议具体
- 锁的升级,对象的32位或者64位都存了啥
- 用过redis么,用redis都做了什么
- redis的删除策略,过期删除有哪些过期策略
- redis的持久化,rdb和aof区别,redis服务挂了怎么恢复数据,具体恢复过程
- redis的选举过程
- mq的作用,用过哪些
- hashmap底层原理,为什么线程不安全,扩容的具体思路,有没有线程安全的map
- 讲一下currenthashmap的原理,1.7和1.8区别,扩容,协助扩容
- threadlocal源码,怎么解决哈希冲突
- 场景题,数据库里面有两列数据,id和score,数据量上百万。用线程池创建线程进行多线程累加score,怎么设计。从创建线程池到取数据累加存储结果。
- 场景题,怎么设计一个高并发接口
38.雪球
- 单例模式
- 线程池适合什么样的场景,有哪些参数,配置的参数有哪些考虑
- 如何保证请求的顺序和余额扣减不超
- dubbo调用原理
- 了解netty吗
- hashmap
- 分布式唯一id生成选型有哪些考量
- 监控怎么做的
- 怎样保证幂等
- 分布式定时任务,任务分片
- 有没有了解过devops
- 分布式发号器如何调研的,leaf是怎么做的,怎么解决时钟回拨,snowflake的设计
- 分布式锁考虑过哪些方案
- 了解过哪些中间件,dubbo的原理,看过源码没
- 数据迁移时有哪些注意的地方
- code review如何做的,review时需要注意哪些
39.Boss
- 设计秒杀场景
- 知道哪些情况索引会失效
- 知道哪些Java的锁
- 运行时如何发现系统之间订单的不一致
- 项目中的数据是怎样加密
- 一条select语句在mysql是怎样执行的
- 分库情况下的转账交易如何设计
- 分布式事务怎么处理的
- 如果让你设计一个订单表,该怎么设计
- callable和runn2able有什么区别
- 项目tps多少
40.Opay
- 知道哪里数据库引擎,都有哪些区别
- innodb事务的ACID,B,B+树,在磁盘读取的时候有什么区别
- innodb怎么实现行锁,不走索引会不会用到行锁
- 数据库怎么做数据的持久化
- mysql如何解决幻读问题
- jvm内存结构,gc算法区别,常用垃圾回收器区别,jdk8默认垃圾回收器
- 方法区1.7 1.8差异,如何确认一个对象是可以被回收的,哪些对象可以被标记为gcroot
- redis分布式锁实现,锁续期问题,redis如何做一个队列,redis如何持久化,rdb如何做到不影响主线程
- 如何保证缓存和数据库的一致性
41.叮咚
- 线程的状态,怎么理解线程安全问题
- 自定义注解怎么实现
- 泛型
- nio
- 类加载机制
- spring ioc,aop,对象注入有哪几种方式?如何解决循环依赖?
- 垃圾回收器(生产环境怎么oracle用的)
- 设计模式(观察者模式)
- 动态代理
- oauth2.0步骤
- elasticsearch 原理,底层数据结构,新增一条数据,能立马查询到吗?
- mybatis 代理模式怎么实现的?mysql四种隔离级别
- redis集群生产环境怎么使用的?如果集群三个实例,挂了一个,另外两个还能查到缓存吗?
- redis的过期删除策略和内存淘汰策略,redis的数据持久化
- 分布式锁(zookeeper怎么实现)
- 分布式事务(lcn),
- 分布式id(雪花算法如何保证集群下的每个实例机器码不重复)
- docker 如何运行Java项目
42.阿里
- jvm 内存和运行过程
- jvm 调优(实践一下)
- 四种线程实现方式
- Runnable 和 Thread 关系,和 Callable、FutureTask 关系,讲讲1.8 中 Future 有什么改进,或者有什么新类?
- jvm 调参问题(看书)
- Java IO 方面(没学)
- 缓存一致性问题
- hashmap 为什么用红黑树不用avl树?
- 讲讲面向对象吧
- 讲讲你对 Spring 的理解
- IoC 和 AOP 讲一下
- redis 为什么快?
- redis集群有用到吗、数据同步?(没有,还没学到)
- Object 对象中的方法
- hashcode 和 equals 方法关系和 为啥重写 equals 还要重写 hashcode 呢?
- hashmap put 方法流程,和线程不安全问题引出相关 安全的 hashmap
- concurrenthashmap put 流程
- 开放性问题:银行排队叫号和超市排队两者区别(我答的是阻塞非阻塞)
- 对自己评价
- 成绩怎么样(不太行)
- 平时学习怎么学习的?
- 对你当时阿里笔试的题目有过回顾吗?
43.美团
- 介绍一下广告系统怎么实现,有哪些功能,召回流程是怎样的,过滤是干嘛用的
- 为什么曝光统计用es去做,为什么不用mysql
- es的geo circle是什么,有什么作用
- 为什么用redis做缓存,为什么不用本地缓存
- 为什么用rocketmq消费打点,技术选型怎么考虑的
- rocketmq和kafka的区别,各自底层是怎么实现的
- 笔试题:手写BlockingQueue
- 介绍一下广告系统,在纸上画一下整个链路的流程图
- 投放的广告类型有哪些,竞价排名还是包段?
- 代码/性能优化怎么做的,过滤模块怎么设计的
- 运营投放广告的策略是什么样的
- 介绍一下电商项目
- 笔试题:字符串转数字
- 笔试题:两个有序链表合并
- 笔试题:三个有序链表合并
- 介绍了美团的团队情况
- 讲一下广告系统
- 运营有哪些方式统计广告收益
- 原来的接口耗时是多少,现在又是多少,原来性能差的原因是什么,支持的最大qps是多少
- 广告日曝光量在多少量级
- 介绍一下电商项目
- 笔试题:身高排序,不知道具体身高,只知道两两之间的顺序关系(A >B A > C C > B B > D)
- Maven依赖冲突怎么解决
- Spring IOC 有哪些扩展点
- java SPI机制
- java历史上有三次破坏双亲委派模型,是哪三次
44.阿里
- 如何保证系统的稳定性?限流,降级熔断,多节点,报警信息。
- 限流算法有那些?令牌桶设置为10 代表 QPS最大是10吗?如何选择集群限流和单体限流?(都用上)熔断降级区别是什么?除了这些你还有什么想要补充的吗?
- 分布式事务,你们项目中的解决方案,说一种你认为QPS 最高的分布式事务的解决方案。
- redis,项目中redis用来做什么了?redis 还能干嘛。(说了一下五种数据结构的用途,还有分布式锁。)redis 单线程为啥快?多线程会有哪些问题?分布式锁聊一下。redis 如何实现 可重入锁?
- MQ在项目中的用途。消息写不进去怎么办?消息消费不了怎么办?消息什么情况下消息会出现丢失的情况?什么时候消息会出现重新投递的情况。顺序消息如何保证? 如果不写入同一个queue如何保证消息顺序消费?
- RocketMQ 为什么快?mmap 和 sendfile 区别。DMA getter 机制的引入。
- 分库分表了解过吗?如何分库分表?
- DDD 了解过吗?
45.蚂蚁
- 你用到了mongodb,是怎么解决大数据量下读写效率的?
- 为什么用mongodb存储而没有选择mysql?
- MySql的索引有哪些?聚簇索引和非聚簇索引有什么区别?
- 如何优化一个sql?
- 说下什么是最左匹配?
- 单机场景下,如何解决并发问题?
- Reentrantlock,和ReentrantWriteReadlock 有什么区别?
- 从线程安全角度来聊下string,stringbuffer和stringbuilder有什么区别?
- 分布式场景下如何解决并发安全问题?redis和zk具体是怎么实现分布式锁的?
- 事务有哪些特性?怎么理解本地事务和分布式事务?
- 能聊下TCC吗?
- 说下springioc的原理和事务传播行为哪些?
- static变量,static静态代码块,构造函数,执行顺序?
- 怎么理解rocketmq推拉模式?
- 如何保证消息的可靠性?
- 了解过RPC框架吗?
- Get请求和Post请求有什么区别?
- Http和Https有什么区别?
- 说下Hashmap在put的时候执行流程?
- Hashmap put的时候,key能等于null吗
- Hashmap为什么要重写hashcode和equals方法
- 说下常用的linux命令
46.中通
- Synchronize1原理
- Synchronize是重入锁吗?原理是什么?
- Synchronize的锁升级
- Synchronize和Reentrantlock区别
- AQS了解吗
- 线程池有哪些参数?
- 线程池原理
- Threadlocal在项目中的应用场景,内存泄露
- Java 引用类型
- HashMap线程不安全具体体现在哪?1.8以后优化了哪些?
- List的查询时间复杂度多少?双向链表和单向链表相比有哪些优缺点?
- ConcurrentHashMap是怎么解决线程不安全的问题?和HashTable相比优点是什么?
- 类加载过程,类加载机制(双亲委派机制)
- JVM内存模型,哪些是线程私有的,哪些是线程共享的
- 现在生产环境用的是什么垃圾回收器?
- 你有没有解决过生产环境的jvm调优问题?
- MySQL乐观锁和悲观锁
- Mysql索引类型有哪些?
- 主键索引和唯一索引一样吗?
- 说一下sql优化一般都怎么做
- explain哪些核心参数
- Mybatis 一级缓存,二级缓存
- 工厂模式有哪些?
- Spring和JDK中有用到哪些设计模式?
- 说说你项目中有用到哪些设计模式?
- 静态代理和动态代理的区别?
- 动态代理有哪几种,区别是什么?
- 如何解决Spring的循环依赖?
- Spring的AOP,过滤器,拦截器执行顺序?
- Spring如何获取上下文?
- Spring中enable注解的实现原理?例如EnableEurake
- Redis中bitmap应用场景?
- 按月登录统计,有的月28天,有的30天怎么解决?
- 你项目中Redis用到了哪些数据结构?
- Redis GEO类型用法?
- Redis 一个key最大存储多大数据?
- 你项目中Redis集群用的是什么?
- 主从复制和Redis Cluster有什么区别?
- Redis Cluster负载均衡原理是什么?
- 说说数据库,redis,zookeeper实现分布式锁有什么区别?
- zookeeper的节点类型
- zookeeper的Paxos算法和zab协议
- Cap理论有了解吗?zookeeper是cp还是ap?
- Eurake的原理有看过吗?
- 为什么Eurake那么快?
- Eurake和zookeeper作为注册有什么区别?
- Eurake挂了,a服务还能调到b服务吗?
- 聊一下springcloud的组件?
- Ribbon的负载均衡策略有哪些?
- Ribbon是怎么实现灰度发布的?
- 聊聊RocketMQ的架构
- RocketMQ如何发送顺序消息?
- RocketMQ如何解决消息挤压?
- 生产者发送消息失败了怎么处理?
- 聊聊kafka的架构
- kafka从节点能写数据吗?
- kafka从节点怎么同步数据的?
- 有用过es吗?倒排算法知道吗?
47.比特大陆
- 为什么项目采用Dubbo,和springcloud的区别
- 接上,dubbo协议和http协议区别
- mysql建表如果不声明主键会怎么样,为什么一般要主动声明主键
- mysql表是越小越好吗,为什么
- Redis数据结构,持久化方式有哪几种,主从复制流程
- Spring注入方式有哪几种
- K8s作用是什么,为什么要采用K8s,和xx(没听清)区别是什么
48.美团
- ThreadLocal 里为啥要用 WeakReference。
- Tomcat 为什么要自定义 ClassLoader、为什么要破坏双亲委派
- Lombok实现原理。AnnotationProcessing,抽象语法树、compile-time解决
- Spring 循环依赖解决?为啥要用三级缓存来解决?
- MVCC 为啥要有?
- 如何理解 复用
- 怎样让 java 线程停下来
49.Shein
- Java类加载过程,如何加载一个不在classpath下的类
- Spring:1)@resource 和@Autowire区别。如何在spring容器启动后打印一段话 3)BeanFactory 和FactoryBean区别)如何自定义starter 5)注解的扫描流程
- 线程池参数解释,分析从开始到拒绝策略流程,核心线程可以回收吗
- 为什么阿里规范不推荐使用Executors创建线程池
- Redis命令执行流程,Redis集群默认多少个slot,怎么分配的,key分配流程
- 如果让你制定Redis规范你会怎么做,为什么不能声明大key
- 为什么RocketMQ那么快
- RocketMQ怎么保证顺序消费,怎么处理消息堆积
- 场景:实现一个排行榜,有2000w数据,只取top100怎么设计
- 怎么设计一个微服务系统
50.同花顺
- 我看你公司用kafka,简历上写的rocketmq,这两者有什么区别
- kafka你们用来干什么用
- 线程实现方式有几种:说了四种
- string,stringbuilder,stringbuffer区别,为什么要用stringbuilder而不用string
- 堆和栈的区别
- hashmap 和 concurrenthashmap什么区别
- mysql的存储引擎用的哪个,为什么,数据机构怎样的
- 你们业务上定义异常继承的runtimeexception 为什么不直接继承exception 为什么?
- 范型用过吗?用在什么场景 ,一个方法后面接了个范型参数代表什么
- object 里面有什么方法
- 比较两个对象是否相等,为什么要重写equals,hashcode不用重写吗
- 浅拷贝和深拷贝的区别
- java8多了哪些新特性,为什么多出了元空间,有什么用。
- 抽象类和接口有什么区别
- 栈溢出和堆溢出如何排查
- 如何实现顺序打印ab
- 假设有一百亿的数据,如何找出最小的10个
51.阿里
- 你说项目里用到了队列解决循环依赖,如果服务挂了,那岂不是恢复后数据丢失了吗?有什么好的方法吗,给了方案持久化到mysql,过程中说到了redis,问到了redis的一致性数据问题如何解决?假如redis突然挂了,如何保证数据的一致性
- mysql的乐观锁和悲观锁,项目中如何使用的
- 生产上线程池如何使用的
- 假设核心线程数10,最大线程数20,阻塞队列100,此时来了120个请求,问此时应用中有多少线程在跑
- redis除了做缓存,还可以做什么? 延迟队列,那你们项目中如何用到的延迟队列 。 主要达了 zset数据结构属性,轮训,接着继续问,假如redis挂了 一个消息 9点发送,8点半挂了,故障恢复9点半启动redis,如何进行消息补偿
- mockk框架不同请求针对不同的循环依赖数据,如何判别,保证幂等。
52.五年VIVO
- CAS的问题及其解决办法
- 公平非公平锁的实现
- MySQL和Redis里面CAS用在什么地方?
- 说一下MySQL的锁(MDL,Gap,index )..
- 线上集群部分几台频繁GC,怎么处理
- 讲一下上面你提到的DDD过程(战略、战术设计)
53.金蝶
- springmvc工作流程
- spring ioc,aop
- JDK反射机制提供的代理和CGLIB代理区别
- 数据库优化
- 索引失效几种情况
- 事务失效几种场景
- springboot自动配置的原理
- 自定义注解实现原理
- 线程池参数和使用,拒绝策略有几种
- jvm
- 类加载
- redis
- springcloud常用组件
- 消息中间件
写到最后
是在往前走就好
bothsavage.github.io
Last update: 2024-04-05