是的,对于大多数刚入门Android的程序员来说,当下互联网求职环境越来越差,大批机械化的Android程序员生产大队,一波波涌进,底层越来越卷,大多人在“车间”培训三个月或者更少的时间,然后伪装一下上战场,期间也有真正的猛士,而大多数人并未习得真正的要领,成了炮灰。
他们没有办法找到工作,一次又一次的打击,他们的心理防线被逐个击破,他们心想哪怕是外包公司也可以啊,然而事实过于残酷,最后一道防线也被击破了,他们倍受打击,开始自暴自弃,失落无奈,以至于不敢去面试。
他们中间有一个人失落啊绝望啊,但是没有放弃,不停的面试,他发现他面过的东西又很快忘记,很多面试官的问题似曾相识,而他却根本答不出来, 他开始总结,每次面试后将面试官问的题目进行整理,一个个的分析,强迫自己写答案,背答案,对着镜子一遍遍练习,不懂得就百度,功夫不负有心人,奇迹发生了,他面上了一家外包公司,工资只够吃住,他没有犹豫的去了。
去到公司他啥都不会,但是他脸皮厚,不懂就向经理问,期间他学会了上各种学习网站,他开始看技术大佬写的文章,但是时间久了他发现看多了其实很快就会忘记,基本没有效果,于是自己开始写东西,可是自己写东西哪有那么容易呢?死磕,半个月时间看一个类,能写出东西来,但只有自己看的懂,却印象深刻。
一年后,他想跳槽了,于是他去面试被问了下面这些东西:
1.谈谈activity的生命周期?
当时我第一反应,woc?送分题? 然后就巴拉巴拉说了一大堆
但是他接下来的问题,我就有点懵逼了,那Aactivity转跳到Bactivity 它们的生命周期又是怎么样的呢?
我想也不难啊,首先Aactivity肯定执行OnCreate、OnStart、OnResume、OnPause、OnStop
然后Bactivity执行OnCreate、OnStart、OnResume
但是我这里犯了一个错误,OnStop的作用是,当你这个界面完全不可见时,才会执行
所以正确的应该是
Aactivity执行OnCreate、OnStart、OnResume、OnPause
Bactivity执行OnCreate、OnStart、OnResume后,Aactivity才执行OnStop
这时候,我能感觉到面试官对我有点失望。
2.听说你对数据存储比较了解,那你给我说说SharedPreferences的实现流程吧。
呵,尽管我有一道没回答好,这一道简单。
首先调用SharedPreferences对象的edit()方法获取一个SharedPreferences.editor对象…最后apply()方法将数据提交
面试官:说的挺详细,那你能给我说说apply()和commit()的区别吗?
我:??????what ???commit是什么??what’s this??两个单词长得不一样?
这时候,他轻咳了一声,我慌的一批。
后来查阅资料知晓,apply和commit的主要区别是:
apply是先将数据保存在内存中,然后再保存到磁盘上。
commit是直接保存到磁盘上
好吧,这时候他可能不想理我了。
3.说说okHttp吧。
这一次我回答的小心翼翼,生怕出点错。首先添加一个依赖库,之后创建一个okHttpClient实例,这时候如果要想发起一个http请求,就需要创建一个Request请求…
面试官:那你和我说说OkHttp的拦截吧。
我:(这时候我很坦然了)对不起(不会就先道歉),我对这个网络请求框架仅仅是了解,没有实际操作过。
面试官:那今天的面试就到这吧,你可以走了。面试的结果我们后期会通知你。
我:…谢谢
形形色色的人,变化无穷的世界。我们能做的只有适应。
这个年头不是所谓的,个人就能创造多少多少利益,带来多少价值。
更多的是团队合作,取长补短,让1+1>2 甚至1+1>10
提升核心竞争力,实质上就是在别人都会的领域你变得精,在别人不涉及的领域,你会。这就是你无法轻易被替代的地方,也是你的个人价值所在!
你能创造多少价值,世界就能为你带来更多价值!
由于篇幅原因,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,
目录
由于篇幅原因,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,有需要的朋友赶紧评论666,只有点赞+关注,然后查看我的【GitHub】就能获取这3份算法与数据结构笔记以及1953页PDF的面试题解析文档哦!