The latest Android interview questions in 2016

http://mt.sohu.com/20160901/n467200487.shtml 

The interview questions and interview process of a company in April 2016.

  Static inner classes, inner classes, anonymous inner classes, why do inner classes hold references to outer classes? Is the reference held by this? Or something else?

  • Static inner class: inner class modified with static
  • Inner class: a class is defined inside a certain class, and the class embedded in the inner class is called the outer class
  • Anonymous inner class: inner class generated using new
  • Because the generation of the inner class depends on the outer class, the reference held is the class name. this

  What is the main difference between ArrayList and Vector?

  ArrayList was introduced in Java 1.2 and used to replace Vector

  Vector:

  • Thread synchronization
  • When the element in Vector exceeds its initial size, Vector will double its capacity

  ArrayList:

  • The threads are not synchronized, but the performance is good
  • When the elements in the ArrayList exceed its initial size, the ArrayList only increases in size by 50%

  java collection framework

  The execution order of try catch finally in Java

  Execute the code in try first, execute the code in catch, and finally execute the code in finally

  Can switch work on byte, long, and String?

  Switch supports the use of byte type, but does not support long type. String support was introduced in java1.7

  What is the life cycle of Activity and 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

  二面

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

  3,4月春招实习面试面经(今日头条,腾讯,阿里,360)

  阿里内推

  在三月的某一天,当我还沉浸在代码世界的时候,突然一声铃声响,拿起手机一看,杭州电话==大三春招第一次面试开始了。

  阿里一面

  问的问题不多,也就26分钟的样子

  • 你用过哪些集合类?==太多了,随便说了些
  • 那你说说ArrayList,LinkedList的区别(还是挺简单的,一般用过的都说会)。
  • 说说hashMap是怎样实现的(这个之前看过,顺利回答上。还回答了多线程的问题出现的原因,面试官表示很惊讶的样子)
  • 说说可重入锁
  • 说说view绘制过程和事件分发机制,我大概回答了下。然后面试官又问:onTouch和onTouchEvent是什么区别?如果我重写了ontouch和onClick,它们的调用顺序是怎样的?什么时候会不调用onClick?
  • handler的是怎样实现的?
  • 由于项目里面用到了picasso,所以最后问了下picasso实现原理。

  一面结束,最后面试官居然问我是不是第一次面试== 估计是帮紧张了。不过一面过程中面试官心情还不错,都是笑着问的。

  当天晚上接到二面,面试官太累了,约我第二天面试。

  阿里二面

  二面气氛一直不对,感觉面试官非常严肃,一来就感觉很有压力

  • 自我介绍
  • 操作系统里面线程和进程的区别(挺基础的) ,接着麻烦就来了;我说完大致区别后,他就问,你说进程里面线程是共享内存的,那么一个进程最大能占多少内存??(懵逼,这是什么意思?考的分页知识?)。然后这里我想了一下,说应该和硬件有关,他继续问,有什么关系?(应该和地址总线有关,当时没想起,他叫我再想想,要是你设计的系统,应该和什么有关,还是没答上==)。
  • 你项目中图片是怎么处理的?回答:picasso,顺便说了下picasso原理。然后又问:那么picasso里面有多少个线程来加载图片?要是网络不同,线程数目分别是多少?
  • 布局优化(这里开始说错了一点,然后面试官很生气的样子==,自我感觉就要挂了)
  • 项目中有哪些优化?

  最后果然挂了==(惨痛的经历,不过为后面打下了很好的基础==至少不 怎么紧张了)

  然后后面就没有面试了

  直到4月腾讯面试==

  腾讯面经

  腾讯是走的正常渠道,到成都现场面试

  一面

  面试场地是在一个宾馆里面,一对一面试,face to face还是有点紧张的

  • 自我介绍
  • java多态你了解多少??
  • 你说说重写和重载区别,然后拿了纸笔,手写一个能体现多态的例子
  • 说说java在运行main函数之前做了哪些工作?? 这个我居然从启动虚拟机——>加载类——>初始化类一直说到执行Main
  • 你对大尾小尾了解多少? 我反问:您说的是大小端么? 他说对,然后我正准备给他解释的时候,他又拿了一张纸:用java写一个判断大小尾的程序==
  • java静态方法能不能被重写? 答:不能。 问:为什么?
  • 为什么java静态方法不能调用普通方法?普通方法能调用静态方法?(其实还是实例引用问题)
  • java内存模型和GC机制

  其实腾讯面试官感觉都很nice,他称呼我 都用您。感觉怪怪的,而且礼仪非常好。最后面完后,我问我面试得怎样?他说你了解的知识还是挺宽的,然后问了我一句要不要去做游戏???当然要啊!

  然后就走了。然后就没有然后了,晚上查状态是不适合。

  霸面一面

  腾讯面试后,感觉不怎么死心,又跑去长沙霸面了,我一去,HR说移动端基本已经招满了,你可以把简历放在这儿,要是有面试机会的话,我会通知你。然后我心情失落地回去了。

  当我刚到住处,刚出电梯,HR就来电话了,叫我去面试==

  我那个开心啊,把平时20分钟的路程当成10分钟不对跑过去,直接一面。

  一面面试官也很nice,还惊讶我从重庆来==

  • Hashmap原理
  • hashcode和equals还有==的关系
  • 用hashmap实现hashset。。我之前看过的,忘记了。然后按照我的想法回答了。(最后面试官告诉了我该怎样实现==)
  • 内部类访问外部类的变量有什么问题?
  • android里面onStop和onPause本质区别。什么时候可以存数据?
  • 两个单链表寻找有没有交点,然后再寻找交点位置
  • android oom怎么解决
  • 还问了一些项目的问题

  其实中间还问了几个算法,忘记是什么了,后面想到了的话会加上的。

  二面

  二面面试官感觉很牛的样子,一直技术轰炸

  • 告诉我你所直到的所有关于java虚拟机的东西==我说了好久好久。还说了新生代大概什么时候会加入老年代==
  • binder机制
  • handler原理, Message,loop,messageQueue关系,handler内存泄露问题。
  • TCP三次握手,用纸画出来
  • 为什么TCP是可靠的,UDP早不可靠的?为什么UDP比TCP快?
  • 面试官看到了我的项目,然后问了我一个用到的框架的原理,还问了我里面的很多细节==估计是以为我直接看的别人的博客了解到的这些知识,还好我是自己看了源码==
  • 算法:几百万个QQ号 ,找出前100个消费最高的QQ号。直接小顶堆什么的
  • android四大组件 ,这里扩展了很多,毕竟非常熟悉,还说了很多坑,很多实现原理(比如activity start原理)
  • 还问了优缺点== (也有一些问题忘记了) 这次面试很久,忘记带水了,出来我直接喝完了一瓶怡宝==

  这交自我感觉答得不错,然后过了2个小时就收到HR面通知

  HR面

  • 自我介绍
  • 项目里面怎么解决安全问题的?好可怕,会技术的HR
  • 有没有女朋友?
  • 家在哪里
  • 有没有亲戚在腾讯?
  • 我问了下要是过了的话大概会在哪里实习?HR说在深圳==还问我有什么问题么?我说没有,我爸妈也在那边==然后他在我简历上面记了一下。
  • 为什么要学习android?

  HR面就10多分钟,很快,和我一起面试的还有几个学生,也都是10来分钟,然后HR叫我等结果

  然后等啊等,等到现在还没有结果==

  360面试

  360全程视频面试加写代码什么的

  一面

  • 写一个adapter,我后面忘记了getView的一个参数==一直在那里想,面试官问我是不是在编译器里面写==我说我在想怎么写。
  • hashmap原理==
  • java可重入锁
  • 排序算法和稳定性,快排什么时候情况最坏?
  • 一个获全国奖的项目问了我20分钟,特别是service不被杀死的方法==我说了4种才放过我,还问了我具体实现,特别是在JNI里面实现的时候==
  • 项目中界面适配,自定义过view没有?
  • NFC读卡,这个是我的项目,我说了具体实现,然后就放过我了
  • 我项目中用了google map 和定位,他问怎么定位的?居然问了我具体API==我还说了里面的坑,国产手机阉割了一部分的问题==

  一面大概1个半小时==头昏脑涨==然后面试官并不放过我,叫我等等。他去叫二面面试官

  二面

  • http协议了解多少,说说里面的协议头部有哪些字段?
  • https了解多少?为什么百度全部都用了https包括首页
  • 散列表的基础知识,里面也问了hashmap(可见hashmap重要性)
  • 项目问题,几个项目都问了,什么分工啊什么的
  • 问了我很多项目中开发的问题,还好基本都答出来了==二面基础知识基本没多少,都是项目问题

  二面接近一个半小时,还好在寝室面试,边面边喝水==二面脑袋都是糊的==

  二面完后,10分钟打电话通知一周内有HR面

  HR面

  HR面的时候,我正在火车上,HR说只有15分钟,我说当场面了,因为我那个时候正停在一个大站里面,要停半个小时

  • 自我介绍,问了我所有项目的分工问题和设计等问题,好几个项目,这里就花了接近20分钟,然后火车开走了,然后大家都知道,悲催了,没信号== 等到我有信号的时候,再给HR打电话约好第二天继续面。

  第二天

  • 继续项目分工==
  • 中兴实习情况?为什么最后没留下?(要读书啊)
  • 开发的一些规范
  • 投了XX公司和XX公司没有?为什么没投XX公司?哎,这里太年轻别坑了==
  • 怎么看待3Q大战==(大姐,这个我怎么来说呢?)
  • 问了我实习时间,希望实习的地点,希望做哪方面?
  • 你觉得你一面和二面哪一面成绩更好?每一面大概多少分
  • 优缺点==

  每个问题都问了很久,因为每个过后都接着往下问了的。整个HR面都1小时13分钟,累啊!!说好的15分钟呢

  然后N天后,收到360拒信。

  今日头条

  今日头条也是我唯一过的公司==一面还好,二面全程技术轰炸,HR面聊得挺好,虽然有点短

  今日头条我是内推的,N天后给我发邮件和电话约面试,本来是北京面试的,结果去不了,就电话面试了。

  两次技术面试也是接近2个小时 。一面面试官面完后,叫我去吃饭,过会儿继续面,天真的我以为已经二面了,然而并不是,这个时候面试官还是建议去北京面试,过的机会大些== 这个时候哪还有心情吃饭,一直等面试官的电话,结果继续面的时候直接写了一个代码就OK了,代码是在一个矩阵是查找有没有某个数,矩阵从左到右依次增大(忘记是增大还是减小了),从上到下也一样。由于电脑问题,我还是翻墙去写代码的==写代码的时候,由于网不稳定,还经常断==

  写完直接叫我等二面,过了会儿二面面试官马上来了电话

  二面面试官感觉很随和,从Java的用法问到了虚拟机,问到了操作系统,最后深入问到了一个编译原理。还问了一些c语言的东西。 还问了排序。 然后可能是因为我所有东西是自学的,面试官在问之前都问了我了解不,不了解就重新换一个。还问了一些图论最短路径问题(还好面试前不久做了一个比赛,华为的未来寻路,就是最短路径问题),这个答得还行,说了一些经典算法,还有一些只能算法,还有一些改进等。

  然后就是我项目中的问题,因为我用了rxjava,picasso,retrofit等开源项目,所以面试官问了我retrofit是如何处理注解的,我直接讲了源码,其过我博客里面也写过了这个,然后面试官可能发现我了解,就直接跳过了这个。然后问了我rxjava的东西,我结合博客看了部分源码,还问了rxjava里面用了大量的<? super T>这些,是什么意思。 过后问我了解github上的一些开源项目不,我说了解一些,然后就是butterknife了,然后我回答错了,以为是注解+反射。后面挂电话后,找了时间分析了源码,还真不是反射==butterknife分析在这里。

  今日头条感觉是我面试问题水平最高的,不再局限于基础知识,问了很多很深入的东西。感觉面试官都是根据我具体情况问的,随手丢出问题,直到我回答不上。总以为二面会挂。

  结果在某天中午接到了HR的电话,由于那个时候有事,重新约了时间== 当时都有HR面恐惧症了,因为前面两次HR面后都没消息了==

  HR面

  时间很短,几个问题而已,回答完就叫我等结果,说5月中旬会出结果。

Guess you like

Origin blog.csdn.net/kerwinJu/article/details/53559372