楼主是初面腾讯,面试官应该是做安卓开发的,效率很高,昨天晚上面今早挂。
科班+有两个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 的所有添加符号的方法数。
返回可以使最终数组和为目标数 S 的所有添加符号的方法数。
楼主太菜了,没见过01背包的dp,刷题还是太少,没想出来怎么做,问了一下面试官,他一时半会没想到算法,就算了
无反问,面试官评价:
算法题比较难没做出来,java和操作系统相关基础都挺不错的,都回答差不多,计算机网络没时间问了。
算法题比较难没做出来,java和操作系统相关基础都挺不错的,都回答差不多,计算机网络没时间问了。
本来以为还有希望进二面的,结果早上一看挂了
总结:
这次其实算是一次比较侥幸的面试吧,前面问的都很常规,没有太难的,都是一些基础内容,其实楼主Spring、数据库和相关掌握的不是很好,接下来有时间还是要多多深入,面试官会比较喜欢针对一个点一直深入询问
另外就是算法真的很重要很重要!看来腾讯可能是算法没AC就直接挂,遇到3道题目的同学最好也要至少AC两道,算法全AC太重要了!其他各家大厂也都需要笔试了,所以准备面经的同时,多刷算法也很重要!
全部评论
(4) 回帖