当前位置:   article > 正文

android工作入职需求,2020应届毕业生,Android春招总结,已入职小米(附面试题

假设你是一名应届毕业生,想要一份android相关的工作,字数200字,需要讲诉你的

前言

先说说自己的基本情况吧,湖南某双非一本本科,学的是移动开发, 有一两个独立完成的个人项目/demo(Android),没有获奖经历,没有实习经历,计算机基础的深度一般,但广度凑合(就是平常上课都有听过,但都不认真),很少刷题。

春招开始的时候,投了十几份简历也没有回应,十分的懊恼,但是我沉下心来,用了半个月的时间复习和准备,终于在半个月后拿到了小米的offer。

今天就分享一下我在春招期间都做了什么和我的面经情况。

准备

在春招刚开始投了十几份简历没回应后,对我自身进行一个分析,寻找最适合我的准备方法。

自我分析

优势

个人项目均是自己认真做完的,可以仔细聊聊,在项目上可以拓展各种知识点。

在实验室付出了很多心血,对整套架构了如指掌,可以仔细聊聊实验室的经历和收获。

劣势

学历不够,非211.985本科或研究生。

没有实习经历,无法了解到真实的业务场景。

刷题不够,手撕算法能力不够强。

计算机基础深度不足,容易被问死。

项目难度不足,没有太多亮点。

缺少重量级奖项(acm之类的)。

分析

由于劣势1,2,6,我的简历很难写的出彩,也很难走内推通道。

由于劣势3,4,5,在面试时缺少亮点和深度,无法让面试官留下太深的印象。

由于优势1,2,我在聊个人经历时有很多可以说的内容,可以充分展现我的业务能力和开发基础

需要做的事

提高刷题量,增强算法能力。

在Android方面加深基础,多看面经。

持续的修改简历,突出亮点。

增加获奖经历。

复习科班基础。

过程

为了提高算法能力,我刷完《剑指offer》,了解面试官出题的套路;还在LeetCode上AC了20多道Hard难度的题,在牛客上AC20多道低通过率编程题,加强手撕代码的能力。

2ba9543b710d10dc281f1596ed4513b5.png

为了提高计算机基础,我复习了以下科目

计算机网络

操作系统

计算机组成原理

编译原理

在网络上搜集相关面经,主要是BAT TMD NJ的Android岗位的面经,在看面经的时候我会尝试回答每个问题,看看自身掌握如何,不会的及时找到答案并弄懂。

01be50cdd425309c621d817503c841fb.png

需要资料的朋友可以私信我【资料】或者或者

由于对内推不抱希望,我在牛客网上刷大量的笔试题。希望通过提高笔试能力,能尽量拿到参加面试的机会。

面经

均只有技术面

字节跳动

一面(30misn)

handler原理

怎么解决handler内存泄露

四大引用

接口和抽象类区别

对MVP的理解

retrofit源码

java面向对象三大特性

java异常机制

算法:反转链表

二面 (40misn)

asynctask原理

ANR原因

ANR排查

怎么解决加载大图OOM的问题

https过程,对称加密,非对称加密

TCP和UDP区别

手撕代码:单例模式DCL,面试官问我有没有更优的,

腾讯

一面 (1h)

自我介绍

笔试题1:删除无序链表中的重复结点(能否优化)

笔试题2:先说一下二叉树的有哪些遍历方法。写一个二叉树前序遍历的非递归形式。

讲一下Java的内存。

创建一个字符串对象,这个对象分配在哪里?

String str = “123” + “456”;会创建几个对象。

问了操作系统的问题,没学过,所以也忘了问了什么。

数据存储有学过吗?数据库和文件保存有什么区别?

Activity有哪些启动模式?

有什么要问的?

二面 (1h)

上一轮面试做了哪2道面试题?

会哪些编程语言?

想做哪个方向?为什么?Android

对Android比较感兴趣,都学了些什么?我答了活动的启动模式、Handler。

ListView源代码有看过吗?没看过。

想一下ListView应该是怎么实现的?链表?

ListView滑动页面如何实现页面的复用?队列?

给你2个线程,如何产生死锁?为什么会产生死锁?

外存有一定量的数据,需要读取到内存中处理,但是内存的大小是不知道的,要求如何能够读取尽量少的次数,才能处理完全部的数据?

唯品会(一面就挂了)

一面:(1h)

udp和tcp的区别

能介绍一下Android的四大组件吗?

二分法是怎么样的

线程池(词)是什么?如何打印两个线程同时完成的消息?

你了解android的View

你了解有哪些动画吗?

ListView和RecycleView的区别?

udp和tcp的区别?http是基于tcp还是udp

项目怎么实现刷新实时天气情况这个功能的

项目怎么实现显示本地mp3文件

http和https的区别吗?你的项目你是用http还是https?

你的学习经历是怎么样的?

如果遇到你和同事出现了矛盾你会怎么办

如果经理提出的需求分析你很难实现你该怎么办?

你学习过哪一些源代码

如果debug出现问题你会如何去发现问题

有没有试过抓包?

java多线程是怎么实现的?

斗鱼

一面(40misn)

线程同步(五个线程如何顺序执行)

GC

内部类特点

四大引用方式

新建线程的方式(三个)

arraylist和linkedlist

线程池(使用,种类,参数)

hashmap

自定义VIew

性能优化(布局和代码),

sp、dp和px的区别(适配问题)

handler(基本原理,ThreadLocal原理和使用)

四大组件(问了生命周期和特点和基本使用)

TCP和UDP

HTTP建立过程

二面(50misn)

View绘制

多进程(如何多进程,为什么要多进程,有什么优缺点)

架构(问了MVC,MVP,MVVM这些,还问了设计模式相关)

学习过程

项目构思过程,项目搭建过程

Messager,ThreadLocal

接口和抽象类(为什么要有这两个区别,在项目中如何使用)

Rxtrofit

Rxjava

责任链模式

观察者模式

小米

一面(1h)

个人介绍

聊项目,展示项目,问问题

介绍binder,如何控制binder的访问

i++是否线程安全,如何保证线程安全,volatile是否可以

hashmap实现,是否线程安全,如果多线程进行操作会发生什么

如何使一个线程进入destroy态

编程 判断某个数的各位平方和是否收敛,意思就是最后变成1 收敛,最后循环到之前的一个数 不收敛

对未来的发展规划

拿到哪些offer了,如何给你发offer怎么选择

死锁的发生条件

JNI

是否下载过android源码

二面 (30misn)

自我介绍

编程 二叉树两节点的最近公共父结点

学过哪些专业课,根据专业课问了些问题

数据库ACID是什么,原子性的体现

虚存是什么

虚电路与存储转发的区别

TCP协议可以在虚电路上运行么

路由选择协议有哪些

ps.面试官应该不是做安卓的

加面 (1h)

自我介绍

四大组件

service使用场景

后台service和后台线程的区别,service如何实现跨进程通信

描述一下AIDL和binder工作原理

binder如何做到数据的跨进程传递

内核空间与用户空间的区别

进程与线程的区别

线程的调度由谁实现

听说过协程么

死锁的发生情景

handler的工作原理,handler对象在哪个线程存活

如何实现blockingqueue

synchronized和Lock的区别

volatile的实现原理

介绍http

http如何保持状态

cookie的工作原理,存放位置,cookie可以被修改么,如何验证cookie有效未被篡改

http相对于https有什么问题

介绍https工作原理

MVP与MVC区别

聊实验室项目

工作意愿

算法 最长递增非连续子序列长度

编程 逆时针打印递增矩阵

最后

由于文章篇幅原因,我只把面试题列了出来,详细的答案我整理成了PDF文档,这份文档还包括了我复习的各种资料和面试真题解析,需要的朋友可以私信我【资料】或者

aba674c8db299d116104f62b4fdca6dd.png

a222ceebfd1cd6dfe56a366799bac093.png

c53f29585839d61f9b43286af51062d9.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/311620
推荐阅读
相关标签
  

闽ICP备14008679号