2020.9.25字节跳动后端实习一面面经

   日期:2020-09-29     浏览:101    评论:0    
核心提示:文章目录前言一、自我介绍二、挖项目1、看到你用过unity3D,C#写的代码上线后怎么做到扩展(热部署)?2、仿饿了么项目怎样部署上线的?3、这个项目在做的时候考虑到流量控制和服务降级了吗?4、你知道漏桶和令牌的区别吗?5、看见你写了项目过程中用了腾讯会议?6、聊天室用了什么框架写的,SpringBoot?7、项目中协议?8、这样做有没有扩展性问题?三、计算机网络9、TCP UDP区别10、你的项目里写的UDP传文件,你怎样保证安全的?11、这样做和用TCP/IP相比哪个更好一些?12、讲下拥塞控制四、J

文章目录

  • 前言
  • 一、自我介绍
  • 二、挖项目
    • 1、看到你用过unity3D,C#写的代码上线后怎么做到扩展(热部署)?
    • 2、仿饿了么项目怎样部署上线的?
    • 3、这个项目在做的时候考虑到流量控制和服务降级了吗?
    • 4、你知道漏桶和令牌的区别吗?
    • 5、看见你写到了项目过程中用了腾讯会议?
    • 6、聊天室用了什么框架写的,SpringBoot?
    • 7、项目中协议?
    • 8、这样做有没有扩展性问题?
  • 三、计算机网络
    • 9、TCP UDP区别
    • 10、你的项目里写的UDP传文件,你怎样保证安全的?
    • 11、这样做和用TCP/IP相比哪个更好一些?
    • 12、讲下拥塞控制
  • 四、Java
    • 13、讲下OOM,为什么会OOM,怎样去排查?
    • 14、JVM内存结构里面都有啥?对象放在哪?
    • 15、HashMap知道吧,new 一个HashMap的初始大小多少?
    • 16、哈希表扩容时rehash怎么做的,里面算法啥?
    • 17、hashMap在JDK1.7中和JDK1.8中的区别
    • 18、超过多少转红黑树?
    • 19、为什么是8?
    • 20、HashMap线程不安全,那么你知道JDK做了哪些改进吗?
    • 21、知道CopyOnWrite吗,咋保证线程安全的?
  • 五、撕代码
    • 22、写个先序遍历非递归
    • 23、实现字符串转int
  • 六、总结

前言

第一次面试,感觉网络很流畅、面试官很帅、声音很好听、气氛很融洽,所以决定再投几家,再面几次。

一、自我介绍

介绍了一下性格,爱好,然后又说了一下做过的项目。

二、挖项目

1、看到你用过unity3D,C#写的代码上线后怎么做到扩展(热部署)?

答:本地跑的,没考虑过上线,但是SpringBoot做过热部署。。尬

InjectFix

2、仿饿了么项目怎样部署上线的?

答:当时为了简单,就直接打了jar包,在云服务器上直接跑了。项目做完知道可以用Docker,但是没有用过。。

3、这个项目在做的时候考虑到流量控制和服务降级了吗?

答:饿了么这个项目在做的时候没有考虑,但是后面的dubbo项目考虑到了。服务降级:我们有五大模块,比如对于下订单时突发的大流量,我们直接返回一个“当前人数过多”的信息来拒绝服务,保证不会发生服务雪崩。
流量控制:用到了漏桶和令牌

4、你知道漏桶和令牌的区别吗?

答:漏桶的流速稳定,令牌桶允许有小的高峰

5、看见你写到了项目过程中用了腾讯会议?

答:疫情期间没法来学校,就在线上做,用腾讯会议每天开个小会,确保项目进度。

6、聊天室用了什么框架写的,SpringBoot?

答:纯Java。。
有什么架构么?
答:BIO模型。但是由于BIO模型有缺点(线程太多)考虑过NIO模型,但是没改好。。。

7、项目中协议?

答:定义了消息头:13个字节:type\src\desc\length

8、这样做有没有扩展性问题?

答:有。发现后面跟的数据包如果有多个变长的不同类型数据,就要每个数据多加一个length,很麻烦。
想过怎样改进么?
答:不知道咋改。。。

三、计算机网络

9、TCP UDP区别

答:TCP面向连接,UDP无连接。TCP安全,UDP不安全。

10、你的项目里写的UDP传文件,你怎样保证安全的?

答:发的数据包搞一个序号,收到货回应,正确发下一个,不正确就重传。

11、这样做和用TCP/IP相比哪个更好一些?

答:我认为各有优缺点,但是更倾向于UDP。因为当发送大文件时,TCP是有限制的,UDP虽然要重传,但是没有速度限制,不需要考虑其他用户(自私一些)。并且UDP的重传是和每个数据包的大小有关系的,一般10K以内都是可以的,我把数据包的大小相对的设置小一点,降低重传的概率。我认为这样做可以抵消掉UDP的缺点。

12、讲下拥塞控制

答:忘了。。。(我是傻屌,上周刚看过)
https://blog.csdn.net/qq_41431406/article/details/97926927

四、Java

13、讲下OOM,为什么会OOM,怎样去排查?

这个问题我回答的贼乱,因为前几天看过别人面经里面有这个题,然后专门去百度了一下,然后发现看不懂,,,就随便滑了过去。。。
https://blog.csdn.net/weixin_41835916/article/details/81558310

14、JVM内存结构里面都有啥?对象放在哪?

答:有堆、栈、方法区(半年前看的没复习忘完了)
JVM专栏
https://www.cnblogs.com/wangly/p/12853236.html

15、HashMap知道吧,new 一个HashMap的初始大小多少?

答:我之前学HashMap的时候是自己用数组+链表实现的,大小是动态的。项目里面用HashMap时没关注过初始大小。。。

16、哈希表扩容时rehash怎么做的,里面算法啥?

答:忘了。
(hashmap的源码上周粗略的看了一下。。。不深入=没看)
https://www.jianshu.com/p/13c650a25ed3

17、hashMap在JDK1.7中和JDK1.8中的区别

答:JDK1.8加了一个红黑树,当超过一定的值时就把下面的链转成红黑树,提高效率.

18、超过多少转红黑树?

答:8

19、为什么是8?

答:设计者经过大量测试,得出超过8的概率已经为千万分之1,为了性能就以8为界,超过8的就转成红黑树。

20、HashMap线程不安全,那么你知道JDK做了哪些改进吗?

答:我知道有correntHashMap。
再说几个?
答:想不起来了。。。

21、知道CopyOnWrite吗,咋保证线程安全的?

答:知道名字但是原理忘了。

CopyOnWrite只有写入互斥,其他的都是共享的,它会创建新的副本,当读的时候,读到的是老值。假如写的时候读,由于读取是读的原来的内容,虽然写入会改变值,但是不会影响到读

五、撕代码

22、写个先序遍历非递归

我竟没写出来。。。
https://www.cnblogs.com/zhi-leaf/p/10813048.html

23、实现字符串转int

我的思路是转成char之后用ASCII码减,然后乘10的次方。
原题:剑指offer67(我才做到18)

六、总结

作为人生中的第一次面试,收获还是挺大的。
首先是对于之前的学习态度:学习没有深入,没有耐心。面试官总是会从一个点往深处去挖,一些细小的知识点,虽然见过,但是没有在意,就会答不上来。
对于知识,面试官考察的内容都是见过的,通过这次面试,明确了要复习的范围。重点就是JVM、计网、操作系统、并发
对于项目,要多注重项目的思考。以后的项目要尽量考虑做到上线,以及上线后的性能优化处理。(所有的项目,面试官都问了,怎么上线,所有的回答都是没有上线,本地跑。。○| ̄|_)

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服