春招实习_腾讯 wxg 一面 3.27 15:00
1. 快速排序的复杂度,简单叙述一下过程
2. 400个结点的完全二叉树的叶子结点数 (255 < 400 < 512, 所以有9层,第八层有128个结点,第九层有(400 - 255) = 145 个叶子结点,所以第八层还有 73 个结点是有孩子的,剩下 55个结点没有孩子,变成叶子结点,所以第八层有 55个叶子结点,第九层有145个叶子结点,一共 200个叶子结点)
利用 n2 = n0 + 1的公式,假设没有一个孩子的结点,那么根据边数等于结点数减一, n0 + n0 - 1 = 400, 明显 n0 不是整数,所以应该是有一个只有一个孩子的结点,这样 n0 + n0 - 1 + 1 = 400 , n0 = 200, 也得到了答案
3. 100万个数统计 找出最大100个数
第一种方法:对100万个数建堆,取100次,即可取出最大的前100个元素,因为建堆的话就但是这种方法中堆的中元素很多,如果数量级再大一些,
100个结点的小根堆,每次加入一个元素,淘汰堆顶的元素,保证堆中100个元素是当前最大的100个元素
4. n * n 的格子,部分格子有障碍物,从左上角到右下角有多少条路径, 深度优先搜索,动态规划,dp[][] 数组中存储的就是从左上角到(i, j) 的dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
5. 对一个数组求前 n 个元素的和,1. 累加 2. 线段树(用另一个数组存储前n 个元素的和)
6. 设计栈的数据结构,里面有一个max函数,可以以O(1)的复杂度找出栈中最小的元素
7. 简单介绍一下大学期间收获比较多的项目,自己干了什么
8. 这个项目是学校的课设项目还是自己的兴趣项目
9. 有调研过怎么查询帖子列表的程序吗 ,怎么排序(我说的是数据库索引),如果帖子
10. 项目部署在 linux 还是 Windows ,用的是Ngins 集群吗
11. Tomcat 的组成(没了解过)
12. 对 Linux 的命令熟悉吗
查看端口的占用情况
一个日志文件有20G, 机器内存只有8G,怎么找到有失败的信息
swap 区是用来干啥的,工作机制是什么
怎么看系统调用
13. Java 里面如果有一个线程阻塞了或者内存泄漏,怎么找出哪个地方阻塞了,有什么工具可以查看,一般怎么处理这样的问题
14. 简单介绍一下 GC 机制(3个回收算法 -> CMS 目标,CMS的回收过程,缺点--> G1的设计目标,相对于CMS的优点回收过程)
15. MySQL 常用的存储引擎
16. 自己的项目用的是什么存储引擎,有考虑过为什么要用InnoDB吗,是因为他是默认的索引选了吗
16. 简单介绍一下MySQL 的体系结构
17. MySQL 怎么数据数据备份,数据备份机制有哪些,分布式怎么数据备份,非分布式怎么数据备份(我说的是快照 + 日志),主服务器挂掉了怎么办,怎么找到另一个master 来顶替
18. 简单介绍一下 Redis ,使用场景
19. 论坛系统什么地方适合用来做缓存 -- 他说是 需要频繁访问但是修改较少的信息可以用来做缓存,什么样的数据可以存在缓存中比较好
20. 输入 一个url 后经过的步骤,用到的协议
21. Xss 脚本攻击,跨站请求伪造的攻击方式和防范手段,客户端和服务端分别有什么手段可以规避这么攻击
22. 存储结构(cpu - Cache - cput - 动态缓存-- 硬盘),为什么要分层,只因为速度吗
23. 进程之间通信有哪些方式, (管道,socket, 共享存储,消息队列)
24. 消息队列组件有哪些
25. 僵尸进程怎么产生的
26. 腾讯的实习生招的怎么样了,还有坑位吗,--- 只要能力够强,不用担心 hc 的问题
腾讯的 Java 只是用来做 web 应用 -- 腾讯的技术栈比较open,各种语言都有
面试体验
总以为自己准备的还可以,面试一次才知道自己有多菜