一面面试官的思维非常跳跃,经常我说到一半的问题,突然询问其他相关问题,然后回答完再继续之前的说下去,有些许不适应这个节奏。顺序可能不太对。
1.类的加载过程,Person person = new Person();为例进行说明。
2.JVM相关知识,GC机制。
3.类的加载器,双亲机制,Android的类加载器。
4.Android中进程的级别,以及各自的区别。
5.插件化原理。
6.集合框架,list,map,set都有哪些具体的实现类,区别都是什么。
7.concurrentHashmap原理,原子类。
8.volatile原理。
9.Binder机制。
10.View的绘制流程,事件传递机制,Handler异步消息机制。
11.Interger中的128(-128~127),这里考的是常量池的概念,这个没回答上来。
12.线程池的相关知识。
13.Handler机制,HandlerThread实现等等。
14.LRUCache算法是怎样实现的。
就这样第一面基本结束。一共问了14个问题,其中美团的手写算法在业界算是比较出名,很多小伙伴可能卡在手写算法上。然后就是一些Android和Java的细节性东西,这些基础内容只要有1年经验的都基本能说出个一二三。
第二面
面试官可能没注意我是海外党有时差,凌晨四点来了通电话约时间,还好顺利的约到第二天上午~
二面面试官感觉专业了很多,问问题也比较灵活。有时候会有点像在怼的打断然后追问,但是有答得不好的地方也会很耐心的引导
1.写个快速排序
2.生产者消费者伪代码(因为和面试官思路不同加上紧张,代码反反复复改了很久,面试官也一直在写代码引导我)
3.顺带讲了一下wait() await()这一系列方法
4.如何用数组实现队列(直接说抽象的环,但面试官一直在引导细节如何更优化,比如怎么判断队满,决定插入位置怎么省去if…感觉面试官真的很耐心)
5.如何用数组实现栈
6.弱引用,有什么用?有没有用过?
7.如果写一个库中存在的类,包也一样,会怎么样?
8.提到类加载要确保类的唯一性,怎么确保?
9.三次握手,为什么要三次
10.TCP怎么保证可靠
11.如果包乱序到达会发生什么
12.进程和线程的区别
13.追问进程之间为什么会相对比较独立?电脑上看起来运行着很多进程,是怎么隔离的?
14.如果一个进程需要一直读写内存,会影响其他进程吗?(这里我开始结结巴巴瞎说了…面试官安慰了一下)
15.知道几种单例模式的写法?有什么优缺点
16.Hashmap原理
17.扩容具体是怎么做的?原本的元素要怎么放进新数组?
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后
我这里整理了一份完整的学习思维以及Android开发知识大全PDF,有需要的同学可以自行领取。
当然实践出真知,即使有了学习线路也要注重实践,学习过的内容只有结合实操才算是真正的掌握。
体系路线](https://bbs.csdn.net/topics/618156601)**
当然实践出真知,即使有了学习线路也要注重实践,学习过的内容只有结合实操才算是真正的掌握。