腾讯音乐Android暑期实习面经

一面(2024/4/3 65min)

  1. 三线程交替打印(给15min)
现有三个线程,负责功能如下:
* 线程 A:只输出 0
* 线程 B:只输出偶数
* 线程 C:只输出奇数
*
* 输入n,表示要打印数字序列的终点,序列按照0102...n格式输出。
* 其中,zero() 打印0,even()打印偶数,odd()打印奇数。
*
* 示例 1:
* 输入:n = 2
* 输出:"0102"
* 解释:三个线程异步执行,其中一个调用 zero()打印0,另一个线程调用 even()打印偶数,最后一个线程调用odd()打印奇数。正确的输出为 "0102"。
*
* 示例 2:
* 输入:n = 5
* 输出:"0102030405"
  1. 我没写出来,时间到了之后,面试官就问一些实现上的问题,首先说一说思路,我想用等待唤醒机制,面试官问还有没有其他实现方式,我说观察者模式,面试官说这和等待唤醒其实是一样的,然后面试官说了一个内置函数yield(),JUC仔细学是在大二了,用得少只记得有这个东西,忘了是用来干嘛的了
  2. 问完方案就问实现上的问题,首先是变量可见吗,我说可以加上volatile关键字,然后就追问我volatile关键字的原理,内存读写屏障。volatile关键字修饰的变量保存在哪里?我懵了,变量保存在哪里跟volatile修饰有啥关系吗,全局变量在方法区,局部变量在函数调用栈,跟volatile有关系吗
  3. 接下来问实习和项目做的一些事,这个不具有啥参考性,大伙实习做的事,项目的内容多少不太一样
  4. 介绍一下最近做的一个需求
  5. 你的实现有做策略的选择吗,收益如何
  6. 除了插桩还可以用什么实现方式,说了动态代理,还有吗?……想不到了
  7. 聊项目,说一说项目中你理解的最深的一个框架
  8. 屏幕适配怎么实现?知道怎么实现折叠屏适配吗?(我只是个在校生,咋会有机会做这个)
  9. xxhdpi和xhdpi中存放的图片哪一个占用的内存高?(查了一下,如果手机屏幕密度相同的文件夹下不存在此文件,而在大于手机屏幕密度的文件夹下存在此资源, 会进行缩小相应的倍数的平方https://blog.csdn.net/zhujiangtaotaise/article/details/112907477,所以如果xxhdpi和xhdpi存放的图片都是xhdpi的话,xhdpi占用的内存高,xxhdpi所占内存低)

反问:

  1. 部门业务和技术栈?
  2. 面试中的不足?面试官说这个倒是也不太好说(我听到这里心里咯噔一下),毕竟在校生嘛,看得出来你还有一些紧张,语速有点快
  3. 面试一共几面?三轮技术
  4. 如何平衡好工作和自身技术的提升?

面完大概两天后我上去看到流程结束了……

总结:被上强度了,全程没有问单独的八股,手撕、实习、项目就引出所有东西,问你实现,问你优化,问你其他方案,整个面试过程中我听到最多的一句就是“除了你的这种实现方案还有其他方式吗?”,我需要现场想一种方案出来,面试官很强很强,我说得很多东西他能很快的get到,面试官他们做的方向和我实习的方向恰好对口,问得很深很深,面试过程确实紧张,上来的线程交替打印没做出来,已经有点慌了,感觉TME的hc很少,一面就挂了,有点受打击

后来又被捞了……

再一面(2024/4/11 50min)

  1. 上次没有通过,下来有去分析原因吗?有做记录还有去网上查找解释。说一说你下来整理的一个点,我说了xxhdpi和xhdpi的那个问题
  2. 一张图片加载到内存后,已知图片是100kb,如何计算图片在手机的大小?(可能是这个意思?)我说先通过计算每个像素所占用的内存,然后乘以已知的分辨率。面试官又说图片在内存中的内存大小和在其他地方是不一样的
  3. 说一说你实习做的一些工作,这个面试官不像上一次的面试官跟我实习的方向匹配,我介绍完之后面试官都没有追问啥技术问题
  4. 算法题,*********,要求O(n)时间,O(1)空间,位运算,利用异或的性质
  5. 算法题,*********II,要求O(n)时间,O(1)空间,分组异或,关键逻辑在于怎么分组,以前做过,面试的时候想不起来
  6. 说一说JVM内存分区?栈内存满了会怎样?StackOverFlowError
  7. 32位系统和64位系统的本质区别是什么?你应该知道so动态链接库吧,不知道……
  8. 你知道的可以检测内存泄漏的工具有什么?
  9. 说一说LeakCanary的原理?
  10. 如何查看进程的内存占用?这里要问linux命令,我寻思着我简历也没写linux啊,下来查了一下
  11. 获取程序pid:lsof -i:3306 或者 ps -aux | grep mysq ld

    假如我获取的mysqlpid3779

    那查看cat /proc/3779/status | grep VmRSS 或者top -p 3779

  12. 你如何理解虚拟内存?面试官要问操作系统,我是非科班出身,操作系统这块不太会(简历我没写这块),我说了我学Binder的时候对这方面的理解,然后面试官又问了我虚拟内存的作用?我说了方便了内存的管理,举个例子?然后面试官补充多说了一个扩展了内存空间
  13. 学过计算机网络吧,学过,说一说TCP和UDP的区别?
  14. 如果是UDP协议如何保证可靠性?序列号机制和超时重传
  15. 起初的HTTP的传输层是?TCP协议。后来的HTTP3的传输层是?QUIC协议。QUIC协议如何实现的?UDP
  16. 如何实现服务端的主动推送,客户端的被动接收?也就是不是由客户端去做主动请求。我只知道一个socket
  17. OKHttp的原理是什么?
  18. 如果你的应用是处于休眠状态,这个时候服务端要推送数据给客户端,客户端如何实现接收?

一、如果在这个手机上有其他我们系列产品的客户端,可以借由这些客户端来接收,接收之后再来拉起目标进程。如果没有系列产品呢?而且也不能保证这些产品处于活跃状态,所以这不是业界的主流方案

二、通过和厂商合作,然后在手机操作系统层面去实现接收服务端数据,再由操作系统来拉起目标进程。嗯你说对了,这才是业界的主流方案

反问:

  1. 我还有哪方面需要去提高的?
  2. 招聘实习生/在校生会看重他的什么?实习/实践经历?还是基础知识?面试官说看重基础,因为有些人并不像你们一样有相关的开发经验,如果他的基础好的话,那我们也相信他能很快上手。我沉默了,有点不知所措,敢情面试就不是看经历和匹配度就看算法和八股是吗,我开始思考对于面试来说实习到底有没有用。实习的这段时间我的业务开发能力、做事能力都有很大的提升,但这些面试官不在乎。
  3. 面试流程是怎样的?两轮技术和一轮HR

总结:结束之后不久我上官网看了下,流程结束了,情理之中也是意料之外。这一次的面试不像上一次的面试,面试官并不问我的实习和项目,只是问他想问的基础,甚至问了很多我简历上没写的知识。有一种会叫做面试官觉得你应该会。字里行间好像稍显抱怨,但也没精力仔细斟酌用词了。这段时间的糟心事和挫败太多了。也是自己在实习期间对于八股和算法的学习确实少了很多,接下来得抓一抓了

全部评论
太狠了,问的
点赞 回复 分享
发布于 2024-10-16 00:26 广东
哥,压力面啊,都问的好深
点赞 回复 分享
发布于 2024-04-16 14:18 广东
呜呜,我也是昨天面的移动客户端刚刚挂了,唉想找个实习好难啊😞
点赞 回复 分享
发布于 2024-04-12 21:14 湖北
可以面两次吗?
点赞 回复 分享
发布于 2024-04-11 18:32 重庆

相关推荐

草稿猫编程:查看图片
点赞 评论 收藏
分享
人生一梦:24年我投暑期实习,它以我不是女的为理由拒绝了我查看图片
点赞 评论 收藏
分享
评论
13
31
分享

创作者周榜

更多
牛客网
牛客企业服务