字节跳动后台开发一二面,腾讯,阿里面试

本文分享了字节跳动、腾讯、阿里的Java后台开发面试经验。涉及redis数据结构、分布式锁、Java内存类型、算法题等多方面知识。总结指出后台开发基础涵盖数据结构、网络、系统、数据库等,还给出面试要主动回答问题的小技巧。

字节跳动后台开发一二面;腾讯现场面;阿里电面;目前总结不完全,欢迎大家进行留言,补充新的知识点,一起学习

字节跳动

一面

  • 首先自我介绍,
    讲了自己以前的实习,觉得最有挑战的是什么;自己的技能,java,redis

  • 面试官:既然你讲到 redis,那么来说一下 redis 的基本数据结构,以及他们的用法
    string——分布式锁,list(java 的 linkedlist,用来做延时队列),hash,set,zset。还用 redis 来实现限流策略:时间框和漏斗模型。hyperloglog,balabala

  • list 底层的结构
    ziplist 和 qiucklist,balabala

  • redis 实现锁有什么问题,他怎么实现原子化?除了 redis,其他怎么实现分布式锁?
    用 lua;不知道。。

  • redis 的 pipeline 有了解吗?没有。。redis 的 string 和 c 的 string 有什么区别?
    不了解;不熟悉 c

  • 数据库两种引擎结构不同之处?B+树是几个叉??
    innodb 和 mylsam,balala

  • java 的 volatile

  • java 的内存类型?

  • java 的 map 的种类??
    hashmap,concurrenthashmap,balabala

  • hashmap 的实现方法,讲一下怎么处理碰撞的?
    open addressing,balabala,还有拉链法。。

  • 等等,讲一下拉链法怎么处理碰撞?

  • 算法题?
    4,3,7,9,每个数字代表了可以跳几步,请问从第一步跳到最后一步,最少的步数???

  • 进程的通信方式?进程的状态????

二面

  • 自我介绍;redis 的持久化;其他的和一面差不多
  • synchronized 的底层实现
  • tcp 分手为什么有 time_wait
  • 算法题:找零钱,动态规划

腾讯

腾讯是现场面试,根据简历全方位了解,这个不具备参考性。

最后问了两个算法:

  • 排序算法的稳定性,给一个不稳定的 sort()排序的接口,不改变 sort 的情况下,如何使得结果变得稳定
  • 有数十万用户同时向一个地点出发,到达以后要给每一个人发送一个通知,设计一个计时器,也就是完成一种数据结构,如何存储这些用户到达地点的时间,以便于给他们发送通知。注意令查找时间为 O(1),数据结构也不能太大,可以比最大堆大一些。

阿里

阿里是电话面试

js 闭包,
JAVA 的 lambda 表达式为什么要用 final,
select 系统如何实现阻塞,
IP 为森么不可靠,TCP 为森么可靠,
文件系统是什么,什么作用,
linux 的 rm 的底层实现,
JAVA 的类型擦除,
哪种语言没有垃圾回收,各种垃圾回收,c 垃圾回收。。
CVM?
凯撒密码破解,
c 的 string 和 redis 的 string 区别

总结

一般后台开发的基础知识是:数据结构,计算机网络,操作系统,数据库

  • Java 相关
    JVM;JMM;Java 的 map,hesh,hashmap,hashtable.concurrenthashmap;垃圾回收;volatile;多线程;synchronized 的底层实现;线程池;各种锁;类的加载,双亲委派;string,stringbuffer,stringbuilder,底层实现;

  • 数据库
    mysql 的数据结构,B+,两种引擎的结构和区别;事务级别;(https://blog.youkuaiyun.com/qq_22222499/article/details/79060495)

  • 计算机网络
    tcp/ip 的三次握手,四次挥手,可靠性;tcp/udp

  • 操作系统
    进程线程的状态;通信方式;用户线程、内核线程
    (https://blog.youkuaiyun.com/nawuyao/article/details/52703384)

面试小技巧:大家在面试的时候尽可能的多说,不要等着面试官来问你才回答,掌握面试的主动权;比如面试官问到 Java 的 volatile,就可以深入展开将 JMM,原子性(可以扩展到乐观锁和悲观锁),有序性,可见性

目前总结不完全,欢迎大家进行留言,补充新的知识点,一起学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值