Android三非实习面筋:3轮面试,终与字节无缘,kotlinmap函数

  • DialogFragment 内存泄漏的定位过程
  • Leakcanary 的原理
  • Handler 介绍一下

  • Handler 内存泄漏说一下

  • 说一下设计模式

  • 手写单例

  • 算法:[112. 路径总和](javascript:void(0)😉

技术面二面(时长48分钟)

  • 自我介绍

  • 介绍一下项目

  • 软件大概样式是怎样

  • 首页是怎样做的

  • 首页下拉刷新是怎么做的?(说了滑动冲突的处理)
  • view 事件分发机制怎样
  • 事件好几层,怎么知道是由哪个控件处理(说了根据触摸的位置啥的,不太了解对不对)
  • 提到了责任链,内部链怎么分发的
  • 怎么判断哪个 view 处理(根据 return true/ false
  • 我们的事件有action_move,action_down,action_cancel,所有的事件都是一层一层往下分发吗(说了不一定,down 被拦截了,后续就收不到其他的事件了,然后提到了 action_cancel 的机制)
  • 我听到你首页用了 recyclerView ,那他一般怎么用?
  • 提到了 adapter
  • adapter 用来干嘛?
  • adapter 中有哪些是主要方法(说了 bindView ,这块不太记得了,说项目中用到的是 BRVAH )
  • 提到了 ListView
  • 为什么用 Rv 不用 Lv(说了1.强制实现 viewHolder (避免 findViewById ) 2.缓存机制)
  • Lv 二级缓存怎么判断这个 View 是他要的?(答了 postion,id
  • 然后问 id 指的是?(这里说忘记了)
  • 四级缓存是怎么找到 view 他要的?(说了 itemType )
  • 如果有相同的 itemType 怎么处理?(说了直接使用任意一个)
  • 如果四级缓存中找不到呢?(说了手动加载)
  • 手动加载是哪里来的?(说了从布局 xml 中定义的 itemtype 中拿的)
  • xml 怎么关联到 Rv (加载代码 inflate 的,不太了解)
  • 堆内存和栈内存区别

  • 5层网络协议包括哪些?

  • tcp 三次握手说一下

  • equals 和 == 区别

  • hashmap 实现原理(说了基本结构,put

  • get 是怎样实现的

智力题:

  • 5升桶,3升桶,水无限,你给我装出4升水

算法:[82. 删除排序链表中的重复元素 II](javascript:void(0)😉

技术面三面(时长37分钟)

  • 自我介绍

  • 架构设计主要是什么

  • 说一下你提到的依赖倒置

  • 除了依赖倒置还有什么重要的原则(刚说完单一职责就被打断)

  • MVP注意事项(说了内存泄漏的处理)

  • 内存泄漏的原理

  • 怎么判断内存不能被释放

  • 如何检测内存泄漏(说了线下用 LeakCanary,线上用 Memory profiler,然后自己扯到 DialogFragment 内存泄漏)

  • 打断,问 final 作用(说了修饰类,方法,变量,作用)

  • 非静态内部类引用外部类对象,需要 final 关键字吗?(说了应该用 static ,转为静态内部类,防止内存泄漏)

  • 多线程使用过吗

  • 说一下线程池的使用(刚说了构造方法实现)

  • 核心线程数什么作用(说了线程池的运行流程)

  • 核心线程数和最大线程数的设置(IO 密集型和 CPU 密集型,最大线程数的话,看系统支持的并发量)

  • 一个进程有多少个线程?(说了空间允许的范围内可以一直开辟)

  • 实际上是多少?(说了 2g 分配的空间)

  • 为什么是2g(说了之前看过,具体原理不太清楚)

  • 一个异步任务都开一个线程,还是多个任务开一个线程,你怎么决定开不开?(说了耗时的话就开,不太耗时不开,因为线程切换调度的话,存在一定的开销)

  • 线程安全怎么保证?

  • syncronized 内部原理是什么(说了修饰静态方法和非静态方法,代码块)

  • 修饰静态方法和非静态方法,能够并发执行吗?(可以,因为他们锁的对象不一样,说到了死锁)

  • 死锁的原理是什么?

  • 出现死锁怎么排查(这个不太会,说了用 jvm 中的 jstack )

  • 追问怎么用?(说没用过,只是知道)

  • 问我他的原理是什么?(不太知道,说看 traces.txt ,看堆栈)

  • 怎么安全停止一个线程(说了用 volatile 修饰变量,通过 while(变量),手动设置 true false )

  • volatile 原理是什么?(说了 java 内存模型啥的,修饰特性啥的)

  • 网络了解吗

  • tcp 优点(可靠性,面向连接)

  • 面向连接是什么?(说了计算机通信前建立连接)

  • 面向连接和非面向连接的本质区别是什么?(乱答,不知道)

  • 拥塞控制原理

  • http 与 udp 区别(说了层数)

  • http 请求流程

下面开始聊天了

  • 反问

HR 面

  • 你是周一面的三面,这几天关于面试你是怎么考虑的?

  • 周一面试完,周四周五才给你反馈,有考虑过面试不通过吗

我说周二就给我反馈了

  • 面试感受如何?

  • 你对面试做了什么准备

  • 客户端基础知识方面的话,你是怎么复习和准备的?

  • 有做一些刷题吗?

  • 字节算法这块,难度怎么样

  • 距离毕业还有一年半,你怎么规划这段时间

  • 你们是信息安全专业?应该不是计算机专业的同学吧

  • 你是什么时候考虑转开发

  • 你是大一就打算做开发?还是说进到工作室后,受到师兄的影响才转开发?

  • 介绍一下工作室

  • 配合方式是怎样的?

  • 说一下影响比较深的项目

  • 主要是客户端做?还是前端后台都有?

  • 这个项目你们老师也是怎样评价的?

  • 团队协作有没有遇到比较难推进的时候?

  • 你会主动去配合团队吗

  • 自己学习或者工作,怎么安排时间?

  • 工作的时间占你一天多少时间?

  • 任务你是怎么管理

  • 你的方法论挺好的,你提到的日程管理软件是哪个?

  • 旁边人用哪几个词语评价你

  • 你的优点缺点分别是什么?

  • 有遇到压力特别大的时候吗?

  • 你在学校成绩怎样

  • 你对自己的未来的规划

  • 什么时候能来?能来多久

  • 学校课程怎样

  • 反问

面试字节

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

需要做好哪些准备


通过整个面经就会知道,现在互联网校园招聘技术岗位面试所考察的内容是非常的标准化的

面试流程主要分为三个部分:

  • 字节跳动是非常重视应试同学编程能力的考察的,每轮技术面试都会考察2-3道算法题目。

  • 然后第一轮面试会着重考察候选者的Android基础知识,java基础,数据库,操作系统,计算机网络等。

  • 然后后续面试面试官会围绕着候选者的项目进行提问。

要想掌握正确的学习准备方法,最关键的就是要知道面试问的是什么!所有的考试面试其实都有重点可寻的,最忌讳盲目的瞎学准备!

同时这里还要额外说一下,推荐大家去多看面经,并不是让大家只看面经,死记硬背面经,投机取巧。这种只简单被面经的同学面试也是无法通过的。还是要踏踏实实的去多认真学习技术,多看优质的官方技术文档、书籍、博客。

知己知彼,百战百胜。

Android市场需求短期内提升自己

Android方向

关于Android的发展方向这里我归类了如下几类:

1、应用层开发,不限于各种产品,主要还是Android原生开发,主要是各种性能优化。

2、嵌入式开发,不限于各种开发板子,物联网,智能家居,车联网/车载

3、安全开发,不限于各种反逆向,反汇编,寻找安全漏洞

4、音视频开发,不限于直播、点播、音视频通话、音视频会议,短视频等

5、插件化、组件化、热修复开发,不限于自研和使用开源框架集成开发

6、系统开发(Android),不限于Rom维护和FrameWork层定制需求

7、图形图像开发,不限于OpenGL ES,EGL,GLSurfaceView,滤镜,美颜

8、小程序 / 快应用

按照Android 标准面试问题学习

目标明确,字节岗位职责:

如果你想去一家不错的公司,但是目前的硬实力又不到,我觉得还是有必要去努力一下的,技术能力的高低能决定你走多远,平台的高低,能决定你的高度。

如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。

如何提升技能


首先,对于没有学习方向,知识不体系的人,我把我工作几年整理的学习路线分享给大家,做一个借鉴作用,还不知道怎么学习的人可以直接照着我这个学习路线一个个的去学习,知识不体系的人可以参考下我整理路线的方式,总之希望能够帮到你们!

模块化学习资源

接下来是每个模块我整理出来的文档学习资料,帮助大家更细致化的学习。

《Android汇总复习资料—Java》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值