如何做好面试突击,规划学习方向?
面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。
学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。
同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
-
自我介绍
-
handler机制,sendMessage和post(Runnable)的区别。
-
ThreadLocal原理,底层实现
-
HashMap底层,扩容,LinkedHashMap
-
Service的onBind和onStart差别
-
Activity启动生命周期,A跳转B
-
Android持久化方案,SharedPreference是否可以跨进程通讯。ContentProvider
-
ClassLoader机制,双亲委派。如果我要写一个Activity类,那怎么保证加载的是我自己写的Activity
-
算法题,约瑟夫环
-
反问
二面(1hour):
-
自我介绍
-
项目技术点详解
-
写过什么自定义View
-
OkHttp代码看过吗,用了什么设计模式
-
MVC、MVP区别,项目中的实现。
-
LiveData和EventBus的相关讨论,真的是讨论,畅所欲言
-
看过哪些源码
-
SharedPreference相关
-
Android动画了解吗,用过什么
-
TCP、UDP区别,面试时的语音用的是什么,为什么要这么用。
-
代码题,5个线程对一个int进行累加到1000.
薪资
字节给 2021 届的校招薪资按照岗位来看:
算法岗分为三档22k、26k、30k;
开发岗分为五档:20k、22k、24k、26k、28k;
产品岗分为两档:16k、18k;
设计岗分为三档12k、14k、16k;
市场岗在12k左右。
一般字节按照15 个月计算,算法的校招最高档年薪总计约45w+。字节不分工作年限所有人每月1500元房补,只要地铁或者单车20分钟以内的距离都可以。加班的话公司会按120%的工资给你结算加班费。
百度
•简述内存泄漏,你处理过哪些内存泄漏?
•以100ms/张的间隔时间播放100张图片,且每张图片需要400ms进行加载,如何设计?
•如何在无序数组中快速找到最小值
•简述Android中的ANR,以及为什么会出现ANR?
•简述Handler消息机制,内部实现原理
•手撕一个有序数组的二分查找算法
•列举一个你在实际项目中所进行的性能优化
•简述单例模式的实现方式,且单例模式有什么优缺点?
•简述Java的异常处理机制
•多线程间如何进行信息通信?
•多线程如何保证线程安全?
•简述线程池
•简述HashMap实现机制,如何解决HashMap的线程安全问题?
•TCP和UDP的区别,分别有哪些应用场景?
•简述七层网络模型
•简述Android点击事件的分发机制
薪资
百度是全球最大的中文搜索引擎、最大的中文网站。整体来说,百度公司的薪资待遇应该是互联网企业里算上乘的。
根据校招君的整理汇总,百度给 2021 届的校招薪资按照岗位来看:
算法岗分为四档22k、24k、26-27k、30k;
开发岗分为四档:18k、20k、22k、24k;
产品岗分为三档:14-15k、18k、20k;
设计岗和市场岗都在13k左右。
一般百度按照16个月计算,算法的校招最高档年薪总计约48w+。工作前三年年假12天,然后15天,最多18天。住房公积金全部缴纳,缴纳比例为12%。百度在公司福利这块最为出名的大概就是“奖金无上限”了,早在2015年,在百度上班的一名员工拿到了50个月工资的“百度最高奖”,假设月薪3万,50个月就是150万了,就问你心不心动!
阿里
一面:
自我介绍
秒杀项目(smali代码有没有看、tcp三次握手、https流程、单向认证和双向认证、SSL、token、服务器如何校验数据被篡改,这种机制叫什么(身份验证?))
activity启动模式
数据结构中hashmap结构、原理、是不是线程安全
如何实现线程安全,内存模型
锁在内存中如何使用,CAS是什么
如何实现线程1和线程2同时进行,都结束之后执行线程3(countLowndown,notify,线程池)
进程间通信的方式
content provider原理,如何获取URI,(manifest中的exproted,默认情况是false还是true)
Android卡顿原因,如何造成,ANR
算法:翻转字符串成work am I
10G文件如何下载(如何保证传输正确(tcp+校验和),分多线程下载,)
操作系统中分页和分段、逻辑地址如何转换为物理地址
研究生学过哪些课程
二面:
有没有公司实习经历
排序算法有哪些?冒泡和快排的时间复杂度和稳定性
七层模型?路由器在哪一层?
http和https区别、状态响应码有哪些代表什么
APP和activity的启动流程
最后
我见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了5、6年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。
其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。
不断奔跑,你就知道学习的意义所在!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
155252)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!