面试如作战,我们看战争影视剧的时候,经常看到这些剧作往往主要聚焦于作战过程、战场战略,对战前准备给的篇幅往往很少。实际上,战前准备也是关键的一环,没有充足的粮草、车马、兵器的准备。别说赢得战争,投入战斗都不可能。

这个道理在面试中也是一样。如果不做面试准备,就犹如不磨刀枪上战场,胜负更多则靠运气。尤其是对于刚刚毕业的大学生来说,成功的面试,往往基于充分的准备。充足的准备,有可能做到十发九中,面试一家成一家。

那么面试之前,我们需要做哪些准备,才能做到胸有成竹呢?这个话题将从对于简历的准备、对面试公司的了解等方面来说。今天在这里给大家之后的面试提出3个走心的面试建议,希望对大家有帮助,也祝大家面试顺利~

经常会有朋友私聊我帮他看下简历,发现了一些共性问题;除此以外,我偶尔面试一些同学,有一些个人的感受分享给大家。

面试题目

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岁就干一份可以养老的工作,技术我也会努力去提升,愿我和大家都会有一个更好的未来。

最后

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。

技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;

我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 PDF(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。

Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言

高级UI与自定义view;
自定义view,Android开发的基本功。

性能调优;
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。

NDK开发;
未来的方向,高薪必会。

前沿技术;
组件化,热升级,热修复,框架设计

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,腾讯文档可见;《Android架构视频+学习笔记》

当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。

不出半年,你就能看出变化!

s.qq.com/doc/DSkNLaERkbnFoS0ZF)**

当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。

不出半年,你就能看出变化!

最详细的解释小白也能听懂,实战篇相关推荐

  1. android动画原理,最详细的解释小白也能听懂,值得收藏!

    面试如作战,我们看战争影视剧的时候,经常看到这些剧作往往主要聚焦于作战过程.战场战略,对战前准备给的篇幅往往很少.实际上,战前准备也是关键的一环,没有充足的粮草.车马.兵器的准备.别说赢得战争,投入战 ...

  2. 最详细的解释小白也能听懂,终于搞明白了

    前言 2021春季社招正在火热招聘当中,很多人都挂在了技术知识掌握还是不够广,不够深,甚至连一些基础的问题都只能模模糊糊的回答出来.你说,这跳槽不是跳了个寂寞吗? 其实,根本原因还是对于自己的技术栈掌 ...

  3. 基于java洗浴中心管理系统_Java小白也能听懂的线程池的内部原理:老王的洗浴中心...

    餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:"经常听你说线程池,到底线程池到底是个什么原理?"我楞了一下,心里想女朋友今天是怎么了,怎么突 ...

  4. 小白 也能听懂Hadoop到底是什么!

    缘起 呆在舒适区太久了,最近学了下大数据,正好总结,复习一下,用一个小故事来带出Hadoop是什么 ! 有一天 ,我的朋友 小扬 在看 某老师的视频 ,他刚开始看的时候,查找没什么难度,一般利用搜索引 ...

  5. Unity的AB包超详细+代码注释,小白一看就懂!

    基本概念 1.什么是资源? 在Unity的Assets目录下的文件,在游戏运行过程中需要从此目录加载并显示到屏幕上的都可以称之为Unity资源,例如模型.材质.纹理.预制体.脚本.声音.数据文档.动画 ...

  6. (小白都能听懂)的海明校验码

    海明码:一种利用奇偶性来检错和纠错的校验方法. 海明码=校验码+题目给出的原数据 步入主题: 1.确定校验码的位数k 2.确定校验码以及原数据的位置 3.求校验码 4.校验 本文使用偶校验方式来校验数 ...

  7. 内存函数:memcpy、memmove、memcmp、memset(超详细讲解,小白一看就懂!!!!)

    目录 一.前言 二.内存操作函数

  8. 兄弟,用大白话告诉你小白都能看懂的Hadoop架构原理

    本文来自:石杉的架构笔记 目录 一.前奏 二.HDFS的NameNode架构原理 一.前奏 Hadoop是目前大数据领域最主流的一套技术体系,包含了多种技术. 包括HDFS(分布式文件系统),YARN ...

  9. 随机森林的特征 是放回抽样么_机器学习超详细实践攻略(10):随机森林算法详解及小白都能看懂的调参指南...

    一.什么是随机森林 前面我们已经介绍了决策树的基本原理和使用.但是决策树有一个很大的缺陷:因为决策树会非常细致地划分样本,如果决策树分得太多细致,会导致其在训练集上出现过拟合,而如果决策树粗略地划分样 ...

最新文章

  1. 华为正式宣布鸿蒙,空欢喜一场?华为正式宣布,鸿蒙系统用作他用
  2. jfinal框架中前端向后台传输数据
  3. HTML+CSS+JS面试题(附带答案)
  4. 故宫也在拼多多卖货!故宫文具将入驻拼多多开设旗舰店!
  5. Android studio的错误记录
  6. 太阳能充电调节代码_储能管理系统对于充电站的作用
  7. f018计算机辅助设计是什么,F018,丝印Marking-电子元件丝印查询
  8. 如何删除绿盾加密软件
  9. 关于Spring面试问答
  10. 从远景论坛上学到的完美激活NERO8 NERO9的经验
  11. 软件工程测试题(雨课堂学堂在线选择题汇总)
  12. STM32F03学习笔记之ADC配置(含DMA配置)
  13. 洋葱架构简介——分离是为了更好的结合
  14. HelloWorld是如何在计算机里跑起来的?
  15. 直播当道,平台该如何做好内容审核规避风险?
  16. 七、 标准型、基、基解、基可行解、可行基
  17. 关于ROS(Robot OS 机器人操作系统)
  18. 在线作图|如何在线画一张精美的和弦图
  19. 转载(生物分析专题网站(很全、实用))
  20. 毕设课设基于Android的校园订餐APP开发(附源码)

热门文章

  1. 华为机试真题 C++ 实现【堆栈中的剩余数字】
  2. 成都IT公司公积金缴纳情况曝光!
  3. 华为android9手机短信不提醒设置,华为Mate 9微信消息不提醒怎么办?华为Mate9微信不提醒的解决方法...
  4. 怎么快速将服务器上的文件取回本地,迅雷离线文件取回本地的图文步骤
  5. 想从iOS转移到Android阵营?这里有你必须要知道的
  6. 使用Cpolar+Cloudreve搭建强大的PHP云盘系统
  7. 平安壹钱包CTO李志辉:“众愚成智”的管理之道
  8. 基于Java+SpringBoot+vue+element实现前后端分离玩具商城系统
  9. 自然语言处理概述(Natural Language Process)
  10. LoRa和LoRaWAN有什么区别?工业网关能用吗?