集体状况
简略介绍一下本人,我是一名末流 985 毕业,自学计算机,现在试图转行 Android。浅学过 Java、Android,所以根底还算过关。但剩下的 Framework、性能优化、kotlin 都是刚入门的程度,仅有一些理解。
对于简历
我的简历没有任何包装,我的项目经验都是本人做的很简略的货色,技能形容除了 java 和 Android 全副写的是“理解”字样,不会的都没写、没理解过的也没写、更没有包装工作教训。但这样居然也通过了简历评估,约了面试。
面试流程
详情
面试流程和网上他人形容的基本一致,问的问题超级多、笼罩常识范畴也极广,整个面试下来将近一个小时。
不过问的大部分问题我都不会,或者答得不好,还是筹备不够充沛吧。
可怜的插曲
约的面试工夫是下午 2 点,我提前十分钟进入视频面试零碎,然而当自我介绍的时候,我的电脑忽然就黑屏了,这次给我弄难堪了,也很影响情绪。我赶快重启电脑,并和面试官阐明状况。
自我介绍
介绍了本人的根本状况,比拟悔恨的一点是没有说本人的我的项目教训,这间接导致前面面试官没有问我对于我的项目的任何货色!大家切记,如果有本人我的项目的话,肯定要介绍,要疏导面试官去问本人会的货色。
面试题目
- 自我介绍
- 讲讲你对 MVVM 的意识?
- MVVM 的长处有什么呢?
- MVP 中 Model、View 和 Presenter 的持有关系是怎么样的?
- MVVM 中的持有关系呢?
- MVVM 中各个层在 Android 开发中的对应关系?
- 你的 MVVM 用到了 Jetpack 里的 ViewModel,那么它是如何保持数据的呢?
- ViewModel 是怎么做到在 Activity 销毁重建新实例之后还能放弃不变的呢?
- 如果用 Kotlin 去调用一个具备返回值的 Java 函数,那么这个返回值是可空的还是非空的呢?
- Kotlin 中的可见性和 Java 是不一样的,别离讲讲?
- 你说你用到了协程,讲讲你对于协程的意识?
- 调用了 cancel() 之后协程的状态变动?
- 如果子协程中没有通过判断协程状态来决定是否终止工作,那么勾销父协程之后会是怎么的?
- 你提到了协程分为有栈和无栈两种。它们的区别是?
- 这个“栈”里都保留了什么信息?
- Kotlin 的协程是无栈的,那这些信息是怎么保留的?
- 协程该怎么勾销呢?
- 协程会不会和线程一样有共享变量抵触的问题呢?
- Kotlin 中有一个 inline 关键字,讲讲你的理解?
- 除了通过内联函数缩小函数调用的开销,还有什么用处吗?
- 如果当初有一个高阶函数被 inline 润饰,我不想让它的参数被内联,该怎么办呢?
- Kotlin 是能够跨平台编译的,讲讲你的理解?
- 你方才提到的编译到“原生平台”,指的是什么?
- 当初如果让你用 Kotlin 写一个跨平台的我的项目,你该怎么做?
- 浏览器里从输出一个网址,到最终看见网页,产生了什么?
- HTTP 是应用层协定,讲讲是如何建设的?
- 你说底层是 TCP,那讲讲 TCP 的三次握手?
- 如果当初要应用 HTTPS,连贯的建设会产生什么变动呢?
- 客户端是如何依据 IP 地址找到服务器对应的主机的呢?
- LeetCode 518. 零钱兑换 II
结尾
面试官问我有什么问题想问的,我早就被他的问题问傻了。不过还是好奇为什么没问我我的项目经验,我就问了,后果面试官说忘了。。。
复盘倡议
- 1、大家投简历前(尤其是大厂),还是尽可能准备充分,面经什么的搞起来,不然可能因为筹备不到位损失一次面试机会(很多公司都有面试记录)
- 2、简历要尽力做好(不是做假),好的简历可能会给你带来意想不到的面试机会
- 3、在自我介绍和答复问题时,学会疏导面试官,往本人相熟的方向和题目带
- 4、面试前保障设施和环境一切正常,千万不要像我一样因为设施影响了面试
但具体面试的时候问得会有多深,就因人、我的项目和部门而异了。个别你能答出的题目越深、越具体,面试官可能考查的难度就会更大,当然了,面试通过的概率以及拿到 offer 的薪资程度也会越高。
另外,Android 大厂面试中,往往 framework、性能优化是考查的重点,除了光会写代码外,在面试前还是要好好背下八股文的。这里也给大家分享一些。
通过失败的面试,我意识到本身的有余,当前保持学习、一直在面试中发现和改良本人的有余,也祝大家都能在金三银四中拿到心仪的 offer,加油!