4.12 腾讯客户端一面凉经

楼主是初面腾讯,面试官应该是做安卓开发的,效率很高,昨天晚上面今早挂。
科班+有两个java相关项目,没问项目

1.自我介绍
2.有没有做过安卓项目?(无)

java:
3.java为什么能跨平台
4.jvm有什么特性
5.说说jvm的JIT和AOT的区别
6.说说反射
7.静态代理和动态代理
8.cglib的invokeSuper和JDK的invoke的区别
9.cglib中拦截器的子类是怎么获得的(说的不够好——)
10.动态代理的应用场景(答Spring的AOP,但是面试官要更具体的业务场景)
11.线程池了解吗?(不了解)
12.说说jvm的GC吧
13.GC的收集算法
14.假如是一个UI界面,应该用哪种算法
15.java内存结构
16.java的对象中的基本类型在哪
17.java线程中栈存放什么

操作系统:
18.线程和进程的区别
(顺便说了进程状态,进程通信方式
19.说说中断
20.内存页式管理
21.说说虚拟地址和物理地址
22.虚拟内存
23.页面置换算法
24.操作系统线程间同步方式
25.你说了Mutex,那讲讲synchronized和volatile吧
26.volatile的可见性可以保证变量同步吗?(记不清具体的)
27.volatile有什么应用

容器相关:
28.数组和链表的区别
29.说说为什么数组获得一个值的时间复杂度是O(1)的
30.数组的下标是怎么取元素的,对应在内存中是怎么样的步骤
31.ArrayList的扩容
32.ArrayList扩容后,内存中新旧List的地址是怎么样呢


---到这里45min问完,因为是比较常规的问题,基本都答上来了

---我们来做道题吧,20分钟
算法题:
leetcode 494
给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。
返回可以使最终数组和为目标数 S 的所有添加符号的方法数。

楼主太菜了,没见过01背包的dp,刷题还是太少,没想出来怎么做,问了一下面试官,他一时半会没想到算法,就算了

无反问,面试官评价:
算法题比较难没做出来,java和操作系统相关基础都挺不错的,都回答差不多,计算机网络没时间问了。

本来以为还有希望进二面的,结果早上一看挂了

总结:
这次其实算是一次比较侥幸的面试吧,前面问的都很常规,没有太难的,都是一些基础内容,其实楼主Spring、数据库和相关掌握的不是很好,接下来有时间还是要多多深入,面试官会比较喜欢针对一个点一直深入询问
另外就是算法真的很重要很重要!看来腾讯可能是算法没AC就直接挂,遇到3道题目的同学最好也要至少AC两道,算法全AC太重要了!其他各家大厂也都需要笔试了,所以准备面经的同时,多刷算法也很重要!
#面经##腾讯##安卓工程师##Java工程师#
全部评论
        // 测试链接 : https://leetcode.com/problems/target-sum/         // 优化点一 : // 你可以认为arr中都是非负数 // 因为即便是arr中有负数,比如[3,-4,2] // 因为你能在每个数前面用+或者-号 // 所以[3,-4,2]其实和[3,4,2]达成一样的效果 // 那么我们就全把arr变成非负数,不会影响结果的 // 优化点二 : // 如果arr都是非负数,并且所有数的累加和是sum // 那么如果target<sum,很明显没有任何方法可以达到target,可以直接返回0 // 优化点三 : // arr内部的数组,不管怎么+和-,最终的结果都一定不会改变奇偶性 // 所以,如果所有数的累加和是sum, // 并且与target的奇偶性不一样,没有任何方法可以达到target,可以直接返回0 // 优化点四 : // 比如说给定一个数组, arr = [1, 2, 3, 4, 5] 并且 target = 3 // 其中一个方案是 : +1 -2 +3 -4 +5 = 3 // 该方案中取了正的集合为P = {1,3,5} // 该方案中取了负的集合为N = {2,4} // 所以任何一种方案,都一定有 sum(P) - sum(N) = target // 现在我们来处理一下这个等式,把左右两边都加上sum(P) + sum(N),那么就会变成如下: // sum(P) - sum(N) + sum(P) + sum(N) = target + sum(P) + sum(N) // 2 * sum(P) = target + 数组所有数的累加和 // sum(P) = (target + 数组所有数的累加和) / 2 // 也就是说,任何一个集合,只要累加和是(target + 数组所有数的累加和) / 2 // 那么就一定对应一种target的方式 // 也就是说,比如非负数组arr,target = 7, 而所有数累加和是11 // 求有多少方法组成7,其实就是求有多少种达到累加和(7+11)/2=9的方法 // 优化点五 : // 二维动态规划的空间压缩技巧
5 回复 分享
发布于 2021-04-13 20:09
请问一下,30怎么答鸭
点赞 回复 分享
发布于 2021-04-13 17:54
看面试官的,我同学贼简单的算法都没弄出来也过了
点赞 回复 分享
发布于 2021-04-13 15:28
楼主你好,请问你是实习、校招还是社招?
点赞 回复 分享
发布于 2021-04-13 15:00

相关推荐

09-27 00:19
门头沟学院 Java
发发面经攒攒人品tl8.29&nbsp;&nbsp;一面9.3&nbsp;&nbsp;&nbsp;二面9.12&nbsp;三面&nbsp;9.15挂8.29&nbsp;字节抖音&nbsp;一面1.面试官介绍流程:编程&nbsp;+&nbsp;简历提问&nbsp;+&nbsp;基础知识2.自我介绍3.TCP为什么需要三次握手,四次挥手4.追问:三次握手的过程中,客户端挂了,后续如何处理?&nbsp;答:服务端超时关闭连接。追问:linux或者编程库如何配置这个超时参数5.https如何在http基础上保持安全性6.多线程情况下,什么hashmap是线程安全的7.追问:如何保证安全8.key和value是否设置为null9.jvm的垃圾回收器都有什么,解决什么场景?发展趋势是为了解决什么问题,这些迭代是为了解决什么问题10.追问:项目中是否碰到垃圾回收不合理的情况11.什么情况下OOP不合适,需要使用AOP,结合你的项目,结合项目说明12.Spring&nbsp;AOP中的AOP应用有什么13.如果没有@Transactional14.如何解决循环依赖15.需要存储一个用户对象,包括id、邮箱等,如果用redis存放,可以用string和hash,你会怎么选16.追问:并发情况下,怎么保证string的一致呢?如果一个线程改了id,一个线程改了username,怎么解决17.缓存穿透&nbsp;缓存击穿&nbsp;缓存雪崩18.什么是幻读19.mysql的事务隔离级别20.redis和mysql是搭配使用的,如何保证数据一致性,能保证完全一致吗21.考虑在哪些地方加监控,哪些打点,哪些报错,怎么考虑错误处理,哪些需要异常抛出来,哪些打个日志,怎么分级处理23.实习相关手撕:lru9.3&nbsp;二面算法:从尾到头k个一组反转链表1.实习2&nbsp;-&nbsp;4&nbsp;.本科和研究生成绩,是否考研,课题组5.TCP怎么保证可靠,如果包发送失败了呢,怎么确认数据包的数据是完整的安全的正确的6.hashmap中以一个对象,比如person作为key,如果修改了它的成员变量,比如age,那还能找到它吗?&nbsp;默认的hashcode是怎么实现7.如何设计一个线程安全的计数器8.乐观锁和悲观锁,及其适用场景,哪个性能更好,高并发场景会用哪个更多9.从数据库中查询某个商家近30天的数据,从性能的角度考虑,尽可能快地查询10.设计一个用户量比较大的评论系统11.有一个大文件,找到出现频次最高的一百条评论12.其他公司面试情况9.12&nbsp;字节三面1.&nbsp;自我介绍2.&nbsp;redis常见的数据结构3.&nbsp;mysql事务的隔离级别4.&nbsp;介绍实习项目,难点和挑战5.&nbsp;代码(仅口述)二维数组,每行已排序,然后将所有数据排序一维输出6.&nbsp;给用户发金币,预算1千万金币给500w人发,每个人最多可发3个,且发的越多平均收益越低,如何发金币让全局回报最大7.&nbsp;RPC进行序列化和反序列化的原理(或者说类怎么进行序列化)
CR7_KB24:好事xd,现在抖音电商这个部门就算过了三面,也得泡一个月池子,都够再面好几轮了
点赞 评论 收藏
分享
评论
6
20
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务