字节跳动后端开发实习面经(一面)
211本硕 实验室用C/C++不用java 自学java半年左右 面试时长80分钟 部门是手游服务端
1.自我介绍,讲项目
2.讲一个c++项目(滔滔不绝5分钟被打断,评价说对项目挺懂的)
3.讲java项目
4.netty(啊啊啊我真的没学到netty,只能老实说不会了,以后一定要学netty了)
5.讲一下数组和链表和区别(这个简单)
6.讲一下hashmap(简单)
7.讲一下线程安全的hashmap(一开始一直说hashtable,后来都到他跳过这个问题的时候突然我灵光乍现想起来concurrenthashmap,所以也算是对了)
8.讲一下hashmap的数据结构(数组链表红黑树逐级扩展)
9.hashmap查找的时间复杂度(O(1))
10.hashmap 的转换过程(初始值16 然后翻倍,然后链表长度超过8转红黑树)
11.手撕代码:撕一个线程安全的单例懒汉模式(撕之……)
12.七层网络协议和四层网络协议的区别
13.TCPIP协议栈在哪一层(tcp传输,ip网络)
14.TCP UDP的区别(这个随便说,不过要多说一点)
15.讲讲restful(面向资源,一个资源一个url,http层,四种操作)
16.http和https的区别(一个是加密的,一个是明文)
17.htttps 的加密方式(我说了一个ssl,因为没用过,所以也没法细说)
18.redis有哪五种数据结构
19.讲讲redis sorted set (有序的set)
20.如果要实现一个redis的排行榜,可以用到哪种数据结构(我说了sorted set)
21.用sorted-set实现一个排行榜需要注意哪些问题(我觉得是并列问题的解决,面试官说对的)
22.简述一下什么是死锁,死锁出现的原因(这个简单)
哈哈哈接下来我的骚操作简直堪称人生至暗时刻!!!!手撕代码!
实现一个栈时间复杂度O(1) 可以push(),pop(),getmin()。我看了这个题之后他让我先说思路,我说用辅助栈,min就可以循环更新,然后!!我装逼说这个题我以前刷过😭
然后就傻了,面试官说以前刷过啊,好的加难度,用链表实现一个栈。然后我就傻了,因为我以前还没写过java的链表,都是用c++写的,然后就硬着头皮写,写了20分钟基本也写得差不多但是很多代码地方我都用了c++的语法😂 面试官说行吧,只要把思路写通就行,最后写到getmin 的时候他说可以结束了,所以也就没撕完 。我感觉这个题真的堪称装逼失败的典型,顺风浪浪死自己啊!!!
总结:字节的题目很重视算法和数据结构,然后就是比较重基础,jvm没问,高并发基本也没问,所以前面的题答得还可以。
#字节跳动##实习##Java工程师##面经#