开头

每到“金三银四”的季节,总人很多人去寻找名叫“面经”一样的东西,其实就是一个个具体的题目,然后临阵磨枪,去“背”答案,如果一直是这样的话,我相信你的能力不会有任何提高,即使工作三年五年也达不到高级工程师的水平,事实证明这类“程序员”占大多数。而且我认为一个“面经”真正有价值的内容是面试前你是如何学习的,面试中面对不会的题目你是如何回答的,以及面试后的你的感受和总结,而不是冷冰冰的罗列题目。

面试题目

1.一个创业公司

(发现问下来几乎全是java基础知识,几乎没有android知识)

先是笔试:

  • 生产者消费者模型用线程方式实现、按元素大小拼接两个链表
  • 同步和异步的区别
  • 阻塞和非阻塞的区别
  • 泛型擦除
  • 集合中线程安全的类和非线程安全的类(SparseArray和ListArray的区别,SparseArray怎么存数据、取数据)
  • Gradle插件怎么做
  • https怎么实现防抓包
  • 封装第三方库等等;

2.一个五六百人的民企

  • 线程池
  • 消息推送(自己做一个消息推送怎么实现)
  • Exoplayer相对于系统的MediaPlayer有什么优点
  • h5面面加载缓存,和原生怎么传递数据
  • MQTT和XMPP有什么区别,为什么会有那么多协议
  • https的原理,中间人攻击
  • 怎么中断一个线程

3.大厂

(多家公司面试题汇总,一些我认为的简单或是常规问题就不罗列了,全是我自己之前没怎么关注的问题,所以有时第三方库烂大街的原码分析要看,但有些关键点,其实很多博文可能都没分析到,需要自己多想想,自己主动去思考)

  • AsyncTask原理,在子线程中定义AsyncTask实例可不可以,为什么不可以呢
  • OkHttp原理(说了那些拦截器)怎么实现多路复用的(这个主要从https实现多路复用的原理上谈,用了二进制分帧,那okHttp其实就是按分帧来读取,具体可以自己看看相关博客)
  • Handler的机制,android内部是怎么实现发送延时消息,(一开始以为是用个类似于Timer之类的定时任务,后来才知道是用系统开机时间+延时时间得到一个时间T1,当手机当前时间到了T1的话,就会把消息发送出去。但有可能UI线程被阻塞了,所以到了T1时间,也不能确保100%这个Message被发出去的)
  • 性能优化减少apk体积,怎么减小so包的体积呢
  • 怎么给一个应用加固
  • ANR的原理,怎么从trace.log中找到ANR的原因及出现的地方(找到main thread),如果只是在主线程中Thread.sleep(10S),会不会出现ANR
  • JNI层的Crash怎么定位(通过ndk中相应的工具addr2line ndk-stack等可以定位到行)
  • 广播为什么能作为四大组件,有什么特殊之处(经面试官提醒,能实现一对多通信),本地广播的实现原理
  • Android中设计Fragment的好处,那有了Activity为什么还要设计出Fragment来呢(解耦)
  • ViewStub为什么能实现延迟加载(它没有进行测量和绘制,只在调flate或是setVisibility时才会加载进布局)
  • Binder怎么实现进程间通信的,怎么注册服务的。。。。

。。。。还有很多题,就不一一举例了,只能说给自己一个教训,很多东西看深点就不会多问一点就不知道了。

4.创业公司想招团队负责人

  • 做过哪些性能优化,Leakcanery的原理,怎么检测内存泄漏的
  • android的新技术你用了哪些
  • 你认为你应用中做得比较nb的地方有哪些,你认为你项目中解决了哪些技术难点等等。。。

5.我认为反常规的面试

1)直接拿着我做的公司某个应用开始一通批判,觉得我自己对自己做的应用都不负责任,还有什么理由来应聘你,问你认为你最善长做的是什么,比如UI、功能、性能优化等,你要说UI吧,你这UI做得怎么怎么的,你要说性能吧,应用性能也确实一般般,让我觉得我没有啥善长的。回来老公说我们公司害了我,因为我现在的公司做的应用要求太低了,能用就行。但是别人对我要求松,我得对自己严要求、高标准〜〜〜〜

2)上来弄个类似于脑筋急转弯的题

Set<Short> stack = new HashSet<>();
for(Short i = 0; i < 100; i++) {stack.add(i);stack.remove(i-1);
}
System.out.println(stack.size());());

我以为会抛异常,面试官问要是不抛,又会输出什么,我想着输出1呢。后来自己下来试验了一把,发现输出100,让我百思不得其解。后来百度搜索,经别人提点才知道因为i-1这里用到了隐式类型转换i-1会转成int型的减法,所以在remove时,根本没有那个对象,所以无论怎么调stack.remove(i-1)都不会有元素移出,我不得不感叹面试官设计的陷阱。后面又问了两个矩阵传送门问题,应该有取巧的办法,可能我脑子真是太笨了,最终也没有想出来。

面试感言

自己的总体感受是:现在市场大环境不好,各大互联网招人的部门都是些边缘部门或是新设部门,有些甚至是光杆司令或是完全全新的部门,从0个人开始招,先招团队负责人等。现在市场是供过于求,有不少被公司裁掉的员工,在这个节点找工作,导致楼主去面试,面试官一上来就问你现在是离职态还是在职。如果自己不够优秀,面试官有很多选择,是不愿意付高价来招聘你的,按道理什么时候都这样吧,只是现在有点过了。市场供过于求,应聘公司有得挑,不够优秀,可有可无的人,一般会倾向于压低工资。

通过这轮面试,让我知道了自己的差距,自己的研究的东西太浅薄了,而且没有自己的优势或者说专长。而且自己作为一个女程序员,发现HR面时很吃亏,HR好像提前给你考虑了各种因素,结婚了是吧,有没有小孩,有小孩你得照顾小孩吧,我们这里很忙的。即使你再想证明自己,工作方面不会受影响,但他们还是不想冒这个险,就像我当年校招找工作,去自己老家某银行面试,省行不要女生,可以去自己家里的分行。因为你要结婚,要生孩子,要休产假,要照顾家庭。我什么都没说呢,就把我给否完了,给我先下个定义,难不成想让女程序员都不要结婚不生娃么,你也有媳妇啊。

总的来说,自己劣势挺明显的,没有在某方面有很深研究,没有什么优势,知识面的广度和深度都不够,这方面要加强,同时作为一个有娃的女程序员,已经被别人否掉了50%了,所以必须从技术方面加强吧。

工作我还会继续找,人都是追求上进的,有好机会还是会考虑挪窝的。我不想在我30岁就干一份可以养老的工作,技术我也会努力去提升,愿我和大家都会有一个更好的未来。

文末

不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊~

小编将自己6年以来的面试经验和学习笔记都整理成了一个**937页的PDF,**以及我学习进阶过程中看过的一些优质视频教程。**上传在我的文档中:Android架构视频+BATJ面试专题PDF+学习笔记**请君自取,无偿分享!

docs.qq.com/doc/DSkNLaERkbnFoS0ZF)**请君自取,无偿分享!

[外链图片转存中…(img-SS7GYcrp-1623065358900)]

其实看到身边很多朋友抱怨自己的工资很低,包括笔者也是一样的,其原因是在面试过程中没有给面试官一个很好的答案。所以笔者会持续更新面试过程中遇到的问题,也希望大家和笔者一起进步,一起学习。

一个APP从启动到主页面显示经历了哪些过程?跳槽薪资翻倍相关推荐

  1. 录音机 在launcher中显示_「 腾讯 微信事业部 社招二面」——一个APP从启动到主页面显示经历了哪些过程?...

    8月份的时候离职,至今已经2个月了.突击复习下来结果算是有个交代了吧,有赞(深圳) .招商已经过了三面,等待HR面,腾讯过了二面,面试时状态还行,不知会不会有三面,许愿一个三面和HR面吧!(本人比较想 ...

  2. 一个APP从启动到主页面显示经历了哪些过程?(App启动流程,从点击桌面开始)

    本文以图文并茂的形式简单介绍一个APP从启动到主页面显示经历了哪些流程,以及实现的原理.不介绍具体源码,仅仅构建一个大体框架. 原地址链接:http://www.jianshu.com/p/a72c5 ...

  3. 安卓开发面试题,一个APP从启动到主页面显示经历了哪些过程?威力加强版

    前言 移动研发火热不停,越来越多人开始学习 android 开发.但很多人感觉入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,到达下一阶段需要补充哪些内容.市面上也多是谈论知识图谱,缺少体 ...

  4. 公司董事长——50w年薪程序员从顶端到谷底,一个APP从启动到主页面显示经历了哪些过程

    前言 在2020年1月初,公司倒闭,无奈走上找工作的道路,不想自己平时图安逸,不思进取,再次找工作才发现,android行业也不是站在风口上,猪也能吹上天的世道了.作为技术小菜的我,再找工作那几个月真 ...

  5. android github 多页面程序,论一个APP从启动到主页面显示经历的过程?

    前言 (个人观点.不喜勿喷) 本部分内容是关于Android进阶的一些知识总结,涉及到的知识点比较杂,不过都 是面试中几乎常问的知识点,也是加分的点. 关于这部分内容,可能需要有一些具体的项目实践.在 ...

  6. android反射开启通知_作为Android开发者 你真的知道app从启动到主页显示的过程吗?...

    前言 之前我跟大家说过,在一个夜黑风高的晚上,我的男同事突然给我发了一条微信,我点开来看,他竟然问我Android从按下开机键到启动到底发生了什么?此刻我的内心如下图: 然后就在昨天晚上,我又收到了他 ...

  7. uniapp APP项目启动页面全屏显示去除导航栏和下巴

    uniapp APP项目启动页面全屏显示去除导航栏和下巴 <template><view><!-- 启动图 --><view class="star ...

  8. 从键入网址到页面显示经历了那些过程

    浏览器收到URL时(例如: http://www.joes-hardware.com:80/power-tools.html), 会执行如下所示的步骤: 1. 浏览器解析出主机名 即:www.joes ...

  9. 一个长方体玻璃容器从里面量长宽_葡萄干这样吃,功效翻倍,含铁量是葡萄的15倍!葡萄干的功效和作用...

    葡萄干是一种很普遍的食物,它不像生葡萄有季节性,且价格非常便宜,一年到头都可以购买到. 你可别看葡萄干外型很小,不起眼,但是它对我们的健康很有帮助. 自由基的最佳克星 葡萄干的第一个优点是,经过脱水的 ...

  10. 用流程图来描述一个App的启动功能

    注:以下内容是我自己看了一些文章以及结合个人理解写的东西,可能有一些来自新人的偏见,欢迎交流. 一.启动的流程 软件启动--启动页或广告页--引导页(有没有?取决于是否首次启动)--首页(哪种首页?取 ...

最新文章

  1. arch更新失败的办法
  2. sap 無法建立 activex 元件_安徽陶瓷膜芯元件
  3. PHP中session与cookie的简单使用
  4. 麒麟985曝光!华为Mate 30或首发:标配5G 性能大增
  5. DevExpress v18.1新版亮点——WPF篇(二)
  6. leetcode5 Longest Palindromic Substring 最长且为回数的子字符串
  7. Excel 常用快捷键总结(Alt系列)
  8. html显示ftp资料,获取FTP信息及使用方法
  9. 简单的Django项目
  10. 淘宝人群标签时效时间 精准淘宝人群标签方法
  11. 冲印常见问题杂锦(网上摘录)
  12. vue的事件修饰符之.prevent
  13. python高级练习题:取消列表(比简单更难)【难度:4级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
  14. 【B站】陈睿:令人刮目相看的年轻一代
  15. GP工作室的项目计划书
  16. Hyman分别测试法
  17. 【Android Gradle 插件】Splits 配置 ④ ( Splits#language{} 脚本块配置 | 根据语言进行分包 | LanguageSplitOptions 配置简介 )
  18. Apache Beam开发指南
  19. 计算机快捷键和rec,【2人回答】在CAD键盘快捷键中,rec是指的哪个键?-3D溜溜网...
  20. 如何制作闪动的gif?一键教你gif闪图在线制作

热门文章

  1. 安装 Linux 系统,如何选择操作系统和电脑硬件
  2. 数字时代的必经之路,汽车经销商(4S)行业的信息化特点
  3. 最全的Vim操作快捷键
  4. JavaWeb汽车商城项目
  5. 虚拟机器系统安装管理 Xencenter
  6. Java从入门到精通
  7. 《信号与系统学习笔记》—信号与系统的时域和频域特性(一)
  8. 当Eclipse出现“initializing java tooling has encountered a problem”的解决方法
  9. ibm的服务器怎么重装系统,ibm服务器系统安装的具体教程
  10. 3850x5服务器装系统,IBM X3850 X5服务器ESXi 5安装配置全过程——安装