在这一个月里,我利用闲余的时间看了下最近Android职业发展这块该怎么选择?这个问题各位大神的回答都非常透彻,相信对大家或多或少都在一定程度上有很大的帮助,今天在这里写这篇文章更多的是想以我开发十年的工作经历,给大家带来一些不一样的关于Android程序员职场的进阶之路。怎样才能一步一步达到自己想要的位置。成为Android高级架构师年薪百万,真的就是我们Android开发者的尽头了嘛!财务自由只是刚刚开始,我们到底应该追求什么呢?看看我的文章吧!
面试形式是电话面试,算法是面试官会给你邮箱发一个链接,然后在那个网站里面就可以同步共享屏幕,网站类似于一个编辑器,不能编译,写了代码面试官会看,交流还是在电话里面完成。
一面(1小时)
重载与重写
final修饰符
抽象类和接口
GC机制、原理
finalize( )的理解
GC机制如何判定哪些对象需要回收
GCRoots有哪些
四种引用
垃圾收集算法
Hash Map与Hash table的区别
怎么让Hash map线程安全
Thead Loocal了解吗?
线程同步的几种方式
加锁与synchromized区别
Volatile 了解吗
JVM内存模型
leakCanary内部机制
Handler内部机制
MNC与MVP的区别,以登陆模块为例讲一下每层的工作
EventBus的原理
布局优化 include.merge,viewStub
view的绘制流程,自定义View
时间分发机制的区别
JVM与Dalvik区别 (Android虚拟机)
二面(50分钟)
自我介绍
abstract和interface区别
int和Integer区别
四种引用
Java里面int、char、long的字节数
线程的创建方式
RxJava的优缺点
EventBus(???不会)
从网络上加载一个10M的图片,要考虑哪些
http与https
http 1.0 和 http 2.0之间的区别
设计模式准则(全忘了)
Handler机制
算法:判断一个链表是否回文
算法:给定一个数组,将数组里面的每一位向后移动k位
三面(40分钟)
HashNlap与Hashtable的区别
Hashtable怎么实现了线程安全,效率低。为什么?
Android线程池通信的方式
TCP三次握手
内存泄漏的几种情况
进程的优先级
非静态内部类为什么持有外部类的引用
在JVM中非静态寸内部类的,class是单独的还是在外部类的class中?内部类的class文件名为“外部类¥内部类.class”
Activity启动模式
Activity启动流程
Handler机制?为什么会存在内存泄漏?
MVP是怎么实现的
Glide原理?怎么实现缓存
1. 算法题怎么答
面试官可能会问到你闻所未闻的算法,这时候你不应该自己瞎想,而是先和面试官把问题讨论清楚。要知道,通过沟通弄明白复杂的问题也是一种能力,在和面试官交流的过程中,不仅仅可以搞清楚题目真正的意思是什么,还可以展现自己良好的交流沟通能力。所以千万不要因为紧张或者害羞而浪费这次大好的机会。有些题目似曾相识,但是暂时没有思路。这时候不妨告诉面试官,给我一些时间思考这个题。然后不要急,不要慌,就当他不存在,拿出纸和笔慢慢算(这充分说明了面试戴耳机的重要性)。你一定要坚定一个信念:“任何一道稍微有难度的算法题,除非做过,否则一定是需要时间想的”。所以,合理的安排思考时间吧。如果十几分钟都想不出来,可以直接放弃。
2. 遇到不会的问题怎么处理
这个问题有可能是面试官故意说得含糊不清,考察你的交流能力,也有可能是无意的,或者是你的理解方式出现了偏差。不管是以上哪种问题,你都应该先和面试官交流,直到你搞懂了面试官要问你什么,而不是按照自己的理解说了一堆无用的东西。举个例子,面试官可能会问了一道算法题:“如何判断两个无限长度的链表是否有交点?”。对于“无限长度”可以有不同的理解,如果真的是有无穷多个节点,那显然这个问题是无法解决的。但如果链表仅仅是有环,那么还是可以解决的。如果面试官的本意是链表有环,但你错误的理解成了无穷多个节点,那么必然会导致无法回答这个问题。而且这并非能力不足,而是属于交流沟通方面的失误,这也正是我想分享的“技巧”。
3. 遇到真的不会的问题怎么处理
遇到不会的问题果断承认啊。如果是基本问题,比如问你哈希表怎么实现,你说不会,那么这次面试可能就悬了。如果是有一定难度的问题,那么你承认不会,也是一种明智之举,毕竟人无完人,一个问题不会并不能全盘否定一个人的能力。
4.心态
面试的时候一定要控制好心态,一个好的心态往往更容易拿到offer。
愿你有一天,真爱自己,善待自己。
本文在开源项目:Android开发不会这些?如何面试拿高薪 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…