安卓 面试经验

Posted 韩亚飞_yue31313_韩梦飞沙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓 面试经验相关的知识,希望对你有一定的参考价值。

 韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha

#Alibaba

一面

  • 说一下你怎么学习安卓的?
  • 项目中遇到哪些问题,如何解决的?
  • android事件分发机制?
  • 三级缓存底层实现?
  • HashMap底层实现,hashCode如何对应bucket?
  • Java的垃圾回收机制,引用计数法两个对象互相引用如何解决?
  • 用过的开源框架的源码分析
  • Acticity的生命周期,Activity异常退出该如何处理?
  • tcp和udp的区别,tcp如何保证可靠的,丢包如何处理?

二面:

  • 标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号
  • 给定一个字符串,求第一个不重复的字符 abbcad -> c

======

#美团

一面

  • 自我介绍
  • 面向对象三大特性
  • Java虚拟机,垃圾回收
  • GSON
  • RxJava+Retrofit
  • 图片缓存,三级缓存
  • Android启动模式
  • 四大组件
  • Fragment生命周期,嵌套
  • AsyncTask机制
  • Handler机制

二面

  • 面试官写程序,看错误。
  • 面试官写程序让判断GC引用计数法循环引用会发生什么情况
  • Android进程间通信,Binder机制
  • Handler消息机制,postDelayed会造成线程阻塞吗?对内存有什么影响?
  • Debug和Release状态的不同
  • 实现stack 的pop和push接口 要求:
    • 1.用基本的数组实现
    • 2.考虑范型
    • 3.考虑下同步问题
    • 4.考虑扩容问题

=======

#豌豆荚三面

豌豆荚一面

  • 介绍一下你的项目
  • 网络框架的搭建
  • 图片加载框架的实现
  • 写个图片浏览器,说出你的思路
  • 上网站写代码,如下: 有一个容器类 ArrayList,保存整数类型的元素,现在要求编写一个帮助类,类内提供一个帮助函数,帮助函数的功能是删除 容器中<10的元素。

豌豆荚二面

  • Activity的启动模式

  • 事件分发机制

  • 写代码,LeetCode上股票利益最大化问题

  • 写代码,剑指offer上第一次只出现一次的字符

豌豆荚三面

  • 聊项目,聊大学做过的事
  • 写代码,反转字符串
  • 写代码,字符串中出现最多的字符。

 

========

#蜻蜓FM

一面

  • Toolbar的使用
  • 如何判断本地缓存的时候数据需要从网络端获取
  • 跨进程间通信
  • Handler消息机制
  • SharedPreference实现
  • 快速排序
  • 项目难点

==========

#新浪微博

一面

静态内部类、内部类、匿名内部类,为什么内部类会持有外部类的引用?持有的引用是this?还是其它?

静态内部类:使用static修饰的内部类
匿名内部类:使用new生成的内部类
因为内部类的产生依赖于外部类,持有的引用是类名.this。

ArrayList和Vector的主要区别是什么?

ArrayList在Java1.2引入,用于替换Vector

Vector:

线程同步
当Vector中的元素超过它的初始大小时,Vector会将它的容量翻倍

ArrayList:

线程不同步,但性能很好
当ArrayList中的元素超过它的初始大小时,ArrayList只增加50%的大小

Java集合类框架

Java中try catch finally的执行顺序

先执行try中代码发生异常执行catch中代码,最后一定会执行finally中代码

switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch支持使用byte类型,不支持long类型,String支持在java1.7引入

Activity和Fragment生命周期有哪些?

Activity——onCreate->onStart->onResume->onPause->onStop->onDestroy

Fragment——onAttach->onCreate->onCreateView->onActivityCreated->onStart->onResume->onPause->onStop->onDestroyView->onDestroy->onDetach

onInterceptTouchEvent()和onTouchEvent()的区别?

onInterceptTouchEvent()用于拦截触摸事件
onTouchEvent()用于处理触摸事件

RemoteView在哪些功能中使用

APPwidget和Notification中

SurfaceView和View的区别是什么?

SurfaceView中采用了双缓存技术,在单独的线程中更新界面
View在UI线程中更新界面

讲一下android中进程的优先级?

前台进程
可见进程
服务进程
后台进程
空进程

tips:静态类持有Activity引用会导致内存泄露

##二面

  • service生命周期,可以执行耗时操作吗?
  • JNI开发流程
  • Java线程池,线程同步
  • 自己设计一个图片加载框架
  • 自定义View相关方法
  • http ResponseCode
  • 插件化,动态加载
  • 性能优化,MAT
  • AsyncTask原理
  • 65k限制
  • Serializable和Parcelable
  • 文件和数据库哪个效率高
  • 断点续传
  • WebView和JS
  • 所使用的开源框架的实现原理,源码

=========

#网易杭研

###一面:

  • 自我介绍
  • Android中ClassLoader和java中有什么关系和区别?
  • 熟不熟jvm,说一下Jvm的自动内存管理?
  • 语言基础,String类可以被继承吗?为什么?
  • Final能修饰什么?(当时我说class、field、method,他说还有吗?然后又叫我不要在意,后来回想起,应该是问到我在参数里面要不要用final,接下来是因为匿名内部类)
  • Java中有内存泄露吗?(先说本质,再结合handler+匿名内部类)当时如何分析的?
  • 描述下Aidl?觉得aidl有什么缺陷(这里在这个问题上回答有欠缺)
  • 评价一下我,如果顺利进网易,需要往技术栈加什么点尽快投入业务?

###二面:

  • 用过什么开源,举一个例子?(volley)
  • Activity生命周期?情景:现在在一张act1点了新的act2,周期如何?
  • Act的launchMode,有没有结合项目用过(自己的程序锁和微信的PC端登陆对比,不过我现在又发现,应该大约估计可能是动态加载的一个缺陷,如果有找到相关信息,请务必跟我说。具体问题就是,当在PC端登录时,Android终端的微信会跳出,即使wechat的task不是在fore,当按下确认,返回的是wechat,而不是自己先前的app)
  • View的绘制原理,有没有用canvas自己画过ui?
  • 以后想做Android什么方向?(中间件+SDK)
  • 怎么看待前端和后端?
  • 如果学前端会如何学?
  • 优缺点?兴趣?
  • 想不想来杭州?
  • 评价一下我?往技术栈加什么?

###三面HR:

  • 为什么想来网易?
  • 有投其他公司吗?
  • 网易最吸引你的是什么?
  • 想来杭州吗?
  • 评价一下我?

=========

 

以上是关于安卓 面试经验的主要内容,如果未能解决你的问题,请参考以下文章

一位30K大佬的面试经验!安卓高级开发岗必问知识点,趁面试赶紧收藏

真香警告!安卓工程师跳槽经验分享,附小技巧

亲身经历的Android安卓面试经验分享:出身于双非学校,照样拿下头条Offer

java 代码片段【安卓】

程序员面试考察的5个方面

片段从一开始就没有显示 |安卓工作室