来自一位不愿透露姓名的网友自述;5面京东Android开发,已offer
Posted 初一十五啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来自一位不愿透露姓名的网友自述;5面京东Android开发,已offer相关的知识,希望对你有一定的参考价值。
一丶前言
在我接触android开发之前接触的最多的是网络方面。到了大二由于一次偶然的机会让我我决定以后向 Android开发方向出发,至今为止我学习Android差不多也快2年了,所以Android方面的知识算不上很好。在我投的时候,是刚刚毕业的一两天,没有去刻意的准备笔试面试,也有很多东西都忘记了。但我还是把简历投给了京东,本来不抱有希望的我,结果在我收到了京东的面试邀请,后面就有了这5次面试。
下面简单的说一下我的这5次面试:4次技术面+1次HR面,希望我的经历能对各位需要找工作的人有所帮助。
随后我会把面试中问到的问题还有其他的内容整理出来,需要的可以自己查询
共勉!
<<腾讯T10+最新Android资料,让你告别繁琐>>
二丶开始面试
一面
(大概45分钟左右)
- 自我介绍(我主要介绍自己会的技术细节和项目经验,至于自己的经历都是一语带过,毕竟后面面试官会问你的)。
- 聊我的项目(对自己的项目自己做了一些什么改进,在项目实施中发生困难时怎么去解决它)。
- 图片加载库相关,bitmap如何处理大图,如一张30M的大图,如何预防OOM。
- 浏览器输入URL发生了什么? TCP和UDP区别? TCP如何保证传输可靠性?
- 讲下跳表怎么实现的?哈夫曼编码是怎么回事?非递归且不用额外空间(不用栈),如何遍历二叉树
- 后面又问了很多JVM方面的问题,比如Java内存模型、常见的垃圾回收器、双亲委派模型这些
- 询问我还有什么问题要问的。
二面
(1h左右)
- 自我介绍(根据第一次介绍自己的面试官的感觉,在第二次介绍时决定自己要不要进行修改或不变)。
- 操作系统的内存管理机制
- 进程和线程的区别
- 说下你对线程安全的理解
- volatile 有什么作用 ,sychronized和lock有什么区别
- ReentrantLock实现原理
- 用过CountDownLatch么?什么场景下用的?
- AQS底层原理。
- 造成死锁的原因有哪些,如何预防?
- 加锁会带来哪些性能问题。如何解决?
- HashMap、ConcurrentHashMap源码。HashMap是线程安全的吗?Hashtable呢?ConcurrentHashMap有了解吗?
- 你有什么问题要问吗?
三面
(50分钟左右)
- 有没有参加过 ACM 或者他竞赛,有没有拿过什么奖?
- 你觉得你有什么优点和缺点?你觉得你相比于那些比你更优秀的人欠缺什么?
- 有读过什么源码吗?(我说我读过 Java 集合框架和 Netty的,面试官说 Java 集合前几面一定问的差不多,就不问了,然后就问我 Netty的,我当时很慌啊!)
- 介绍一下自己对 Netty 的认识,为什么要用。说说业务中,Netty的使用场景。什么是TCP 粘包/拆包,解决办法。Netty线程模型。Dubbo 在使用 Netty作为网络通讯时候是如何避免粘包与半包问题?讲讲Netty的零拷贝?巴拉巴拉问了好多,我记得有好几个我都没回答上来,心里想着凉凉了啊。
- 用到了那些开源技术、在开源领域做过贡献吗?
- 常见的排序算法及其复杂度,现场写了快排。
- 讲讲算法及数据结构在实习项目中的用处。
- TCP与UDP区别与应用(三次握手和四次挥手)涉及到部分细节(如client如何确定自己发送的消息被server收到) HTTP相关 提到过Websocket 问了WebSocket相关以及与socket的区别。
四面
(半个技术面)
三面面完当天,晚上9点接到面试电话,感觉好像是部门或者项目主管。 这个面试和之前的不相同,感觉面试官主要在考察个人解决问题的能力、学习能力和团队协作能力。
- https相关,如何验证证书的合法性,https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解。
- 出现 OOM 后你会怎么排查问题?
- 自己平时是如何学习新技术的?除了 Java 还回去了解其他技术吗?
- 上一段实习经历的收获。
- nginx如何做负载均衡、常见的负载均衡算法有哪些、一致性哈希的一致性是什么意思、一致性哈希是如何做哈希的
- 还有一些其他的,想不起来了,感觉这一面不是偏向技术来问。
五面
(HR面)
- 自我介绍。
- 你觉得你有什么优点和缺点?如何克服这些缺点?
- 你期望的工作地点是哪里?
- 你的兴趣爱好是什么?
- 你该如何快速融合的团队当中等…
三丶 总结
- 可以看出面试官问我的很多问题都是比较常见的问题,所以记得一定要提前准备,还要深入准备,不要回答的太皮毛。很多时候一个问题可能会牵扯出很多问题,遇到不会的问题不要慌,冷静分析,如果你真的回答不上来,也不要担心自己是不是就要挂了,很可能这个问题本身就比较难。
- 表达能力和沟通能力太重要了,一定要提前练一下,我自身就是一个不太会说话的人,所以,面试前我对于自我介绍、项目介绍和一些常见问题都在脑子里练了好久,确保面试的时候能够很清晰和简洁的说出来。
- 面试之后及时总结,面的好的话,不要得意,尽快准备下一场面试吧!
四丶核心内容掌握
1.Android工程师必备基础技能(**涉及:**注解、泛型、Retrofit、架构动态编程技术原理、Butterknife、JavaSSit丶虚拟机丶并发内存丶Synchronize丶并发原理之线程池丶数据序列化)
2.T10工程师核心优化能力(涉及:启动优化、内存优化、启动优化速度、卡顿优化、布局优化、崩溃优化、应用启动全流程(源码深度解析)等内容)
3.Framework与Android内核系统信息(涉及:Framework通信、Framework底层服务、Framework事件机制等内容)
4.Android前沿技术(**涉及:**自动化构建APP、Compose等内容,compose已经更新完成)
5.Android音视频开发(初-中-高)(涉及:Android初级音视频开发【1-7】、Android中级音视频开发【8-19】、Android高级音视频开发【20-51】等内容)
6.Android资深架构师(**涉及:**架构师通用技能、网络访问、图片加载、数据库管理框架、进程通信框架、Rx响应式编程、注入解耦、组件化、插件化、等内容)
7.Android车载工程师(涉及:Android Auto、汽车媒体应用、构建Android Auto即时通信、导航与地图应用、Android Automotive OS视频应用、Android车载应用、Android汽车应用等内容)
8.Flutter高级工程师(涉及:Flutter动画、Flutter组件、Dart、弹框、网络请求、实站丶Flutter3.0等)
9.鸿蒙相关(涉及Ability组件、分布式任务、事件总线、鸿蒙线程、UI自定义控件等内容)
10.Kotlin相关(涉及:对象丶类丶继承丶变量丶常量丶拓展函数**等内容)
Android路漫漫,共勉!
<<腾讯T10+最新Android资料,让你告别繁琐>>
以上是关于来自一位不愿透露姓名的网友自述;5面京东Android开发,已offer的主要内容,如果未能解决你的问题,请参考以下文章
来自清华扫地僧的总结:39W字上千道Java一线大厂面试题手册,堪称神册!