前言:
最近了解到朋友因为学习起来感觉有些乱,没方向感,他特意
挑了难一点的大厂找找找虐,他说这样才有意义嘛!
还跟我说什么怀着进大厂的梦想,先去试试水。
结果嘛
就被虐得体无完肤,于是我就问他都有些什么内容,然后做了以下的总结。(下列都以第一人称叙述)
涉及的企业有:阿里、快手、转转、用友(较简单,不做展示)。还有一个企业不记得名称了(纯业务的面试,没印象)
快手
![2020非科班生的Android秋招,金九银十求职经历 (快手,拼多多等12家大厂,附简历重点技能书写方式)_第1张图片](http://img.e-com-net.com/image/info8/bebed0a6adfb4f3c88671237b84a1cab.jpg)
先说下笔试情况,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
- 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.之字形遍历二叉树
拼多多
![2020非科班生的Android秋招,金九银十求职经历 (快手,拼多多等12家大厂,附简历重点技能书写方式)_第2张图片](http://img.e-com-net.com/image/info8/b2d70077faa94b39828e08737281374a.jpg)
笔试
基于给定接口实现ImageLoader框架
一面
- 自我介绍
- 静态变量和实例变量的区别
- 重写equals()方法的注意事项;两个list是怎么判断是否相等的?
- HashTable和HashMap的区别;是否允许键为null
- 数据同步的方法;synchronized可以在对象上加锁吗?在方法上加锁是加在哪个对象上?
- 进程间读写文件的同步方式
- 了解哪些加密算法;AES和RSA的区别
- HTTP响应码
- 进程优先级;Android进程优先级
- 如何使一个Service处于另一个进程中;进程的服务保活
- Touch事件分发机制
- 如何实现客户端长连接的?重试策略是怎样的?如何监控HTTP请求的?
- 提问问题
二面
- 三道题选两道http://collabedit.com/cx9uv
- 大顶堆和栈的概念
- 最短路径算法概念
- 如何缓存HTTP
HR面
也不能算是HR面吧,简单聊了聊。
- 项目介绍;担任的角色
- 家庭情况;期望薪资
- 在哪里实习?实习的时候拿到过哪些offer
- 介绍了拼多多的待遇以及工作制度
三面
- 自我介绍;项目问了些
- 如果安卓是单线程的,那么如何处理界面刷新和网络操作两个模块
- 算法题。
新美大
一面
- 自我介绍
- 为什么选用OkHttp?为什么用MVP模式?
- ImageLoader的三级缓存怎么做的;OkHttp的磁盘缓存怎么做的?
- 如何删除文章的广告之类的?有遇到不符合的情况吗?
- HashMap是线程安全的吗?HashMap线程不安全会造成什么现象?如何使HashMap变为线程安全的?
- Java的内存模型;GC;遇到过OOM情况吗?有什么可以检测内存泄露的工具
- 文章列表用的什么什么控件?ListView如何优化?RecyclerView用过吗?和ListView的区别
- 应用中有几个Activity;ViewPager嵌套Fragment怎么用,遇到过什么坑没?
- 自定义View时自定义属性该怎么做?
- 印象最深刻的项目,或难点
二面
- 自我介绍
- 界面展示用的ListView还是RecyclerView?如何做文章的过滤的?如果改成别的网站需要怎么做?
- ImageLoader怎么实现的?内存缓存使用的是什么策略?
- 项目中TCP+HTTP+JSON是怎么回事?
- android ui自动化测试
- 实习的项目
- 对Kotlin的了解;准备让用Kotlin写一个界面的
- 给了一个布局,让说说看怎么编写
- 了解啥新技术
- 问问题
三面
- 自我介绍
- 为什么选用AES加密?
- 全程没聊技术,介绍他所在部门做的事情,问我感不感兴趣,我也提问了一些问题,聊得比较投机
- 手上的offer
HR面
问了一些基本信息,手上offer情况,对薪资的要求。由于三面全程没问技术,心里比较虚。
![2020非科班生的Android秋招,金九银十求职经历 (快手,拼多多等12家大厂,附简历重点技能书写方式)_第3张图片](http://img.e-com-net.com/image/info8/b7c5bbc4c504498a9df4e23a425842ae.jpg)
附上简历中配置的个人技能
- 熟悉常用设计模式:策略、责任链、单例、装饰者、代理、观察者、适配器、外观/门面
- 研究过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知识点、常见算法题汇总。)
![2020非科班生的Android秋招,金九银十求职经历 (快手,拼多多等12家大厂,附简历重点技能书写方式)_第4张图片](http://img.e-com-net.com/image/info8/83a6da11124744918f30a2cbb2fee47c.jpg)
本文在开源项目:【GitHub 】中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
如果需要PDF版本可以在群文件夹里,自行领取!
-
或者在群文件夹中里,自行下载直达领取链接:【https://links.jianshu.com/go?to=https%3A%2F%2Fjq.qq.com%2F%3F_wv%3D1027%26k%3DBRZhpPkt】