京东、快手及其他小公司Android面试(2020)

京东

一面

Java
list:
map: hash算法
LruCache实现和源码:
线程池分类和使用:

view
view绘制
事件分发
自定义View流程

工作中遇到的问题
技术难点和其他问题

性能优化
卡顿原理
性能优化工具

二面

1、事件分发
2、View绘制,自定义linearlayout
3、HyBrid性能优化
4、JSBridge原理

三面

1、服务器资源更新,客户端如何立刻显示

阿拉丁

无技术面

快手

快手1- 6面
1、自定义layout被子view平分,怎么写?放在scrollview里,怎么优化
2、手写单利,如何获取两个实例对象,你有什么方法
3 、10001000的图片放到400400的imageview中被压缩了多少倍,要是你考虑效率怎么压缩
4、写了两个sync锁,在高并发的情况下如何优化
5、问了下jvm层创建线程,问了下new thread占用多少内存
6、32 位cpu最多能创建多少线程
7、问了fcm得到达率,如何上报的
8、问了jpg的rgb,png的rgb
9、flutter状态管理,路由管理。没回答上来
10、handler.postsdelay和post什么区别,如何保证消息对列在正常时间执行到这个消息,quene属于谁?
11、说一下推流
12、说一下tcp和udp的区别,分别有什么特点
13、哪里最有成就感,哪里值得分享。这个问了四五遍
14、snynal信号和主线程quene有什么关系
15、byte取值范围多少 2的7次幂减1怎么来的
16、怎么检测的内存泄漏,回答了使用profiel和mat,问怎么分析,然后问了为什么不用leakcancary
17、hashmsp resize
算法
100w个数据,找到等于10的元素,大概需要查找几次
两个班级找到最小的身高差
括号匹配算法

小药药

1,组件化和模块化,
2,模块之间通信,
3,混合的方式和我用的jsbridge 的原理
4,okhttp拦截器链原理和设计模式,
5,性能优化,viewstub和merge标签区别,
6,linearlayout和relativelayout区别,
7,constructionlayout,
8,databing 原理,为啥你说他性能低,又问为啥解析xml性能低,
9,手写单例

乐信圣文

1,手写代码,一个简易计算器,构建者模式,
2,eventbus源码……
3,ibinder机制,
4,自定义view,一个圆点击颜色渐变,细到调canvas哪个方法,
5.集合中问了set……哪些子类有啥特点,
6,两个线程怎么死锁…
7,栈溢出,
8,n阶乘的递归实现以及他的数值越界……

易鉴科技

地图分层、分级、分城市,图片预览

跟谁学

1、事件传递
2、view绘制流程
3、优化,内存泄露监测
4、OKhttp源码、volley,eventbus源码
5、valite原理







我的视频课

下面是我录制的一些视频课,欢迎大家围观~

《Android性能优化参考》

本课程包含了Android中的App启动优化、UI优化、内存优化、图片优化、耗电量等常见的性能优化场景,通过学习此课程,你将对整个Android性能优化体系有清晰的认识。

性能优化作为Android高级开发的必备技能,也是大厂面试必考的题目,是体现一个人技术深度最好的试金石。

《面试之排序算法》

排序算法是我们面试被问到最多的基础算法,本课程详细介绍了七种排序算法,包括插入排序、选择排序、冒泡排序、谢尔排序、快速排序、堆积排序和二路并归排序。每种算法都详细介绍了核心思想、详细步骤、时间复杂度和代码实现,希望帮助大家深入理解排序算法,搞定面试!

《Android混合App开发实战》

本课程为Android HyBrid App开发实战课程,由浅入深,从三种App的历史和特点开始,介绍了Android WebView的使用、Java和JS交互的原生方式、著名的WebView安全漏洞、JSBridge的原理和使用,最后通过一个网上商城的实战综合全部内容,让同学们掌握并深入理解Android HyBrid App开发。

《AI导论》

介绍人工智能AI的诞生历史和到现在为止的不同发展阶段;介绍了AI领域中常见的名词概念和其关系,包括机器学习、深度学习、神经网络结构搜索 NAS、生成对抗网络 GAN等;最后对AI发展做出展望。
本课程属于导论课程,旨在帮助同学们从宏观层面把握AI,建立AI的知识体系。

《Java注解精讲》

本课程详细介绍了Java中的注解机制,包括注解的定义和分类,注解的使用和自定义,注解的源码和架构分析;
本课程语言简单凝练,视频短小精悍,让你一次彻底搞懂Java注解!

《Java反射精讲》

反射是Java中重要的也是较难理解的内容;
本课程从反射的定义、作用、原理和使用出发,全方位帮你彻底搞定反射;

本书浅显易懂的介绍了JAVA线程相关的设计模式,通过程序范例和UML图示来一一解说,书中代码的重要部分加了标注以使读者更加容易理解,再加上图文并茂,对于初学者还是程序设计高手来说,这都是一本学习和认识JAVA设计模式的一本好书。(注意,本资源附带书中源代码可供参考) 多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍Java线程相关的设计模式概念,并且通过实际的Java程序范例和 UML图示来一一解说,书中在代码的重要部分加上标注使读者更加容易解读,再配合众多的说明图解,无论对于初学者还是程序设计高手来说,这都是一本学习和认识设计模式非常难得的好书。 书中包含Java线程的介绍导读、12个重要的线程设计模式和全书总结以及丰富的附录内容。第一章相关线程设计模式的介绍,都举一反三使读者学习更有效。最后附上练习问题,让读者可以温故而知新,能快速地吸收书中的精华,书中最后附上练习问题解答,方便读者学习验证。 目录 漫谈UML UML 类图 类和层次结构的关系 接口与实现 聚合 访问控制 类间的关联性 顺序图 处理流程和对象间的协调 时序图 Introduction 1 Java语言的线程 Java语言的线程 何谓线程 明为追踪处理流程,实则追踪线程 单线程程序 多线程程序 Thread类的run方法和start方法 线程的启动 线程的启动(1)——利用Thread类的子类 线程的启动(2)——利用Runnable接口 线程的暂时停止 线程的共享互斥 synchronized方法 synchronized阻挡 线程的协调 wait set——线程的休息室 wait方法——把线程放入wait set notify方法——从wait set拿出线程 notifyAll方法——从wait set拿出所有线程 wait、notify、notifyAll是Object类的方法 线程的状态移转 跟线程有关的其他话题 重点回顾 练习问题 Introduction 2 多线程程序的评量标准 多线程程序的评量标准 安全性——不损坏对象 生存性——进行必要的处理 复用性——可再利用类 性能——能快速、大量进行处理 评量标准的总结 重点回顾 练习问题 第1章 Single Threaded Execution——能通过这座桥的,只有一个人 第2章 Immutable——想破坏它也没办法 第3章 Guarded Suspension——要等到我准备好喔 第4章 Balking——不需要的话,就算了吧 第5章 Producer-Consumer——我来做,你来用 第6章 Read-Write Lock——大家想看就看吧,不过看的时候不能写喔 第7章 read-Per-Message——这个工作交给你了 第8章 Worker Thread——等到工作来,来了就工作 第9章 Future——先给您这张提货单 第10章 Two-Phase Termination——快把玩具收拾好,去睡觉吧 第11章 Thread-Specific Storage——每个线程的保管箱 第12章 Active Object——接受异步消息的主动对象 总结 多线程程序设计的模式语言 附录A 练习问题的解答 附录B Java的内存模型 附录C Java线程的优先级 附录D 线程相关的主要API 附录E 参考文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不死鸟JGC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值