字节跳动算法工程师总结:java资料文件

程序员环西 程序员环西     2022-12-10     170

关键词:

一面(个人感觉回答得还不错)

1. 自我介绍
2. 说项目,项目问的非常深(本人提到之前做过的一篇关于FULL GC的问题定位和优化的项目以及一个多并发的项目)

2.1 对于自己产于过项目的系统定位是否清楚?
2.2 对于系统的各个模块是否清楚?
2.3 每个接口的tps?
2.4 对于上下游系统的依赖?
2.5 对于使用到的中间件、框架是否清楚?

3. 你觉得你做的项目中最有亮点的事情?
4. memcache redis同类中间的差异、优缺点?使用注意点有哪些?

memcache可以存储的数据类型只有字符串类型,而redis可以存储字符,list,sorted List,hash数据类型的数据;
memcache不支持数据持久化,redis支持RDB,AOF持久化;
memcache不支持集群,redis支持redis-cluster集群

5. redis分布式锁说说

我提到了redis的setnx()方法,以及使用redis的KV结构,lock作为key,key对应的value使用map结构,map中使用请求requestId作为map的key,过期时间作为map的value,获取锁使用cas算法,比较时间是否过期来获取锁和释放锁

6. TCP,UDP
7. 多并发项目的并发量,有没有压测过,以及QPS,请求的消息量太大,使用自己创建的任务队列会不会使内存爆?
8. Redis集群主从数据同步

主从集群实现了数据的读写分离,主服务器负责读写,偏重写,从服务器只负责读。主服务器启动之后向从服务器发送日志文件,从服务器根据日志文件进行数据的更新,之后如果主服务器有写操作,也会向从服务器发送相应的写操作

9. Zookeeper实现选举的原理

zk的选举过程中其起始所有结点的状态为looking,当某个结点的选票超过所有结点数的一半,该结点就会成为leader,结点状态为leading,其他结点会成为followers,结点状态为following。选举的依据是(sid,zxid)数据,sid代表结点的ID,zxid代表事务ID,选举过程中每个结点第一轮选举会选举自己作为leader,将(sid,zxid)发送给其他结点,其他结点收到数据(sid,zxid)与自身的数据做比较,如果zxid比自身zxid的要大,则直接选举当前结点;如果小于,坚持选举自己;如果zxid相等,比较sid哪个大,大者作为leader。

10. 说说分布式(我说的是Dubbo)
11. 数据库事务,分布式数据一致性如何实现?

读者可以了解一下ZAB协议,我大概就是围着ZAB协议说的

12. SpringIOC,SpringAOP

我简单说了说IOC,AOP的原理,以及原理依赖的模式

13. 数据库事务的隔离级别

四大隔离界别:Uncommitted-read Commited-read Repeated-read Serializable分别针对数据库脏读,不可重复读,虚读问题

14. 谈谈RPC

RPC远程调用,说了说原理,使用到的组件,以及RPC主要的任务:序列化,传输数据,方法调用(方法对应的ID)

15. 算法题:笔试题-最短路径问题(这道题是通过的)
某物流派送员p,需要给a、b、c、d4个快递点派送包裹,请问派送员需要选择什么的路线,才能完成最短路程的派送。假设如图派送员的起点坐标(0,0),派送路线只能沿着图中的方格边行驶,每个小格都是正方形,且边长为1,如p到d的距离就是4。随机输入n个派送点坐标,求输出最短派送路线值(从起点开始完成n个点派送并回到起始点的距离)。

我的做法是使用排列算法,将所有的情况排列出来,计算最短路径

二面(个人感觉回答的特别垃圾,六道问题回答了两道)

1. 自我介绍
2. 怼项目,各个角度刁难
3. FULL GC问题排查工具

我做项目时其实没有使用什么工具,就是用Linux命令TOP,TOP交互命令 1,H;jsatck,jstat以及JVM的相关参数和JVM日志的查看

4. 从事开发遇到最具有难度的问题
5. Spring事务,嵌套事务

这道题其实我是被问懵了,我回答得相当不好,一直回答事务隔离那一块,面试完我总结了一下有关Spring事务相关知识点

6. 面向接口编程的好处是什么

问的问题太抽象,我回答不好,面试官说不够完善

7. 数据库两个insert同时操作同一张表,第一个线程操作一半,问第二个线程会发生什么?

我回答的稀巴烂,下来查了一下,大概就是说这里涉及到的锁是间歇锁,读者可以看看相关知识

8. 说说死锁

举个例子,两个线程1和2,两个锁a和b,线程1拿到a锁后申请要b锁,而同时线程2已经拿到b锁,要申请a锁,两个线程之间陷入僵持状态

总结

三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。

如果你对下面我说的这些笔记感兴趣,可以点赞+关注后,戳这里即可免费领取

  • 第一个是算法

关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。

而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本

《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题

最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

《算法的乐趣》共有23个章节:

最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

  • 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)

基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)

最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

  • 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)

S-1626938513204)]

  • 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)

最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

字节跳动面试笔试总结——算法岗位

目录1.一棵二叉树,求最大通路长度(即最大左右子树高度之和)  查看详情

2021校招字节跳动提前批

字节跳动提前批目录字节跳动提前批内容项目Java基础算法计算机网络设计模式数据库Linux总结时间:2020-07-0918:00-19:00内容项目背景:基于ZooKeeper的配置中心问题:项目的背景如何实现分布式锁的实现Java基础问题:HasMap的数据结... 查看详情

❤️tiktok字节跳动编程题实战2022校招——吐血分享总结。(代码片段)

❤️TikTok字节跳动编程题实战2022校招——吐血分享总结。前言+说明一、算法编程题(种树)二、算法编程题(小A的吃鸡之旅)三、算法编程题(有序最大K位数)四、算法编程题(测试计划的最大... 查看详情

字节跳动+京东+美团+腾讯面试总结,完整版开放下载

...Java、.net、Js等等。也许吧,我勉强算的上一个“全栈工程师”。我看好多回答里说,程序员之所以干不长 查看详情

求职字节跳动2019校招机器学习算法工程师面试

面试问题总结。 问题:1.自我介绍。2.介绍了一下自己简历上的项目。3.SVM详细原理。4.Kmeans原理,何时停止迭代。算法题:1.一个随机整数产生器产生[1,5],如何设计一个产生[1,7]的随机整数产生器。解法:设k1,k2属于[1,5]... 查看详情

sql查询语句先执行select,字节跳动算法工程师面试(代码片段)

SELECT<返回数据列表>#返回的单列必须在groupby子句中,聚合函数除外DISTINCT#数据除重ORDERBY<排序条件>#排序LIMIT<行数限制>其实,引擎在执行上述每一步时,都会在内存中形成一张虚拟表,然后对虚拟表... 查看详情

干货|词云指北(下):字节跳动数据平台词云实践

...者快速了解词云相关的算法发展,并希望总结出当前字节跳动数据平台词云发展的路线。 全文将分两次推送,第一篇专注分享词云算法的行业情况。第二篇介绍字节跳动数据平台词云实践。文|橘子 from字节跳动数据平... 查看详情

字节跳动最新开源!昆明java工程师招聘

Java基础JDK和JRE有什么区别?==和equals的区别是什么?两个对象的hashCode()相同,则equals()也一定为true,对吗?final在java中有什么作用?java中的Math.round(-1.5)等于多少?String属于基础的数据类型吗ÿ... 查看详情

字节跳动java面试:java软件工程师简历描述项目

一、网络原理OSI与TCP/IP各层的结构与功能,都有哪些协议TCP建立连接的过程,为什么要三次握手?TCP、UDP协议的区别,各自的应用场景打开浏览器,输入URL地址,访问主页的过程HTTP有哪些方法?HTTP和HT... 查看详情

字节跳动技术总监自爆:java软件开发工程师面试题库中级

专题5:Java序列化1、什么是java序列化,如何实现java序列化?2、保存(持久化)对象及其状态到内存或者磁盘3、序列化对象以字节数组保持-静态成员不保存4、序列化用户远程对象传输5、Serializable实现序列化6、writeObject... 查看详情

字节跳动面试分享:java工程师进阶路线(代码片段)

二、Spring生命周期的大胆猜测这里分享一个阅读源码的小技巧:捉大放小,连蒙带猜!8字真言,我们在阅读源码过程中,因为你要知道,每一个被开源出来的优秀框架,其源码的体系都是极其庞大复杂... 查看详情

2022暑期实习字节跳动数据研发面试经历

...的同学可以参考如下文章:链接:2022百度大数据开发工程师实习面试经历.链接:spark学 查看详情

字节跳动java三面凉凉,一线互联网公司面经总结

工厂方法模式Spring框架使用工厂模式来实现Spring容器的BeanFactory和ApplicationContext接口。Spring容器基于工厂模式为Spring应用程序创建bean,并管理着每一个bean的生命周期。BeanFactory和ApplicationContext是工厂接口,并且在Spring中... 查看详情

2022字节跳动数仓实习面经(23面hr面)

...跳动数据研发面试经历.2022百度面经:2022百度大数据开发工程师实习面试经历.下面我将对2 查看详情

算法工程师的「天地之间」

 Datawhale干货 作者:王喆,字节跳动作者简介王喆老师目前是字节跳动的技术经理,AdsRanking方向负责人。毕业于清华大学计算机系,清华KEG实验室 学术搜索引擎AMiner 早期贡献者。曾任Roku TechLead,推荐系统... 查看详情

字节跳动笔试题——算法岗

目录1.写一个函数,将单向链表反转  查看详情

字节跳动java高级工程师:java队列实现停车场出入

并发模型和分布式系统很相似并发模型其实和分布式系统模型非常相似,在并发模型中是线程彼此进行通信,而在分布式系统模型中是 进程 彼此进行通信。然而本质上,进程和线程也非常相似。这也就是为什么并... 查看详情

字节跳动java面试挂了以后,流泪总结了这份大厂常问面试题

前言某天下午五点半突然接到了一个北京来电,是字节跳动打来的,当时心里一阵发慌,由于还在上班,就和面试官约定6点下班之后再来。挂完电话,心里忐忑得不行,感觉自己这也没准备好,那也没... 查看详情