从这条博客开始转变!

尽人事,听天命!

  我当初纯粹是因为喜欢玩游戏想知道游戏是怎么做出来的才选的软件工程。
  可是现在我却急需一个方向,能让我以后知道自己就业做啥的方向,我迫不及待地想找到工作远离学习苦海了(感觉学得很累伤心神伤身体还要交学费= =而且还没学到什么,嗨呀越想越丧了都),可是没学到什么是就不了业的,现在就是处在一个大三的很怕一毕业就失业的窘境。
  其实很久以来一直都有在思考以后的方向问题,我到底对什么感兴趣呢?
  开发的话,前端后台,前端的话,本来想试试安卓,可是郭神的《第一行代码》看了几章就没办法继续跟着他打下去了,感觉那种布局调条条框框的终究不适合我,唉。后台呢,我也问过一些师兄,看过一些后台大神的博客经历,可是这学期的算法课让我心凉了一大截,算法,好难!算法不精通直接把路堵死了,唉,又是因为我愚钝。
  最近在想能不能做软件测试呢,看了很多知乎上的软件测试工程师分享经历,觉得自己可以先来入入门试试?可是真的好怕又是三分钟热度,三百六十行的一条通用定律就是:兴趣是最好的老师。感觉现在的自己只是为了将来能就业而各种死马当活马医罢了,并不是真的出自热爱某个方向,对某个方向感兴趣才选的,凭借这一点,真不知道自己能找到什么出路。。。
  等考完试了再来好好想想吧。。。。
  这篇博客之后再编辑,今天这番话主要是警醒自己:
  不要再因为碌碌无为而悔恨自己荒废了个大一大二甚至都萌生出了当初不选这个专业的想法甚至自暴自弃的念头了!事情已经发生了,况且再来一次我当初也会选择这个专业!!要想摆脱现在心理上的困境,就要做点实事出来,不要再欺骗自己,得过且过了!
  我不能放弃,不能再混日子了,我要及时确认自己的思路,方向,然后开始有所为了。
  一句血的教训:大学不是高中可以让老师帮你涂鸦你的空白的,大学是很靠自学的!
  希望一切为时不晚!
  加油!!!
2018.1.4


  今天跟几位大佬在一起讨论作业,感觉跟大神们一起合作的真的比自己一个人单干效率要强太多了,大神们很多思路还有想法都是我想不到的,他们掌握的知识要比我多太多了。总而言之,真的好喜欢又好羡慕能有一个团队一起合作的人啊,大家相互提高相互进步,多好呀!
2018.1.5


  19号的时候,终于结束了所有课程的考试。想想这学期过得好像又是啥都没学到的感觉(每一学期都是这种碌碌无为的迷茫感),真的严重怀疑自己的能力。这两周基本是在预习+突击自己的各个科目,经常去新活一泡就是泡一天,弄得身心俱疲。我啊,真的不懂什么叫平时好好努力才惹得今天这番狼狈。不管成果如何,现在只能听天由命了。
新的烦恼会取代旧的烦恼,现在新的烦恼走了,旧的烦恼也该回来了。
  这两天考完试在浪的同时,又开始思考自己的未来走向了。
  结果是,安卓。
  记得大二下的暑假的时候,我决定学习安卓,但是大三上这学期,只看了郭神《第一行代码》没几章就停了,也不知道干嘛去了。。。当时记得是AS自带的模拟器运行起来太卡了,所以决定安装genymotion,但是这B东西一直报错让我电脑各种蓝屏,最后心态也搞炸了。当时放弃安卓的另一个原因吧,就是当我很惧怕调试那些条条框框,我也很怕我做不出那种好看的UI,实现不了各种很华丽逼格很高的动画、交互等。。。。
  是啊,我愈发地发现我只是惧怕,并不是没兴趣,因为这种惧怕只是对未知事物的恐慌罢了。我甚至自暴自弃过,觉得自己现在学什么都晚了,已经荒废了两年了,什么都晚了。这中间的心路历程就不再赘述了,只是想说,我挺过来了,我觉得自己还有救,我还得去救很多人。

  

  其实我在微信里发出这个问题前,我已经有答案了,但是我想听听我敬爱的奶奶怎么说,她老人家在天之灵给我的答复却让我惊讶无比。
  我个人不信什么鬼神,但对命运一说却十分痴迷。
  每次遇事不决的时候,就喜欢摇骰子,单数干嘛,双数干嘛。
  所以当我摇到5的时候,我觉得凑巧吧,鬼使神差地再摇一次,没想到是3,我开始颤了,因为两个单,还是递减。
  所以我心想,下一个是1???
  结果。
  如图所示。
  重拾安卓。
  我来了!
2018.1.21


  新年将至,时忙时闲。总算是从《第一行代码》第二版的P160读到P570页完了,熬过了一个因为对安卓的种种都不知晓所以很茫然乃至学不下去的阶段(我知道这只是一座小山而已)。现在读完感觉啥都懂一些又啥都不会(其实就是代码我都看得懂,但是让我打我是万万没法像郭神一样这么巧妙地打出来的)。无论如何,现在我的对安卓的兴趣明显比之前高太多了,因为就是,我看懂了安卓的布局,看懂了四大组件的相互作用,以及各种控件之间的交互,看懂了一款简单安卓APP的运转原理。我知道我看懂的还很基础,但至少我发现没我想的那么难,或者说只要功夫深,铁杆磨成针。总结一句:郭神真的强,革命尚未成功,一切才刚刚开始!
2018.2.9


  好久没更新进展了,这段时间一直在继续研究安卓,照着群侠传打了个2048后又自己做了个俄罗斯方块。
如今看着别人都早就忙于春招投简历了(有的都要开始面试了吧),其实自己也是跃跃欲试,但是又觉得自己基础那么薄弱,数据结构计网数据库算法操作系统啥的,其实没有这么多“但是”的吧,就是我太怂,我到底在怕什么???
  我到底在怕什么???
  就算他妈面试把老子全刷了又如何,还不是回到起跑线而已?!
  所以我到底在怕什么????
  投了投了喜欢的全部都投一遍,被刷了就查缺补漏!!
  干他妈的!
2018.3.13


  把自己想要的安卓岗,能投的都投了一通,现在心惊胆战,感觉像是一个死刑犯在等待最终执行。然后问了一个刚被腾讯电话面试的朋友,嗯,赶紧恶补计网!!!
2018.3.14


  计网都还没怎么看,简历就被拿去点评了,结果被批得一无是处,那个大佬说想应聘大厂岗位的可能性很小很小。自己心态也炸了,简历、能力确实low炸了,整个人突然不好了,感觉好痛苦,突然不知道要不要坚持安卓了,非技术的岗位就不用这么折腾啊,可是,为什么我这么没用。。。。
2018.3.15


  刚刚认识了牛客网,也看了好多人的面试经,都是我不会的那种!真是悔恨不能早点认识到这些平台,以前荒废了好多时间去打游戏了。无论如何,我还年轻,时间就是我的资本,我有两年不够刻苦但我接下来还有那么多年可以来用心沉淀、拼搏。我应该放长眼光来看待我未来的路,加油吧!
2018.3.16


  今天把牛客网安卓的专项练习做完了, 感觉提升也不是很大啊。。。不过可以做JAVA和计网操作系统数据库啥的了,反正也是查缺补漏吧。然后今晚接到了腾讯的电话面试,竟然没有问技术方面的,还是比较笼统的问题吧,加入的社团,读的书,读后感,做了什么项目,项目中遇到的最大困难以及怎么解决,最上心的课,课上学了什么。虽然没问技术,但还是有意识到自己算法真的很差劲啊,尤其是树和图,赶紧补补。
2018.3.20


  今晚又接到了腾讯的电话面试,腾讯小哥哥的声音都这么好听的吗简直了= =。而且我准备了很久,这次还是没有问到安卓方面的知识,算法啥的都没有,倒是还是一直在考察我的学习能力。真的心里很紧张但是表现得又很镇定,很怕下次突然就是技术面,又觉得很幸运原来应届生因为缺乏项目经历所以并不会很看重项目经历而是学习能力。
2018.3.22


  今晚去了华师石牌校区参加了金山的笔试,写得马马虎虎吧,JAVA真的太多不会了,容器的使用,还有各种数据结构。然后已经等了四天也没看到腾讯的电话了,今晚才想到之前第二轮轮电话很可能是第一轮面完被刷然后第二轮被捞起来的,怪不得我说怎么上来又不问技术问题,都是问些学习上的事。行吧,第二轮又被刷了就刷了,明天网易技术面,真的很惆怅,有时候真想一整天躲在被子里,想睡多久睡多久呵。
2018.3.26


  今天参加了网易爸爸的面试,科韵路离大学城真近,然后网易大厦逼格真高,工作环境看着就觉得好到爆。只可惜面试官问了很多我不会的,安卓的、操作系统的那些,唉,真的难受。愈发觉得找个工作原来是这么难的一件事情,回来后买了《Effective JAVA》和《深入了解JAVA虚拟机》,真的没系统学过JAVA,问个垃圾回收机制我也是支支吾吾,问个内存泄漏我也是一知半解。妈耶!也不知道有些人怎么看着就像生来就有这一份工作似的,羡慕啊。
  一生气就把美图给报了,哪个公司在广州或者深圳收安卓实习生我都不想放弃吧,只是一下子就收到了明天的笔试通知,明晚又有华为的,华为的怎么每次都好死不死地就跟我别的笔试撞车了呢,上次把华为的笔试翘掉还以为就结束了呢,没想到第二次机会又撞车。。。看了那些大佬的华为面经,是不是在他们眼中去哪个公司都很容易啊,羡慕。
2018.3.27


  今晚做了一小时华为线上笔试和8分钟美图线上笔试,华为的题目应该算不难吧之前也有在牛客网和博客上了解过往年题型,虽然说不难但是真的如他人所说,很坑,巨坑!第一道题我就没看懂题意,所以一直觉得是我境界太低了get不到点,结果第二道题简单得又不像第一题,一次就样例全过了。好吧,那来看看第三题,鸭儿哟,说输入是一个整数数组,结果你也没告诉我是输入多少个,还以为要判断scanf()!=EOF这种,结果一直都是通过0%,后来改成字符串再提取数字出来竟然通过了80%。问题是你没告诉我是字符串啊!是字符串啊!字符串啊!符串啊!串啊!啊!
  然后做了8分钟美图,就做了选择题填空题,都是考JAVA的知识,我真的没系统学过JAVA我是不是要原地爆炸了。然后问答题占70%我全来不及做了,粗略过了一下问答题,五道好像安卓JAVA各占一半吧。JAVA考用JAVA实现二分查找,还有找字符串数组里出现最多的那个字符;安卓的话考Asynctask。(只记得这个了)不过今晚既然去做了华为就没想着要过美图笔试了,算了哈。
  结果笔试刚做完,来了个电话,我看到这个020开头广州的,第一反应是美图来问我为啥只做了8分钟题目,正在心里捣鼓怎么找个借口(毕竟不能说我是去做隔壁华为了吧),结果没想到竟然是网易HR的,一个高冷的小姐姐,上来问我是不是本人然后告知我明天下午两点去网易面试,妈耶,我紧张得只在那嗯嗯哦哦,结果就说了这些她就拜拜了,我都不敢问是HR面还是技术面,嗨呀,只通了33秒,好紧张。。
2018.3.28


  今天下午去了网易技术二面,从两点多等到快四点吧,直到有工作人员来招我上楼,结果发现不是马上就能面的,还得排队。人数的话,感觉比上次一面要明显少了很多,但是还是蛮多的。七楼有很多地方空着,也有一些网易员工在大胜聊天。我坐在一个凳子上排队,而后来了一个女的,偷偷瞄了下她的简历,发现竟然是个硕士研究生,而且跟我一样来面试移动端开发实习岗。好吧,当然内心慌得要死,我一个本科大三小学生。
  等了二十几分钟吧,终于轮到我了。被工作人员带进去后,没想到竟然只有一个面试官。戴眼镜,戴得歪歪的,看着很和蔼,整场面下来并没有一面那种紧张感和压迫感。他一直看着我简历问的,上来就是聊项目。那还能干啥,我只能又双叒叕地聊自己的俄罗斯方块小游戏了,我说了下我做这个程序的历程吧,然后还给他展示了一下,他体验了一下,针对一些实现的细节也问了下我。有一个问题卡得我很久,他说我在子线程里判断消行,主线程旋转,如果主线程旋转跟子线程消行刚好同步运行了,会不会造成数据紊乱,我从没考虑过这个问题,一下子都不知道怎么回答,只能说我玩这个游戏也玩了很久了,一有BUG就调,从没遇到这种情况。没想到他对我的回答并不满意,直到我后来说俄罗斯方块如果能消行的情况,一定是不能再旋转的情况了,因为能消行的时候周围的方块会很挤,所以这种情况方块旋转经常要出界碰到原来的方块的,这种情况我是不允许旋转的(当然我这种解释真的很牵强)。后来他就问了遇到的一些小BUG都有啥,我就只说了两个,一个游戏关闭后会弹出错误报告,发现是线程为空的问题,原来没去考虑鲁棒性,要用Looper对象去执行线程啥的,还有一个就是背景音乐在游戏切出去的时候没有暂停这种小BUG。
  说了很久的项目吧,他突然问我了不了解JNI,我这几天听到这个名词无数次了,但是我都只是听说,所以最后很尴尬地说不了解。然后他又问了我两个框架,一个RXJAVA一个eventBus,我能咋办啊我也很绝望啊,我只能说不知道,他问我有没有网络编程经验,我说学校的网络课都是些理论的,作业也是问答题,没接触过套接字编程。最后问了我onsaveInstanceState和JAVA的stringbuffer和stringbuilder的区别,我总算知道了,就答了然后问了他一些对我的建议还有对面试流程的问题,他说技术面只有两次,不知道有没有HR面。
  整个过程下来,因为不会的我都直接说不会,所以导致我以为自己全程答得挺好的,刚走出去的时候还以为稳了,现在看来其实真的蛮可悲的,JNI都不懂,框架也不懂,套接字编程也不懂。还是蛮可惜的吧,毕竟这一次过了就稳进网易了,就差这临门一脚啊。
  怕是这个网易二面要凉了。终于正式地凉了一个。。。
2018.3.29


  

  哈哈哈哈一拳超人太好看了,有毒,把我这些天的压力和不开心都卸得干干净净。不知道为啥,在琦玉老师身上真的看到了很多小人物的影子。其实我向往的生活也不过就是这样啦,有一个安心的小窝,能自食其力,然后有一些零散或者一定量的小时间来做自己喜欢的事,在这些小确幸中就能体会到自己生而为人的一种喜悦。
  最后,去他喵的面试,锁我简历说好会再联系的结果一个星期了都不联系,让我像个网恋的小女生一样天天查着进度等着电话,行啊,罢工罢工。
2018.3.30


  上午:
  刚刚得知自己金山的笔试大概率是挂了的,因为金山明天在广州面试了。鸭儿哟,还以为金山能保底的,还以为中大学子在他们眼里很有牌面的,还以为自己笔试答得很NICE。。。想想自己最近一直在期待着金山网易腾讯华为啊等等的电话,结果一通都没有,没一个为我打call,还是蛮难受的(我被刷了能不能马上通知下我好让我死心,不然我天天在期待着电话电话电话)。总算还是能体会到网上那些投了简历然后石沉大海然后心态爆炸的人的心情了吧,没实力,找个实习注定备受折磨。只是突然觉得自己是不是不适合安卓开发啊,做技术真的这么难吗,为什么都没个爸爸肯收留我QAQ
  只能说各个爸爸真的很严格,我这个菜狗都明白的,我收拾收拾就滚
  ORZ

  下午:
  我竟然来电话了!
  但不是面试通过的电话!
  在打计图报告的时候,突然收到了杭州的电话,谁啊,懵逼,一接,鬼鬼,阿里的电话面试,整个人大脑都空了好几秒。因为阿里是我最最最早投的,投完马上得到一个编程测试题,要我去找什么文件循环依赖,那道编程题把我对阿里的期望全打没了,我题都没看懂,更别说代码怎么写了。所以这十几天里我一直都觉得自己阿里笔试阶段已经凉了,结果今天,这迟来的电话面试的难度并没有让我失望,阿里巴巴果然是我面过中最难的。
  那个面试官的声音比之前两轮腾讯电话的面试官要有力气很多吧,时不时一声干笑也让我觉得特别囧特别尴尬,恨不得找个地缝钻进去的那种。上来就问我有做啥项目,然后问activity的生命周期,还有四种启动模式。虽然没做任何准备(这几天也没在看面经了已经),但还好这两个我还会,答得出来,结果继续下去就炸了,他开始问我fragment跟activity的区别,我说fragment在一个activity里可以显示多个,并且我们可以对每一个单独的fragment进行操作,然后fragment在显示上跟activity是很类似的。然后他干笑了一下,说那我在一个activity里用很多个view不一样吗,我就说可能fragment比较方便吧,他就说那具体方便在哪,我就卡壳了。然后问我为什么安卓官方推荐用recyleview,它和listview有什么区别或者说优势,我真的扯不出啥,只能重复listview用起来很卡,然后我喜欢用listview是因为item之间自带分割线而recyleview要实现这点比较难,但是recycleview可以拿来做下拉刷新,他对我的回答明显很不满意,要我说出它们代码构架上的区别,我又卡壳了,说了一下他们点击事件不一样,一个click一个touch,他笑了,说这个不是大区别吧。我心态血崩。最后还问我线程跟线程之间用surface怎么通信,我说我没了解过,我都是用handle去通信的。他干笑了一下,然后说面得也够久了,今天就到这里吧,拜拜,就挂了。。。挂了。。。。
  之前去网易和腾讯面试都是问到最后问我有什么问题要问的吗,结果阿里爸爸的面试官直接把我挂了,我真的好囧,半小时下来我一直有种直接挂电话的冲动:我知道我菜,但是我被虐得很难受QAQ
  唉、
2018.4.2


  金山霸面经历。
2018.4.3


  今晚做了腾讯的正式笔试题,选择题简直不要太难,一堆数据结构操作系统数据库(这三门课真的不要太重要),还有一丢丢计网编译原理,只有最后一道题考了安卓,哎。
  编程题是我想复杂了吧,或者说,是我能力不够吧, 看到这种都觉得难,思维发散不出去。
  只求腾讯爸爸给我一次面试机会,让我死了这条心吧。
2018.4.5


  一星期过去了,好快啊。这一星期都在干嘛呢。真的不知道,自从腾讯笔试被刷后(一万个失落)都过得浑浑噩噩的了,毕竟是能进腾讯的最后一根救命稻草了,没想到笔试直接就结束了,整个人都不知道继续做啥好了(我所接收到的信息一直都是,如果暑假没找到实习,那秋招,明年春招都会没有任何竞争力)。
  今天去参加了华为爸爸的面试,可以说是很社会了,真的刷新了我对面试的认识。原来还能这么高效迅速地面试的吗!我明明投的是安卓开发岗位,结果面试官跟我说我对安卓看来很感兴趣,但他们是做云计算的,很少涉及安卓,问我能接受吗?exo me?我投的岗位就是安卓,然后五个部门瞎选了两个,结果咋就面了非安卓的部门了???好吧,华为爸爸在我心中是个超级大厂(福利真的好),所以只要能进华为,妥妥的能接受啊!但是!为什么研发一面只问了我两个问题!一个JAVA垃圾回收机制(这个我会),另一个0x00123456怎么存储在内存里,这个我问是考察大端小端吗他嗯了一下,然后我还是没写上= =,他就叫我去综面了(不是说我一面过了,而是华为只要是个面试者都有一面跟综面)!我心态炸穿,就考察了两道内存题。
  这个一面的面试官真的很不NICE!我说我自己写的小程序,他马上质疑这个网上代码不是很多吗?
  行,不吐槽了!我想综面可能有很多技术对口的问题,来,等呀等,终于叫我名字了。我一过去,综面的面试官要NICE很多了,至少让我感觉没那么压抑了,人是很友好很友善面带微笑的那种。结果只问了我喜欢编程吗?编程中遇到的最大困难是什么?怎么解决的?反正我问清楚后,他说得更明白了,人遇到BUG的时候都是很焦灼很焦虑的,问我是怎么做的?我一通回答,什么编程很有成就感啊,听歌放松啊,跳出框架啊,当局者迷旁观者清啊,他点了点头,然后就没了,没了。
  我知道我菜,但是你们真的不再了解我其他方面的吗,比如计网比如JAVA比如安卓啊啊啊啊啊、
  白看了!
  最后再吐槽一句!都超过一周了,金山爸爸说好的一周给消息的,现在咋回事!
  可能真的没有消息就是最好的消息吧。
  因为网易爸爸终于来信息了!心寒呀(难道就是因为我不懂eventbus和RXJAVA吗!)。

  

  后天15号再做一下头条的笔试(摸奖也该摸到一次中的了吧ORZ),真的难受死。
2018.4.13


  今晚做了头条的第二次笔试题,感觉头条的笔试题样例真的好坑。第一道题过了50%我认了,但竟然不是因为超时,可能还有某些情况我没考虑到吧。第三题真的不谈,超级简单,结果只过了2%,网上很多人亦如是,严重怀疑是样例出错!第四题连输入是怎样的都没描述清楚,每次遇到这种输入描述是若干个正整数的我就想笑,鬼知道你是while(scanf()!=EOF)还是while(cin),能不能再说清楚点,两小时五道题还要让别人去猜这些跟题目无关的东西吗。
  就不谈,毕竟招的都是神仙。
2018.4.15


  话说华为的面试通过率好像真的很高?(有人说是个人都能去华为)。我一面就问了两道内存题,综面问了我一个找BUG的时候怎么调整心态。然后说我进了备胎池了。
  这里写图片描述
  行吧,反正能不能捞起来还是两说。然后头条的样例果然有问题,上次五道只过了一道80%,这次五道加起来50%+3%+2%也就55%,结果发短信来“诚邀”我选择面试时间了,真是害怕。
2018.4.18


  看到别人陆陆续续都拿到offer了,自己真的可谓一事无成,一无所成。这次春招的面试经历真的让我看到自己身上的太多不足了,我不懂框架不懂网络编程,别说安卓了,我对JAVA语言的熟悉程度也很差,系统学过的C/C++呢,抱歉,我对C++很多容器的函数都经常搞混,更别说什么虚函数纯虚函数继承多态封装了。不说编程了,说点别的基础?算法?数据库数据结构操作系统计网?我有好多好多东西要去懂,要去知道,然后这么小白的状态,怎么可能拿到哪个厂的offer呢,真是痴人说梦!
  周六虎牙笔试,周日头条面试,加油吧!
  就,就当练练,重在参与嘛。
2018.4.19


  今晚做了虎牙的笔试,选择题感觉比别的厂要简单多了(就是没那么刁钻但基础差的我做起来还是很有难度,因为数据库操作系统我很薄弱)。编程题也比其他的厂要简单得多,样例也不挑,是我做过的最简单的了(不过三道题还是有一道题只过了50%,后来才发现是被题目的输入样例误导了!应该多看输入描述的囧)
  最后,RNG牛逼!UZI牛逼!五杀牛逼!
2018.4.21


  四点的头条面试,愣是在面试直播间等到四点半面试官才进。

一面:
  一面面试官还是很NICE的,人很和蔼,很照顾我的感受的囧,一些答不上来的问题甚至会告诉我答案,人真的很好。
问题如下:
  项目,项目的一些细节实现,怎么做的这个项目,布局实现?
  有看过安卓的什么源码吗,我回答说没有,但是了解过一些底层的东西,比如事件分发机制,然后他就让我细讲一下事件分发机制吧。还有对应的三个函数,传递(dispatchTouchEvent),拦截(onInterceptTouchEvent),消费(onTouchEvent),然后问我如果触碰事情传递到子view后子view不消费会怎样,我就说往上传,传给viewGroup去消费。
  JAVA,垃圾回收机制是怎样的?内存泄漏?然后我还写了两个内存泄漏的例子,结果他不满意,说一个经典的内存泄漏例子是,在一个activity中创建一个handle,然后给它一个延时的消息,让它30秒后关掉这个activity,现在的话如果我在这个信息执行之前就手动把activity给finish掉了,会内存泄露,为什么,咋办。然后我答了半天才答到内存泄露是因为handle有activity的强引用,所以关掉这个活动内存还是没法回收。所以可以在activity被关掉之前将handle解绑,也就是置为null,这样就不带该activity的引用了。他说其实常规做法是用static,将handle变为静态类,同时实现handle这个内部静态类中持有Context的弱引用,这样就不会持有activity的强引用也就不会内存泄漏了。
  RXJAVA?我说响应式编程,基于观察者模式,代码可读性加强,随时控制代码的运行线程等,但是具体的一些关键字我就说不出来。
  hashmap的底层实现?我就说链表加数组,jdk1.8后是红黑树,然后哈希冲突就在冲突索引对应的链表尾端插入数据。他问怎么判断冲突是要插入还是要替换,这个我就不懂了。
  hashmap跟hashtable的区别?一个轻量级线程不安全,一个线程安全,一个允许key和value为空,一个不允许,除此之外都一样。线程安全是吧,那你知道synchronized这个同步块加在hashtable的哪里吗,这我哪知道= =
  arraymap?arraymap的内部实现是两个数组,一个int数组是存储对象数据对应下标,一个对象数组保存key和value,内部使用二分法对key进行排序,所以在添加、删除、查找数据的时候,都会使用二分法查找,只适合于小数据量操作,如果在数据量比较大的情况下,那么它的性能将退化。hashmap使用Serializable进行序列化,而arraymap则是使用Parcelable进行序列化。而在Android平台中,更推荐使用Parcelable实现序列化,虽然写法复杂,但是开销更小。
  onSaveInstanceState()的调用时机,我说不是固定的,可能在onPause后也可能在onStop后,但是肯定在onDestory之前,然后他问我如果按back键会调用吗,我不清楚,但是我的猜测是不会,因为back键是自己主动关闭,再打开就是直接oncreate,而onSaveInstanceState的使用场景应该是在活动内存被回收才去调用,再打开要先调用onRestart。
  做过前端是吧,http返回码说一下?200是成功,404是找不到,其他的都不知道啊饶了我吧= =
  打代码:顺序打印二叉树,之字形打印二叉树,还行。
  最后我问了他几个问题,他给了我很多建议,真的很NICE。
  
  头条效率真的快,没几分钟HR就打电话给我说一面通过了,7点前二面。
  行,结果我7点开始等,又是等了个半小时才等到面试官进场。

二面:
  二面面试官刚好是我朋友的一面面试官,戴眼镜,粉色衣服,上来问我认识XXX吗,我差点以为稳了!
  接下来一小时简直在遭罪!
  起手讲了一丢丢项目相关而已,感觉他完全看不上吧,就没细问。
  然后安卓handle机制中,说一下这五个:handle message messagequeue looper threadlocal的对应关系,最后一个threadlocal答不上来。
  三次握手?叫我画图,为什么要三次,如果两次呢?我说可能第一个请求报文超时重传后又到了,这样服务端就关不了了,他就说那我让服务端加一个计时器,如果规定时间内没再收到客户端的报文就关了不行吗,行,跟我对着干是吧,我还没辙,只能说TCP连接是全双工通信,所以必须要有一方请求一个确认请求,三次握手只是因为服务端把确认跟请求放在一次握手上了。
  final关键字?修饰变量(只有第一次初始化有效,相当于常量),修饰对象(对象的引用不能变,但是成员变量可以变。新建一个对象其实是在堆分配了一块内存,然后我们这个变量本身内存在栈那里,变量的值保存那块堆内存的引用地址,所以final修饰的对象不能再重新引用堆地址,即不能再new一个别的给它,但是它本身的成员变量是可以被修改的,即你这个对象必须用那块堆内存,但是那块堆内存存储的成员属性值可以变),修饰类(防继承),修饰方法(锁定方法,防止子类重写该方法),修饰参数(相当于常量)等都有什么作用?
  art和dalvik?一个4.4以上,一个4.4以下,在程序运行过程中Dalvik虚拟机不断地进行将字节码转换为机器码的工作。而Art引入了AOT预编译技术,在应用程序的安装过程中已经将所有的字节码编译为了机器码,在运行的时候直接调用。Art极大的提高了程序的运行效率,同时减少了手机的耗电量。
  service两种启动方式,区别?使用场景?一种start一种bind,一种可与活动通信一种不可以,bind可以拿来监视下载状态。
  监视下载状态是吧,那你说说下载的时候,怎么断点续传,我就说计算已下载的文件字节大小,然后计算要下载的文件大小,算出百分比,然后重下的时候可以跳过这个百分比乘以要下的文件总字节的字节数,从后面继续下。然后他要我从计算机网络,从HTTP和TCP的角度来谈谈怎么断点续传,告诉服务器我要从这里开始续传,我答不上来。
  前面至少有来有回,从这开始彻底爆炸,被降维打击了!
  开放题,有多少答多少,想看看你的理解,比如一个游戏我玩50分,你玩100分,这些日志上传到服务器的模块要怎么实现?或者你对思路是怎样的?我就说用网络框架,比如okhttp3,将数据序列化后post到服务器,服务器有对应的数据库来保存,可以根据这个服务器来对数据进行排序酱紫(答得真的差,因为我网络编程真的没接触过!一定要加强!无数面试下来都是因为网络编程!)
  okhttp是吧,知道它的实现机制吗?不知道!
  阻塞队列非阻塞队列知道吧?不知道!
  java.concurrent.*这个包有用过吗,里面什么类比较熟悉?不知道!比如future没用过吗?没有!
  class loader模型,类加载总该知道吧?不知道!
  做过前端是吧,安卓跟WEB的交互,一些WEB控件,像webview这些的实现呢?不知道!
  LRU,近期最少使用算法,这个是基础,你总该知道吧?
  不知道!不知道!不知道!
  我滚好吧!
  他问我你专业是学计算机的吗?
  奇耻大辱!
  然后我问一些关于网络框架学习的建议,他举了几个:volley uil okHTTP retrofit
  最后问我有什么比较熟悉的吗,我说生命周期?他笑了,说二面不会考那么浅的东西,我说策略模式,他说好,那如果策略模式用在你项目中要咋用blabla。。。。。

  头条是真的快,没多少分钟就告诉我二面挂了,HR小姐姐好像很怕打击我一样,说我二面表现得不是很顺利,所以只能到这里了,祝我能找到一份好的实习。
2018.4.22


  今天去虎牙面试了(应该是我这次春招之旅的最后一站了),在虎牙大厦面试的。
  在一楼签完到后,又去了15楼面试,一开始到了15楼发现没有任何指引标志,原来还得打HR电话告诉她我到了她出来接应(可是虎牙也没告诉我要这样做啊,我以为跟别的厂一样有专门的面试场的),然后进去后发现虎牙的工作氛围蛮压抑的,大家各做各的,板着脸,一句话都不讲。HR小姐姐人很好也很温柔,叫我们几个先填下个人信息表,但是感觉一些员工们对HR小姐姐并不是很尊重,因为在15楼硬是没找到位置可以等,只能去16楼等,然后轮到我面试了再下楼。
  都是好几个面试者直接在一张桌子旁坐,旁边矮一点的桌子在面试,有一个面试官讲话特别大声,对那个面试者一通乱怼,什么你synchronized拼不出来我不怪你,但是你括号区域你都搞错了,我觉得你真的就不适合安卓,你应该去别的岗位看看,很大声又很凶,一开始我坐在旁边等的时候听到这个吓了我一跳,面试了那么多个厂,很多厂的面试官都是很NICE的,就算知道你很菜不要你也犯不着这么凶你,甚至会告诉你一些你需要改进加强的地方,会给你很多建议。这个呢,我觉得他也不过就是占着自己多了几年相关的工作经验就沾沾自喜了吧,所谓后生可畏,做人呢,还是谦虚友好一点好。
  
一面:
  着重问了项目,还登了github看源码,问了很多实现,问了canvas的理解,让我手写canvas的使用。然后问我网络这块,会不会用JAVA的httpclient网络编程。我写了okhttp的底层原理图。
  一面面试官真的很NICE吧,看我写出来后觉得我学习能力不错,理解能力也行,理论够了,就是动手能力还得再练练,夸我很优秀(真的很对不起这个一面面试官,感觉辜负了他的期望了。)
  
  一面很顺利来到二面。
  
二面:
  因为学校大一大二有实训项目,在linux环境下做的,所以他问我对linux的熟悉程度,我就说也就熟练使用命令行操作吧。然后大一做的实训是一个命令行管理系统,他就问我现在重新做有什么改进地方,我说了保存文件会从原来的txt文本保存变为数据库或者服务云端保存,然后不再用命令行界面,改为可视化可交互界面,改用基于MFC的WIN32程序实现。然后他又问我如果用WEB或者安卓做,有什么改进的。
  生产着消费者问题,手写代码(没写出来,囧)
  http get和post的区别?我说了长度一个有限制一个没限制,然后一般一个用于获取一个用于上传,并且传递数据的方式也不一样,一个直接在url明文传输,且不会修改到服务器,一个通过header请求封装成再传,会修改服务器。
  网络http协议,抓过包吗,包里面都是啥,能详细说说吗。
  除了http还认不认识其他协议,我说了stmp、tcp/udp、ip、arp,然后他问我arp的使用场景,我说了输入一个URL,在找DNS服务器的时候,发送DNS请求报文就要经过默认网关路由器,但是此时只知道默认网关路由器的IP地址不知道其MAC地址,所以需要ARP协议。然后他问我对DNS的理解,问我一般要迭代几次才能找到IP地址。
  如果输入一个url,发现跳转的页面不是目的页面,而是一个别的页面,这其中发生了什么。我当时的解释是可能发现你的请求报文不合法,被中间路由器拦截了,路由器按照拦截的响应返回一个响应报文给你,我们解析这个报文后就得到这个界面的html啥的了。现在想想应该是传到目的服务器后,服务器发现不合法,然后返回一个对应的响应报文回来(我竟然会想到路由器来返回报文= =)
  问我求质数,用一个线程求和一百个线程一起求,哪个更快,废话,肯定后者快,然后问我是不是线程越多越好。我觉得线程越多处理起来越快,但是占用空间会越来越大,因为每个线程虽然共享主线程内存,但是都有自己独立的一块内存区域,而且,本来一个线程可能可以处理很多个质数,如果你用很多个线程的话,每个线程可能只处理一点数据,这样其实是一种浪费。
  数据库索引的理解?如果现在有学生姓名,ID,成绩,对成绩已经建立索引,那么怎么通过索引去做到对成绩降序排序,然后相同成绩的学生姓名升序排序?我想了半天,问他怎么做,他说这个问题就不可能实现,无解,狗吧= =

  二面还是很顺利的,小哥哥人很好,感觉略腼腆羞涩。
  
三面:
  JAVA多态的作用是啥?炸了。
  设计模式哪个比较熟悉,我说单例,然后手写了两个线程安全版单例模式的代码。然后问我DCL也就是双层if控制版本的单例模式为什么要双层if判断,我本来想得通的,但是被他一搞卡了一会,最后才又想通了,感觉他就是这样对我印象不太好吧。
  数图高分辨率是怎么实现的?
  死锁是怎样的情况,手写一个。蛮简单的。
  快排的思想是怎样的?蛮简单的,但是我很紧张,搞了半天。
到第三面结束然后等了一会,偷瞄HR小姐姐的表发现我刚才三面被打了个叉,心情瞬间不好了。
  
  HR小姐姐告诉我可以回去了,后面有四面(专业面)的话再通知,专业面能过才是HR面,看来是在备胎池了,有没有四面还得看后面的面试者脸色了。
  而且exo me?专业面???应该是问安卓的了吧。
  虎牙可以的= =安卓放最后问,感情刚才问我那些还是在考量学习能力吧。
  分这么多面也是没谁了(我坐个车一个多小时,又是地铁又是公交的,公交路线还不好走)。
2018.4.25


  以为自己春招之旅已经结束了,对所有还没通知的面试结果也不抱任何希望了,结果今天突然收到华为的offer通知,我也是,,,又惊喜又好无语,因为是最奇葩的一次面试经历,还是那句话,一面两道内存题,综面问我找BUG的时候怎么调整心态。我觉得自己啥能力都没展示出来(对比别的面试觉得自己稳了结果反而被刷),这个竟然让我过了,而且这实习待遇,大厂有钱就是任性!
  真心希望这样的大厂在社会上能越多越好!为贫困人口的就业问题提供保障!
  好了这次可能真的稳了?不过没想到还差临门一脚,华为需要填写实习申请表,申请表又需要所属院系或导师的签名或盖章,结果由于华为要求实习不低于两个月,中大暑假放得又比较晚,7.19开始放,我7.20实习到9.20都已经开学了,所以辅导员和副院长都不肯签名(说是学校没有硬性要求必须出去实习,或者签了就是鼓励翘课去实习,所以学校没立场签),愁死了囧。
  真是没生个好年代,换做去年,没改革的情况下(这里好想吐槽某个快递员),暑假哪有今年这么短(我们学校的小学期又没了),分分钟都能出去实习了。
  退一万步说,大四就那么一门课,大家都是外出实习,你又想学生留校不实习又想学生毕业后能顺利找工作,简直是又想马儿跑又不让马儿吃草,哪有这种事!
2018.5.3


  以为秋招结束了,结果感觉还处于尾声,看了那么多大佬进腾讯网易,或者金山虎牙(这两个,真是扎心了)。看到一个朋友在那纠结去虎牙还是华为,然后说秋招华为保底(扎心了),想着自己也就三月这一个月好好备战春招了,其他时间,打打游戏看看视频,做做计图细分,包括现在,数据挖掘实训有个比赛要打,血崩。我一个月没动过安卓了吧。
  然后这几天收到阿里的笔试通知,5月11号的,还有今晚七点的模拟笔试通知。不是已经结束了吗,怎么五月了还在招人,赶忙登上网站一看,原来我之前是提前批不通过,阿里自动帮我网申了一个,所以我现在变成网申状态了。但是今天终于把华为的实习申请表签名盖章了(果然人多力量大,几个人一起去找辅导员辅导员也不好意思赶你滚了),接下来等体检通知就行了吧,不出意外是能去成华为的吧。
  所以,这个阿里笔试就做做看好了,反正有之前电话面试的经历,没抱啥期望进。
2018.5.7


  体检完等了差不多一个星期,收到了华为的报到通知。
  接下来只要找好深圳的房租然后七月二十报到就开始实习了。
  不知道实习两个月会不会影响到自己的秋招。
  不过也算是春招之旅的一个差强人意的结局吧。
2018.5.24


  终于结束全部考试了,不用再有什么大作业什么团队项目什么期中期末展示什么实验报告了,松了一口气。
  我的大三下就这么结束了。大四也没有那些不省心的课程作业了。
  后天就去华为报道了,但是转眼间秋招也来了,我去华为要到九月下旬才能回校,这期间真的能对付得了秋招嘛。。
  最严重的是这几个月安卓都忘得差不多了,我怕秋招连一面都过不去了囧。。
  一事无成的本科生,好迷茫。
2018.7.17


评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值