2020非科班生的Android秋招,金九银十求职经历 (快手,拼多多等12家大厂,附简历重点技能书写方式)

前言:

最近了解到朋友因为学习起来感觉有些乱,没方向感,他特意
挑了难一点的大厂找找找虐,他说这样才有意义嘛!

还跟我说什么怀着进大厂的梦想,先去试试水。

结果嘛
就被虐得体无完肤,于是我就问他都有些什么内容,然后做了以下的总结。(下列都以第一人称叙述)

涉及的企业有:阿里、快手、转转、用友(较简单,不做展示)。还有一个企业不记得名称了(纯业务的面试,没印象)


快手

先说下笔试情况,2.8/4。

面试的话是 下午2点到4点面试连着两面,然后hr最后说结果会在几天之内反馈。

这个面经不全,因为现在有的问题已经想不起来了,尤其是没答好的问题可能更记不住了hhhhh

4.11面试,4.13拿offer

一面(一小时)

Android问题:

1.详细的讲下View的绘制过程

2.使用过哪些动画,属性动画和View动画的区别在哪里,View动画的原理(ValueAnimator和ObjectAnimator的区别)

3.Activity的生命周期,启动模式,区别在哪,讲下各自的应用场景。

4.Fragment的生命周期

5.Service的生命周期

6.进程与线程的区别

7.在项目中使用过多线程么

Java问题:

1.HashMap(因为我写过相关文章,这个问题答了蛮长的一段时间)

2.java gc算法

3.常用的线程池,以及线程池的各个属性的含义

4.四种引用类型的区别(可以结合内存泄漏去聊)

代码题

1.手写二分查找

二面(一小时)

Android问题:

1.事件分发详细的讲(三个核心函数以及整体过程),详细的讲下dispatchTouchEvent,子View如何阻止父View拦截事件,Action_Cancel什么时候会发生,一个应用场景:两个并排Button,点击button之后,又移动到另一个button,但不点击滑动到外面会经过发生哪些事件。

2.OkHttp

  1. Message.obtain()有什么好处,为什么不使用new Message(防止多次Gc)

4.LinearLayout和RelativeLayout的区别,优缺点,层级嵌套等等等

5.ConstrantLayout讲讲特点

6.性能优化在项目中做过哪些

7.读过哪些Android的源码

8.BroadCastReceiver的源码看过么?

9.FrameLayout了解么?

代码题:

1.场景题,实现一个ActionMangager,其中包括 registerAction(String action, IActionCallback callback), unregisterAction(IActionCallback callback); notifyChange(string action)三个方法。类似于BroadCastReceiver,一个action可能对应多个Callback,notifyChange中要回调action对应的所有Callback对象的方法。同时还问了怎么满足线程安全的问题等等,会根据代码继续问问题。

2.之字形遍历二叉树

拼多多

笔试

基于给定接口实现ImageLoader框架

一面

  1. 自我介绍
  2. 静态变量和实例变量的区别
  3. 重写equals()方法的注意事项;两个list是怎么判断是否相等的?
  4. HashTable和HashMap的区别;是否允许键为null
  5. 数据同步的方法;synchronized可以在对象上加锁吗?在方法上加锁是加在哪个对象上?
  6. 进程间读写文件的同步方式
  7. 了解哪些加密算法;AES和RSA的区别
  8. HTTP响应码
  9. 进程优先级;Android进程优先级
  10. 如何使一个Service处于另一个进程中;进程的服务保活
  11. Touch事件分发机制
  12. 如何实现客户端长连接的?重试策略是怎样的?如何监控HTTP请求的?
  13. 提问问题

二面

  1. 三道题选两道http://collabedit.com/cx9uv
  2. 大顶堆和栈的概念
  3. 最短路径算法概念
  4. 如何缓存HTTP

HR面

也不能算是HR面吧,简单聊了聊。

  1. 项目介绍;担任的角色
  2. 家庭情况;期望薪资
  3. 在哪里实习?实习的时候拿到过哪些offer
  4. 介绍了拼多多的待遇以及工作制度

三面

  1. 自我介绍;项目问了些
  2. 如果安卓是单线程的,那么如何处理界面刷新和网络操作两个模块
  3. 算法题

新美大

一面

  1. 自我介绍
  2. 为什么选用OkHttp?为什么用MVP模式?
  3. ImageLoader的三级缓存怎么做的;OkHttp的磁盘缓存怎么做的?
  4. 如何删除文章的广告之类的?有遇到不符合的情况吗?
  5. HashMap是线程安全的吗?HashMap线程不安全会造成什么现象?如何使HashMap变为线程安全的?
  6. Java的内存模型;GC;遇到过OOM情况吗?有什么可以检测内存泄露的工具
  7. 文章列表用的什么什么控件?ListView如何优化?RecyclerView用过吗?和ListView的区别
  8. 应用中有几个Activity;ViewPager嵌套Fragment怎么用,遇到过什么坑没?
  9. 自定义View时自定义属性该怎么做?
  10. 印象最深刻的项目,或难点

二面

  1. 自我介绍
  2. 界面展示用的ListView还是RecyclerView?如何做文章的过滤的?如果改成别的网站需要怎么做?
  3. ImageLoader怎么实现的?内存缓存使用的是什么策略?
  4. 项目中TCP+HTTP+JSON是怎么回事?
  5. android ui自动化测试
  6. 实习的项目
  7. 对Kotlin的了解;准备让用Kotlin写一个界面的
  8. 给了一个布局,让说说看怎么编写
  9. 了解啥新技术
  10. 问问题

三面

  1. 自我介绍
  2. 为什么选用AES加密?
  3. 全程没聊技术,介绍他所在部门做的事情,问我感不感兴趣,我也提问了一些问题,聊得比较投机
  4. 手上的offer

HR面

问了一些基本信息,手上offer情况,对薪资的要求。由于三面全程没问技术,心里比较虚。


附上简历中配置的个人技能

  • 熟悉常用设计模式:策略、责任链、单例、装饰者、代理、观察者、适配器、外观/门面
  • 研究过Mybatis3源码,熟悉sqlsession执行流程、熟悉一级缓存、二级缓存原理
  • 研究过Spring5注解方式启动Spring的源码,熟悉Springbean生命周期、SpringAOP底层原理、Spring事务底层原理、Spring循环依赖解决的原理
  • 研究过SpringMVC5的源码,可手动仿真SpringMVC框架
  • 研究过Springboot2的启动源码,熟悉Springboot核心设计理念,可自定义starter组件,熟悉@SpringBootApplication底层原理
  • 熟悉Java8新特性
  • 熟悉常用集合(ArrayList、LinkedList、HashMap1.7、HashMap1.8、ConcurrentHashMap1.7、ConcurrentHashMap1.8)原理,并研究过源码
  • 可手写二叉树、了解红黑树旋转变色规则
  • 熟悉Nginx负载均衡、动静分离、反向代理、静态文件压缩原理
  • 了解网站跨域问题及其相应解决方案
  • 了解Nginx+Lvs+Keep-alive实现高可用的原理
  • 熟悉多线程(通讯、锁,CAS机制)、Java内存模型,可手写Java线程池
  • 熟悉Java内存结构,了解常用垃圾回收算法、垃圾回收器以及内存溢出和内存泄漏等问题
  • 熟悉Zookeeper使用,了解Zookeeper工作原理,分布式锁原理、分布式集群原理、选举策略、数据最终一致性原理。
  • 了解MySQL中的事务隔离级别和常见的锁(共享、排它、意向、记录、间隙、临键、行锁、表锁等)
  • 研究过Tomcat8底层源码,可在微服务架构下优化Tomcat8
  • 熟悉Netty框架,了解BIO、NIO、TCP/UDP原理,了解OSI七层网络模型,了解请求粘包、拆包原因和解决方案,了解序列化机制。
  • 熟悉SpringCloud框架,了解服务治理、服务注册发现、服务降级、熔断、隔离等Hystrix服务保护机制的原理,熟悉Ribbon负载均衡、Config配置中心、Zuul网关、Swagger接口调试
  • 熟悉Redis淘汰策略、事务、持久化机制、分布式锁、单线程高效、自动过期、与MySQL保持一致性等原理
  • 熟悉Redis穿透、击穿、雪崩、集群、主从复制、哨兵选举、cluster分片、动态扩容、缩容、布隆过滤器等原理
  • 熟悉常用消息队列RabbitMQ/Kafka/RocketMQ,了解其解决分布式事务,消息幂等,顺序消费,事务消息以及常用工作方式等原理

最后

如果说成功有捷径,那么一定是不断的积累与坚持,二本市场营销毕业,一点基础没有的情况下选择了自己喜欢的事情,前期遭遇了多少困难只有自己知道!还好结局没有那么不堪,努力是不会被辜负的,加油!

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

本文在开源项目:【GitHub 】中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

如果需要PDF版本可以在群文件夹里,自行领取!

猜你喜欢

转载自blog.csdn.net/Android725/article/details/108987307