巨短的腾讯一面 Java 后台实习20211122
2.你平时用什么语言(Java)
3.类加载过程
4.类加载器,双亲委派
5.JVM怎么调优(???可以修改一些参数)
具体修改哪些参数?(比如有个大对象进入老年代的设置,Hotspot默认是0,这个可以改一下)
改成多少呢?(???没写过业务,不清楚)
6.单例模式怎么实现。(讲了两种)问我优缺点。
7.学过操作系统吗(学过)
8.讲讲操作系统进程调度(Linux有单独的调度器线程,讲了Linux的CFS完全公平调度算法,还讲了《linux内核设计与实现》老版本的linux的多级反馈队列算法)
9.讲讲操作系统的内存管理(讲了xv6的空闲链表,Linux的buddy system和slab分配器)
10.怎么保证线程安全(加锁)
11.linux有哪些锁(mutexlock, spinlock, semaphore信号量,以及他们对应的读写锁)
12.除了加锁还有什么保证线程安全的方式吗?(原子变量,硬件提供支持)
13.你项目的流量控制和拥塞控制怎么做的?(流量控制滑动窗口,拥塞控制实现的比较简单,是简单的指数退避)
14.两个主机建立连接,一个主机宕机,另一个主机会怎么做(断开连接)
马上断开吗?(等待一个timeout时间)
这个时间是多少?(不清楚)
15.UDP能携带的数据最大长度是多少?(不太清楚,猜测可能是2^16-1)
面试完查了一下: IP包头有一个16bit的长度, 对应的二进制最大值是2^16 -1,也就是说一个IP包整个长度的最大值是2^16 - 1 字节, 如果考虑UDP通信, 那么除去IP头的20个字节, 除去UDP头的8个字节, 还剩2^16 - 1 - 20 - 8 字节。
如果超过这个长度呢?会直接发不出去吗?有研究过吗?(没研究过,应该不能发吧(?),不知道UDP有没有类似分片的操作)
搜索引擎里没搜到,回头写个程序试试。
16.滑动窗口的窗口大小设置成多少比较合适(不太清楚,接收方宣告的)
那你觉得多少比较合适?(一开始可以尽可能的大,不过不要超过1500字节免得被IP层分片吧(?))
17.算法题:给一个数,输出所有相加等于它的数的组合。比如6,输出{{1,2,3},{1,5},{2,4}}。腾讯文档上写的。
(dfs暴搜就行了,我总觉得leetcode上有类似的题但是面完找了一下没找到)
问我时间复杂度(我说应该是指数级别的)问我确定吗?
面完想了想时间复杂度应该是阶乘
问我怎么优化(用哈希表做记忆化搜索)
完事后也没有让我反问,流程有点奇怪,HR甚至没打电话只发了邮件。感觉怪怪的又说不上哪里奇怪orz。面完一度怀疑我是不是被KPI面了(?)
#互联网求职##实习##面经##腾讯#