字节跳动面经1一面:1.IM系统用户登录怎么实现的?2.登录状态是怎么保存的?session是怎么获取的?sessionid是怎么识别的?整个流程是什么样的?有没有考虑分布式session?3.Redis的数据类型4.Redis数据类型的底层数据结构5.三次握手、四次挥手6.Redis持久化机制7.MySQL的InnoDB索引数据结构8.哪些SQL的关键字会让索引失效9.队列、栈、数组、链表10.算法题:leetcode 92题二面:1.讲讲爬虫的构成2.爬虫抓到的数据不清洗吗?不去重吗?3.对爬虫有什么更多的了解吗?4.Linux进程间通信机制5.进程和线程的区别6.线程私有的数据有哪些?(不是Java线程)7.讲一下堆排序,每次调整的时间复杂度?堆排序是稳定的吗?(一开始说错了,应该是不稳定的,后面面试官问稳定的定义是什么)8.哈希表的原理,怎么减小哈希表的冲突,怎么保证哈希表的并行读写9.Kafka用过吗?说说Kafka的原理?怎么保证Kafka的高可用?Kafka怎么保证消息有序?10.项目里的set实现点赞,zset实现关注,为什么?11.zset底层实现?说一下跳表?节点的高度是多少?怎么决定节点的高度?12.https了解吗?13.中间人攻击知道吗?怎么做https的抓包?https怎么篡改?14.虚拟地址到物理地址的映射过程15.算法题:给一个数组,建一颗最小高度的二叉树(递归和非递归)本文已经收录到Git仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~********如果访问不了Github,可以访问****。****三面:1.介绍一下做过的项目,哪些挑战性比较大,比较有难度的2.IM项目怎么用Netty的,为什么要用Netty,长连接交互是怎样的3.消息怎么存储,怎么发送,怎么知道消息已读和未读的4.读了5条消息、又来5条消息,你是怎么去更新的,你的消息是幂等的吗?5.项目里怎么用ES的,ES怎么支持搜索的6.技术论坛网站的评论是怎么存储的7.查询评论是在DB里扫表查询吗?怎么展示所有的评论?性能如何?想要查询更快可以做哪些优化?8.结合缓存和DB的时候会出现哪些问题?要怎么解决?9.快排了解吗?介绍一下快排?时间复杂度是多少?为什么会退化成O(n^2)?单链表可以做快排吗?快排最核心的逻辑是什么?写一下单链表快排面经2一年经验,Java开发自我介绍;项目介绍;(延申较浅)手撕算法:NC95 最长连续子序列手撕算法:NC91 最长递增子序列线程和进程的区别?怎么创建线程?有哪些状态?有什么区别?Java1.8了解哪些新特性?重点讲讲HashMap和CurrentHashMap。OSI七层协议和TCP/IP五层协议有什么区别?TCP/UDP在哪一层?对TCP了解多少?你还有什么要问的吗?总结:开幕雷击,字节对算法还是挺看重的。面经3字节电商后端进程和线程区别为什么进程切换开销比线程切换开销大?你知道逻辑地址和物理地址么?sql题(表T (id,name,salary,city)用SQL实现找到同时符合城市平均工资大于5000,单人工资大于10000的人的名字)wifi属于OSI哪一层三次握手四次挥手相关(细节,以及为什么三次,为什么四次)hashmap的底层原理红黑树和二叉搜索树,二叉树之间的区别为什么hashmap不直接用红黑树算法题求从一个树的左边的叶子节点到一个树右边的叶子节点的最短路径)最长回文子串给定一个数N,求(1-n)所有的可能子序列)比如给个1 返回1   给个2 返回1,2,1 2给大家分享一个Github仓库,上面有大彬整理的300多本经典的计算机书籍PDF,包括C语言、C++、Java、Python、前端、数据库、操作系统、计算机网络、数据结构和算法、机器学习、编程人生等,可以star一下,下次找书直接在上面搜索,仓库持续更新中~********面经4自我介绍项目volatile原理和作用什么是指令重排序,举个例子AQS原理JVM内存模型类加载过程双亲委派机制介绍代理模式redis数据结构HTTP状态码,headerMVCC原理算法:买股票无限次买股票只买一次买股票有手续费买股票最多买两次面经5自我介绍业务部分:2.1 堆和栈的区别2.2 调用一个函数在堆中的过程2.3 密码学 中间人攻击、RSA、DSA密码的差别、加密过程,私钥加密公钥加密,数字签名的过程(跟本人网络空间安全背景有关)2.4 彩虹表、 kerberos、ECC(椭圆曲线加密)算法题:一个无序数组,求其topK时段统计。动态规划。面经6自我介绍实习介绍:你在腾讯干了啥实习项目介绍:这个项目(深挖)项目为啥立项,你做了什么模块你的日志模块是怎么设计的,怎么开发的你的token怎么做的,怎么保证唯一你开发的业务模块举个例子(给他举了),你是怎么设计数据表的,具体用了哪些中间件mysql中inoodb的索引有哪些种类B+树索引具体是怎么实现的B树与B+树的区别为什么B+树的中间节点不储存数据?给一个索引,在有的查询过程中他没有走索引查询,说说你能想到的原因红黑树了解过么?用过redis么?(妈耶能别聊数据库了么)你提到了kafka是吧,来聊一哈聊一下你对git的理解git rebase与git merge的区别聊一下你对工作流的理解手撕算法:给四个整数,判断是否只通过四则运算加()优先级能否运算出24面经7一面:自我介绍JAVA SDK起到的作用项目数据流(项目)排序(介绍下你知道的排序和复杂度)Arrays.sort底层的排序算法(有三种策略)堆排序基本思路linux,操作系统的开机流程(这题我不会。)进程和线程的区别进程切换会发生什么进程调度算法有哪些TCP、udp区别java锁,关键字区别公平锁、非公平锁解释一下二面:算法题:由前序遍历中序遍历重建子树;为什么静态类中不能使用非静态类(从类加载过程回答);java类加载过程;3.1. 加载阶段中,为什么要有自定义的类加载器;3.2. 双亲委派原则的机制;HashMap数据结构;4.1. 为什么小于6是链表,大于8变成红黑树;4.2. HashMap扩容机制;4.3. HashMap是否线程安全,例子;4.4. ConcurrentHashMap和HashTable的区别;4.5. ConcurrentHashMap如何保证高效,为什么是线程安全,为什么比HashTable优秀,分段锁机制;4.6. CAS能保证线程安全吗(我回答能,面试官说不能。。估计想考ABA问题),volatile关键字能保证线程安全吗;随机数求根,比如根号二的值。(二分查询)有n个筐,筐固定,每个筐内有不同数目的苹果,移动苹果,使每个筐苹果平均(移动的代价:1~2算1步,1~3算2步)使步数最小;三面:自我介绍解决什么问题,做了些什么?(项目)多个接口,有失败怎么办(项目)redis分布式锁怎么实现时间过期怎么办ArrayList怎么扩容,时间复杂度O(n)?插尾部O(1),平均是多少,答案O(2)需要考虑扩容,小伙伴们可以自己推一下。HashMap底层原理mysql索引什么原理、B+树mysql和redis区别(讲一下各自优缺点)为什么不用redis存数据?算法:LRU缓存(),先讲一下再写面经8抖音电商自我介绍讲一下HashMap的put方法讲一下HashMap的扩容过程讲一下你自定义协议怎么解决粘包问题的?算法题:LeetCode 二叉树根节点到子节点的路径和mysql的索引结构为什么用B+树呢?having的作用聚簇索引、非聚簇索引聚簇索引比非聚簇索引的优点mysql的四个隔离级别,应用场景如何在可重复读隔离级别解决幻读问题dubbo的负载均衡策略java的动态代理Spring哪里用到了动态代理?CGlib动态代理说一下MQ如何保证消息不会丢失面经9一面怎么理解微服务微服务的缺点微服务之间怎么做负载均衡Oauth2基本流程、原理登录模块是怎么做的cookie和session的区别购物车为什么用Redis存,是永久存储吗为什么购物车多读多写Redis怎样清除过期key,有哪些策略lru是怎样的过程Redis字典底层怎么实现的hashtable是怎样实现的ziplist怎样实现的普通的哈希表怎样实现的哈希表怎么扩容使用MQ的好处MQ解耦和微服务解耦的区别算法:最长回文子串https建立连接的过程(SSL/TLS协商的过程)对称加密和非对称加密的优缺点为什么要区分内核态和用户态什么时候从用户态切换到内核态你编程的情况下,系统调用什么时候会发生反问:业务,开发语言,表现,对应届生的要求(重点是基础和算法)面试体验不错,但是项目挖的有点深2面手写单例模式volatile什么作用多线程的几种实现方式四种方式的区别锁用过哪些排它锁什么意思自旋锁什么意思CAS相关MySQL可以不指定主键建表吗,背后的逻辑是什么聚簇索引和其他索引有什么区别建唯一索引,插入数据时是怎么处理的重复插入会报错,是怎么处理的不同事物隔离级别的实现以前没有实习过吗lc40 组合总和II反问:部门怎样培养新人,刚进来做什么(学基础,语言和中间件,做demo),大概多久做需求(1周到1个月不等,看学习情况),框架和中间件以开源的为主还是以自研的为主(自研的)3面有在实习吗面试通过后可以实习吗做项目的过程中遇到过什么问题内存泄露具体发生在哪什么情况下会出现多线程访问缓存穿透,怎么解决 (好像一紧张说成缓存击穿了,面试复盘的时候才发现。。。)缓存雪崩,怎么解决缓存与数据库数据一致性超卖问题怎么解决的集群环境下,Redis内存里的数据怎么保证一致算法:给定一个字符数组,和一个字符串,在字符串里找到任意一个完全由字符数组组成的子串,字符顺序无所谓(滑动窗口)
点赞 12
评论 3
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务