【vivo】-Java岗-后端一面面经

首先非常非常感谢昨天面的小伙伴贡献的面经!
面试官是一个青涩戴眼镜戴口罩的小哥哥,括号中是我的回答,没答出的赋上了答案,不对的可指出,感谢!

1.确认证件

2.自我介绍

3.java基础,IOS七层和TCP四层协议

4.TCP三次握手四次分手

5.TCP报文结构,HTTP结构

6.关于多线程(答了三种实现)
runnable和callnable区别(参数不同)
线程池(线程大小,阻塞队列)

7.设计一个应用层协议(没有答出来)

8.JVM内存(堆栈等,程序计数器+jvm栈+本地方法栈线程不共享,堆和方法区线程共享)
栈的原理(先进后出)
操作(pop ,push)

9.linux用过嘛(扯到了我训练过深度模型,小哥哥直接来了个场景题)
场景题:推荐算法中如何控制广告推送频率(结合强化学习说了一些)

10.linux中如何查看CPU负载(linux用的不多,只知道PS查看进程)
top

11.数据库中索引B+树(不会物理索引,只会primary key,unique index)
B树在提高了IO性能的同时并没有解决元素遍历的我效率低下的问题,正是为了解决这个问题,B+树应用而生。B+树只需要去遍历叶子节点就可以实现整棵树的遍历。而且在数据库 中基于范围的查询是非常频繁的,而B树不支持这样的操作或者说效率太低。

12.Hashmap底层(数组+链表+红黑树)

13.list和set区别(重复/不重复)

14.简述冒泡和归并排序
~filter?(听不懂,只晓得web.xml可以用来设置对应分发servlet)

15.负载均衡问题(没考虑过这个,对曰:这个是基础!!!)
即负载均衡,是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。
静态算***询,比率,优先权
动态算法:最少连接,最快模式等等等等

16.给你10个tomcat你如何判断自己用哪个(容器?emmmm,求指点)
位图知道原理嘛(操作系统中的位示图还是bitmap?不太了解)
所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此可以大大节省存储空间。
其实就是位示图为原型,01存储的,建议面试的时候知道多少说多少,知道什么说什么~

17.我的问题
反问了设计应用层协议的问题(答很多游戏设计,或者公司中有自己设计的应用层协议)
问了问什么TCP上面还要加HTTP(小哥哥提示我去百度学习一下,都是基础)
面试官很好,自己基础不够,感觉凉凉的,没睡好晕乎乎的,这算是第一次正式面后端!
之前不知道后端涉及到应用层相关(计算机网络)这么多,数据结构作为基础中的基础一定要掌握好,赶紧补课去

发表评论

后才能评论