来自一位不愿透露姓名的网友自述;5面京东Android开发,已offer

Posted 初一十五啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来自一位不愿透露姓名的网友自述;5面京东Android开发,已offer相关的知识,希望对你有一定的参考价值。

一丶前言

在我接触android开发之前接触的最多的是网络方面。到了大二由于一次偶然的机会让我我决定以后向 Android开发方向出发,至今为止我学习Android差不多也快2年了,所以Android方面的知识算不上很好。在我投的时候,是刚刚毕业的一两天,没有去刻意的准备笔试面试,也有很多东西都忘记了。但我还是把简历投给了京东,本来不抱有希望的我,结果在我收到了京东的面试邀请,后面就有了这5次面试。

下面简单的说一下我的这5次面试:4次技术面+1次HR面,希望我的经历能对各位需要找工作的人有所帮助。

随后我会把面试中问到的问题还有其他的内容整理出来,需要的可以自己查询
共勉!
<<腾讯T10+最新Android资料,让你告别繁琐>>

二丶开始面试

一面

(大概45分钟左右)

  1. 自我介绍(我主要介绍自己会的技术细节和项目经验,至于自己的经历都是一语带过,毕竟后面面试官会问你的)。
  2. 聊我的项目(对自己的项目自己做了一些什么改进,在项目实施中发生困难时怎么去解决它)。
  3. 图片加载库相关,bitmap如何处理大图,如一张30M的大图,如何预防OOM。
  4. 浏览器输入URL发生了什么? TCP和UDP区别? TCP如何保证传输可靠性?
  5. 讲下跳表怎么实现的?哈夫曼编码是怎么回事?非递归且不用额外空间(不用栈),如何遍历二叉树
  6. 后面又问了很多JVM方面的问题,比如Java内存模型、常见的垃圾回收器、双亲委派模型这些
  7. 询问我还有什么问题要问的。

二面

(1h左右)

  1. 自我介绍(根据第一次介绍自己的面试官的感觉,在第二次介绍时决定自己要不要进行修改或不变)。
  2. 操作系统的内存管理机制
  3. 进程和线程的区别
  4. 说下你对线程安全的理解
  5. volatile 有什么作用 ,sychronized和lock有什么区别
  6. ReentrantLock实现原理
  7. 用过CountDownLatch么?什么场景下用的?
  8. AQS底层原理。
  9. 造成死锁的原因有哪些,如何预防?
  10. 加锁会带来哪些性能问题。如何解决?
  11. HashMap、ConcurrentHashMap源码。HashMap是线程安全的吗?Hashtable呢?ConcurrentHashMap有了解吗?
  12. 你有什么问题要问吗?

三面

(50分钟左右)

  1. 有没有参加过 ACM 或者他竞赛,有没有拿过什么奖?
  2. 你觉得你有什么优点和缺点?你觉得你相比于那些比你更优秀的人欠缺什么?
  3. 有读过什么源码吗?(我说我读过 Java 集合框架和 Netty的,面试官说 Java 集合前几面一定问的差不多,就不问了,然后就问我 Netty的,我当时很慌啊!)
  4. 介绍一下自己对 Netty 的认识,为什么要用。说说业务中,Netty的使用场景。什么是TCP 粘包/拆包,解决办法。Netty线程模型。Dubbo 在使用 Netty作为网络通讯时候是如何避免粘包与半包问题?讲讲Netty的零拷贝?巴拉巴拉问了好多,我记得有好几个我都没回答上来,心里想着凉凉了啊。
  5. 用到了那些开源技术、在开源领域做过贡献吗?
  6. 常见的排序算法及其复杂度,现场写了快排。
  7. 讲讲算法及数据结构在实习项目中的用处。
  8. TCP与UDP区别与应用(三次握手和四次挥手)涉及到部分细节(如client如何确定自己发送的消息被server收到) HTTP相关 提到过Websocket 问了WebSocket相关以及与socket的区别。

四面

(半个技术面)

三面面完当天,晚上9点接到面试电话,感觉好像是部门或者项目主管。 这个面试和之前的不相同,感觉面试官主要在考察个人解决问题的能力、学习能力和团队协作能力。

  1. https相关,如何验证证书的合法性,https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解。
  2. 出现 OOM 后你会怎么排查问题?
  3. 自己平时是如何学习新技术的?除了 Java 还回去了解其他技术吗?
  4. 上一段实习经历的收获。
  5. nginx如何做负载均衡、常见的负载均衡算法有哪些、一致性哈希的一致性是什么意思、一致性哈希是如何做哈希的
  6. 还有一些其他的,想不起来了,感觉这一面不是偏向技术来问。

五面

(HR面)

  1. 自我介绍。
  2. 你觉得你有什么优点和缺点?如何克服这些缺点?
  3. 你期望的工作地点是哪里?
  4. 你的兴趣爱好是什么?
  5. 你该如何快速融合的团队当中等…

三丶 总结

  1. 可以看出面试官问我的很多问题都是比较常见的问题,所以记得一定要提前准备,还要深入准备,不要回答的太皮毛。很多时候一个问题可能会牵扯出很多问题,遇到不会的问题不要慌,冷静分析,如果你真的回答不上来,也不要担心自己是不是就要挂了,很可能这个问题本身就比较难。
  2. 表达能力和沟通能力太重要了,一定要提前练一下,我自身就是一个不太会说话的人,所以,面试前我对于自我介绍、项目介绍和一些常见问题都在脑子里练了好久,确保面试的时候能够很清晰和简洁的说出来。
  3. 面试之后及时总结,面的好的话,不要得意,尽快准备下一场面试吧!

四丶核心内容掌握

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一线大厂面试题手册,堪称神册!

我以为我对Mysql索引很了解,直到我遇到了阿里的面试官

分享给各位网友吸薪大法,闭关两个月终拿下京东offer涨薪1.5W

不想知道吗?你的个人数据是如何被企业商业化的

程序员吐槽面试被当成备胎,网友却觉得还好