面试Android开发经验谈

面试官宁愿要刚刚毕业工作1年的我小弟,也不要工作5年的我,年薪2

2021-03-17  本文已影响0人  程序员面试秘籍

前言

真后悔在小公司待了3年,一直原地踏步,想要进大厂升级,想要一份月薪25K的工作也不过分吧...

如今想跳进大厂却发现难上加难,好多面试题根本答不上。大厂的面试通知倒是拿了不少,但扛过二面三面的却很少。

真没想到,现在的面试题有这么刁钻了!上来就让人手动模拟高并发场景秒杀下单超卖Bug,面试官那种严肃又疑惑的表情让我不禁怀疑自己,这么“简单”的题都不会?

第一次面以徒弟头条25K,我失败告终!!!

失败的面试经历

一面(1hour):

1、自我介绍
2、项目介绍,技术点相关。
3、C++和Java区别,GC
C++不熟,只能说内存管理相关的问题,所以就问到了GC。然后说分代收集算法。老年代担保、元数据区从JVM移到了本地内存这些。
4、线程相关,Runnable和Thread的区别。
Thread类是实现了Runnable接口,平时使用起来可以使用start方法调用。线程池基本传Runnable对象,平时也是线程池用的多,所以具体相关不太熟。
5、线程池
6、synchronized,volatile
7、继承相关,多重继承和接口
8、网络编程
9、UPD,TCP区别
10、最大的优点
11、最大的缺点
12、算法,二叉树中序遍历,真是早起毁一天,竟然没撕出来,我真想给自己两耳光。不过面试官给我总结的很好,说要利用栈的特性,先进后出,所以要保证左子树先进根结点再进,这么思考之后就顺利了很多。

二面(40mins):

1、介绍一下项目
2、Android四大组件,详细讲一下。
3、Launcher启动APP的全过程。
icon存入口Activity信息
AMS通知Launcher去pause。
Launcher通知AMS已经pause
AMS检查进程是否已经启动,如果不启动则启动进程。并且调用ActivityThread的main方法。
启动之后通知AMS已经启动
然后AMS将入口Activity信息传递给APP。
APP启动对应入口Activity,并且创建对应上下文并且调用Activity的onCreate方法。
4、进程间通信,AIDL,Binder。扯了一会说进程间通信平时怎么做的,就说了一下AIDL相关的Demo实现什么的。说到了自己程序里面有拉起微信的这个功能(也就是广播)。
5、设计模式了解吗,平时用过哪些设计模式。
6、算法题:输入一个数n,代表有n个点,一个二维数组,二维数组代表相连的点,要求输出连通起来的点。
如果n=6,数组假设是{{1,2},{2,3},{4,5}},则输出{{1,2,3},{4,5},{6}}


成功OPPO面试

一面:

  1. 有Android相关的经验吗
  2. 说一下Java集合类
  3. set和list有什么共同点吗,或者都实现了什么功能继承了什么类
  4. 集合类通常有线程安全问题,有什么解决办法
  5. HashMap实现原理
  6. 红黑树实现原理,有什么作用
  7. 说一说线程池你的理解
  8. 线程同步的问题有什么解决方案
  9. 安卓问题,内存只有一个G,导入一个很大的图片
  10. JVM内存回收机制
  11. 安卓内存泄漏有哪些场景 (答成了内存溢出 OOM,说要具体的场景,不要笼统)
  12. 你的项目有什么亮点,有什么难点,是怎么解决的
  13. 你同学怎么评价的或者说你自己怎么评价你这个项目
  14. 代码题(剑指offer,两数相加不用加法,两次提示都没写出来)
  15. 还有什么问题。(如果能过后面还有几轮面试,两轮,一轮技术和hr,提示下次可能还会有很多android问题,然后进来不想做Android可以转岗

二面

1.你目前做过最满意的项目
2.是Nodejs项目,为什么要用Node.js
3.Nodejs和java语言区别
4.说说你的java项目(以下几个问题都是关于我的项目
5.为什么要加salt
6.怎么生成的salt
7.怎么验证密码
8.salt存在哪里、存在数据库里有什么弊端。
9.加了salt有什么好处 ,md5不是动态的么(下面开始不是项目问题)
10.有没有安卓的经验
11.Java你了解哪一块
12.Java线程的安全性访问
13.乐观锁和悲观锁
14 sychroinzed是悲观锁吗
15.是可重入锁吗
16.你有使用过可重入锁吗
17.一般你的项目是用什么方法线程同步
18.等待另一个线程用什么方法(答了Thread.join())
19.如果另外一个线程是线程池呢(答了wait和notify方法)
20.具体怎么用
21.你的学习方式

  1. 博客有看哪些
  2. github看过哪些开源项目(被问结巴了 捂脸)
    24.你有什么优势,不足
    25.实习的工作是做什么
    26.遇到问题怎么解决

hr面:

比较平常的问题,成绩排名,形容自己,团队合作的案例,做过有挑战性的事,为什么要来oppo之类的

字节跳动

一面:


二面:

尾声

无论什么技术,热不热门,学习都是不可间断的,乘着年轻磨砺技术才是王道,不然在程序员这个后浪一波比一波汹涌的职业里混,你想吃青春饭都吃不了几年。不过,想提升是一回事,如何有效提升就是另一回事了。我工作近十年,也带过不少实习生、应届生,很多年轻人真的很努力在学,加班加点工作卖力,但也就是差点火候,还是方法不对。

什么是方法,方法就是跟着身边大佬走,多问多学,如果身边没有大佬也可以加入我们学习资源交流群,全国的小伙伴天南地北,可以一起聊天学习,更加了解这个行业情况,趋势与走向。


自行领取直达链接:【点击获取

需要相关知识点可以查看我的【GitHub】,对于已经掌握的可以忽略以节省时间。

上一篇 下一篇

猜你喜欢

热点阅读