Android 面试之某些公司的面试题

作者: eddy_wiki | 来源:发表于2016-12-10 15:55 被阅读1171次

    本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-company.html

    本文从网络上收集了一些公司的 Android 面试题。

    Alibaba

    一面

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

    二面:

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

    新浪微博


    一面

    静态内部类、内部类、匿名内部类,为什么内部类会持有外部类的引用?持有的引用是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:

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

    美团


    一面

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

    二面

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

    蜻蜓FM


    一面

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

    豌豆荚三面


    豌豆荚一面

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

    豌豆荚二面

    • Activity的启动模式
    • 事件分发机制
    • 写代码,LeetCode上股票利益最大化问题
    • 写代码,剑指offer上第一次只出现一次的字符

    豌豆荚三面

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

    2016年4月某公司面试题及面试流程。

    静态内部类、内部类、匿名内部类,为什么内部类会持有外部类的引用?持有的引用是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基础——Service
    Android基础——IntentService
    Android开发指导——Service
    Android开发指导——绑定Service
    Android开发指导——进程间通信AIDL

    Android面试基础知识总结(一)

    Android面试——APP性能优化

    Android中Java和JavaScript交互
    WebView 远程代码执行漏洞浅析
    WebView中的Java与JavaScript提供【安全可靠】的多样互通方案

    二面

    • 所使用的开源框架的实现原理,源码
    • 没看过,被pass了
    • 去面试之前把用到的开源框架源码分析一定要看看啊

    codekk:开源框架源码解析

    相关文章

      网友评论

      • Tomkk:很棒,赞一个!

      本文标题:Android 面试之某些公司的面试题

      本文链接:https://www.haomeiwen.com/subject/wacumttx.html