Androiod面试-按照公司分类的面试题

这些面试问题在上一篇Android面试记录中都有写到,这里主要是按照公司来写的。还不太会用markdown的编辑器,排版不太好看 (˘•ω•˘)
另外,可以看看《Android开发探索》,这本书挺好的!(^▽ ^)

牛咖

产品类型:社交
备注:有点像QQ的扩列

  • String 和equal的考查
String s1 = "abc";
String s2 = new String("abc");
Log.e("MainActivity", "s1==abc:" + (s1 == "abc"));//true
Log.e("MainActivity", "s1==s2:" + (s1 == s2));//false
Log.e("MainActivity", "s1==s2:" + (s2 == "abc"));//false

Integer与in,包装类的考查

int x1=10;
Integer x2=1;
x1==x2;//true
//Integer和int比较会自动解包装

Integer  a=new Integer(100);
Integer b =new Integer(100);
a==b;//false
//Integer的对象,都是new 出来的,在堆中的地址不一样,比较为false

Integer a=new Integer(100);
Integer b=100;
a==b;//false
//a是new出来的,指向堆中的变量,b直接赋值,指向常量池中的地址,两个在内存中的地址不一样

Integer a=100;
Integer b=100;
a==b;//true
//如果为128为false,在常量池中,int类型只缓存了-128~127.其他的数值会重新创建。
  • Java内存泄漏本质
  • Java内存分配
  • JVM 机制
  • GC操作(可达性分析)
  • startActivity同步还是异步,为什么?
  • 四种启动模式,问题:A中开启B,for循环10次,B是singleTop,产生几个B的实例
  • startActivityForResult开启四种不同启动模式的Activity,对于onActivityResult方法有什么影响
  • view的绘制流程,背景绘制在什么方法(drawBackground)
// Step 1, draw the background, if needed
drawBackground(canvas)
// Step 3, draw the content
onDraw(canvas);
// Step 4, draw the children
dispatchDraw(canvas);
// Step 6, draw decorations (foreground, scrollbars)
onDrawForeground(canvas);
  • Activity启动过程
  • EventBus原理
  • RxJava2原理

德国勃林格殷格翰

产品类型:医药类,从无到有开发
备注:团队里的其他成员也是新招的,对英语要求比较高

  • Java的引用类型有哪些?
  • Java JVM虚拟机和内存分配?
  • GC操作原理
  • 观察者模式
  • 手写单例模式
  • EventBus原理,设计模式是什么?如何通过注解实现消息的发送
  • 遇到过哪些内存泄露,是如何解决的?
  • 自定义View的测量模式
  • 事件分发原理
  • Retrofit原理
  • OkHttp原理
  • 日常开发中是如何协作沟通的?
  • 有没有什么博客或者开源项目?

一面含有英文的自我介绍和简单项目介绍
二面是德国的同事面试,他们是java的,所以会侧重问这些


金宝贝

产品类型:金宝贝早教
备注:包含音视频的教育、产品玩具购买,涉及支付

笔试
  • Handler原理
  • 事件分发
  • http和https的区别
  • Activity生命周期
面试
  • 内存泄漏是如何处理的?
  • 面向对象特性与三大特点
  • xml,json,protobuf优缺点(因为我的项目中有用到protobuf)
  • 开源框架原理(RxJava,EventBus)
  • 如何优化WebView加载H5的速度
  • 分模块开发
  • mvp,mvvm

埃森哲(中国)

客户需求产品:蓝牙音箱

一面:电话面试
  • Activity启动过程
  • Laucher给AMS发送,ASM给APP 发送消息是如何通信
  • 进程间哪些通信方式
  • bundle可以有哪些数据类型
  • 为什么要进行序列化才能传输
  • 除了serializable和parcelable,还有其他的序列化方式么
  • service的生命周期
  • 如何HomeAPP后,Service可以继续下载文件
  • Handler中的Loop的死循环为什么不会阻塞UI线程
  • 子线程不能更新UI么
  • 自定义View?onMeasure中的测量模式有哪些?
  • EventBus原理
  • RxJava如何进行线程调度
  • RxJava用了哪些方法
  • 解决过哪些内存泄漏
  • 过度绘制是如何优化的
  • 内存如何优化
  • Java集合有哪些?有那些集合是线程安全的?
  • LinkedList和ArrayList区别?如何在链表中插入一个数据
  • 二叉树的遍历
前序:根,左,右
中序:左,根,右
后序:左,右,根
  • 有哪些排序算法
  • 如何转换一个数组
  • 抽象类和接口有什么区别(jdk1.9中,接口可以有抽象方法)
  • 有哪些设计模式?建造者模式Builder和抽象工厂模式有什么区别?
  • 线程池的原理是什么?构造函数中的参数分别有什么作用?
  • 开发中遇到的问题,如何解决的?
  • 平常如何学习?有没有博客,开源项目
二面:电话会议面试
  • Binder原理
  • Retrofit原理(动态代理)
  • RxJava原理
  • Activity的启动模式
  • 点击app图标开始的一个启动原理
  • 内存泄漏优化,过度绘制优化
  • 有没有了解Android新特性
  • Mvvm优缺点
  • kotlin接触过嘛?
  • 日常如何学习
三面:现场客户面试

这个公司做的是项目外包,甲方乙方的这种,所以有个客户面试,也是技术面试。不过后来三面时间要根据客户来安排,我入职时间到了,我就去入职其他公司了。


银生宝电子支付

产品类型:支付类

笔试
  • 什么是注解?什么是元注解?元注解的作用是什么?
  • 动画有哪些类型,属性动画的原理?
  • ANR是什么,如何定位和解决
  • Retrofit原理
  • ButterKnife原理
面试
  • Handler原理?
  • Builder模式和普通方法比较有什么好处?
  • LeakCanary原理?
  • Handler原理?
  • Activity开启两个Handler,如何保证Handler发送的消息不会被其他的Handler消息接收?
  • 不同线程的Hanlder发送的消息,Looper是如何确定是哪个线程?
  • handler的sendMessage和post有什么区别?
  • IdleHandler
  • ThreadLocal
  • RxJava的方法,flatMap,先获取token,再去请求数据
  • 本地广播和全局广播的优缺点
  • 加密与解密
  • http和https有什么区别?ca证书包含什么内容
  • mvvm,kotlin
  • 如何从master拉取develop分支,git命令是什么

京东

(顺序记不清楚了,大概就是这些问题了)

电话面试
  • 原生调用H5的几种方式
  • H5调用原生的几种方式
  • Handler原理?子线程A,如何给子线程B发送消息(使用带有Looper的构造方法)
  • HashMap原理?HashMap是线程安全的么?
  • HashMap和HashTable有什么区别?
  • ArrayList和LinkedList区别?LinkedList是如何插入一个数据的?LinkedList为什么查询慢?
  • RxJava原理,线程调度是如何实现的?
  • 事件分发原理?长按事件是如何分发的?如果一个View,focus为false或者enable为false的两种情况,是怎么分发的?
  • xml与json解析优缺点
现场面试
笔试
  • 一张答题纸,上面好像是10道题,前6题比较简单,想不起来了
  • 第7道选择题是数列,具体是,1,2,5,29().括号内的数字从四个选项中选择;
    注:第三个数字是前两个数字的平方之和!选择866!
  • 第8题是算法题:手写二分法排序;
  • 第9题是自定义view:写一个用于九宫格的解锁屏的功能的view
  • 第10题?忘记了…关于什么数据筛选的…
面试
  • hashpMap的原理?为什么初始容量值是16?
  • 接触过哪些动画?属性动画的原理?动画的插值器和估值器?
  • linkedList和arrayList有什么区别?在末尾插入数据的效率是一样的么?
  • 自定义view的测量模式有哪些?
  • 设计模式用过哪些?写出单例模式

时间间隔太久,想不起来了,最后一个面试的公司…(T ^ T)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值