字节提前批一面(客户端开发(Android))

全程面了一个半小时

1. java是一门面向对象语言的,怎么理解的?

2. 面向对象的特性?

3. Java类修饰符

4. 不同修饰符的区别

5. 多线程了解吗?线程与进程说一下

6. 进程之间通信的方式(其中我答了一个socket,接着就往下深入了)

7. TCP和UDP的区别?应用场景(我答了浏览网页和QQ发消息)

8. TCP是哪一层的协议?IP呢?

9. TCP三次握手,四次挥手,握手最后一次能传数据吗?(答能传)又问那为什么会第三次握手,直接开始传数据不就行吗?四次挥手为什么不是三次?

10. QQ发消息用UDP怎么实现不丢消息的(面试官问我我会怎么解决,我答了TCP传送少量消息加UDP传送大量消息)为什么不直接用TCP?(我答,TCP慢,UDP快无需差错检测,大量消息用UDP会快些,TCP辅助验证消息确认消息发到,好像大致是这样的,哎……)

11. Https数据包的结构?

12. 产生死锁的条件

13. Synchronized与ReentrantLock讲一下

14. 现在有一个类A,里面有两个方法(打印一句话),一个静态方法,一个普通方法,都用synchronized修饰,现在生成一个对象,在两个线程里面分别调用这两个方法,两个方法里面的内容能正常打印出来吗?(我觉得能打印出来,后来试了一下确实能,但面试官一直问,似乎他觉得不可以,可能是我听错了?)

15. 比如微信发朋友圈,要上传完九张图片,最后才能发朋友圈?多线程是怎样实现的?(面试官引导了一下,C线程要在A线程和B线程执行完成之后执行,怎么实现,当时想着用锁,没想出怎么弄,最后答了一个用信号,类似于广播),面试官又问,信号会不会太多了,怎么解决?(最后确实答不上来,就过了)

16. 熟悉JVM吗?类装载过程是什么?

 

一直很奇怪,没问Android的问题,来了……

 

17. Activity的启动模?SingleTask的应用场景?(一时没想到怎么解释,面试官说了一个注册流程的的例子……说了好半天)

18. Handler机制?两个子线程能通过Handler通信吗?一个线程能有多个looper吗?在线程里面构建多个looper会怎么样?为什么只能有一个looper?(没答上来就结束了)

 

做题:大数相加,做完之后讲思路(面试官看我用C++写,就问我对C++熟悉吗?我说只刷题,不太熟,又问熟悉STL吗?我答只会用一些常用的,如vector、Map啥的)。

 

 

反问环节:问了一下它们是不是每个工作周期都是开发一个新的APP?所有定制组件都是自己重构的吗?Github上的代码能直接改了用吗?随便扯了一下

#字节跳动安卓工程师面经##字节跳动##面经##校招#
全部评论
冲冲冲
1 回复 分享
发布于 2021-08-06 13:33
厉害厉害!
点赞 回复 分享
发布于 2021-12-07 19:11

相关推荐

过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
3 37 评论
分享
牛客网
牛客企业服务