Android 2017-2018面试题详解

面试题(固定答案不解答,自己可以找到)

顺序是根据记忆排的,没有优先级之分,都是重点。

1.Activity的启动过程(不要回答生命周期) 
http://blog.csdn.net/luoshengyang/article/details/6689748

2.Activity的启动模式以及使用场景 
(1)manifest设置,(2)startActivity flag 
http://blog.csdn.net/CodeEmperor/article/details/50481726 
此处延伸:栈(First In Last Out)与队列(First In First Out)的区别

3.Service的两种启动方式 
(1)startService(),(2)bindService() 
http://www.jianshu.com/p/2fb6eb14fdec

4.Broadcast注册方式与区别 
(1)静态注册(minifest),(2)动态注册 
http://www.jianshu.com/p/ea5e233d9f43 
此处延伸:什么情况下用动态注册

5.HttpClient与HttpUrlConnection的区别 
http://blog.csdn.net/guolin_blog/article/details/12452307 
此处延伸:Volley里用的哪种请求方式(2.3前HttpClient,2.3后HttpUrlConnection)

6.http与https的区别 
http://blog.csdn.net/whatday/article/details/38147103 
此处延伸:https的实现原理

7.手写算法(选择冒泡必须要会) 
http://www.jianshu.com/p/ae97c3ceea8d

8.进程保活(不死进程) 
http://www.jianshu.com/p/63aafe3c12af 
此处延伸:进程的优先级是什么(下面这篇文章,都有说) 
https://segmentfault.com/a/1190000006251859

9.进程间通信的方式 
(1)AIDL,(2)广播,(3)Messenger 
AIDL : https://www.jianshu.com/p/a8e43ad5d7d2 
https://www.jianshu.com/p/0cca211df63c 
Messenger : http://blog.csdn.net/lmj623565791/article/details/47017485 
此处延伸:简述Binder , http://blog.csdn.net/luoshengyang/article/details/6618363/

10.加载大图 
PS:有家小公司(规模写假的,给骗过去了),直接把项目给我看,让我说实现原理。。 
最让我无语的一次面试,就一个点问的我底裤都快穿了,就差帮他们写代码了。。 
http://blog.csdn.net/lmj623565791/article/details/49300989

11.三级缓存(各大图片框架都可以扯到这上面来) 
(1)内存缓存,(2)本地缓存,(3)网络 
内存:http://blog.csdn.net/guolin_blog/article/details/9526203 
本地:http://blog.csdn.net/guolin_blog/article/details/28863651

12.MVP框架(必问) 
http://blog.csdn.net/lmj623565791/article/details/46596109 
此处延伸:手写mvp例子,与mvc之间的区别,mvp的优势

13.讲解一下Context 
http://blog.csdn.net/lmj623565791/article/details/40481055

14.JNI 
http://www.jianshu.com/p/aba734d5b5cd 
此处延伸:项目中使用JNI的地方,如:核心逻辑,密钥,加密逻辑

15.java虚拟机和Dalvik虚拟机的区别 
http://www.jianshu.com/p/923aebd31b65

16.线程sleep和wait有什么区别 
http://blog.csdn.net/liuzhenwen/article/details/4202967

17.View,ViewGroup事件分发 
http://blog.csdn.net/guolin_blog/article/details/9097463 
http://blog.csdn.net/guolin_blog/article/details/9153747

18.保存Activity状态 
onSaveInstanceState() 
http://blog.csdn.net/yuzhiboyi/article/details/7677026

19.WebView与js交互(调用哪些API) 
http://blog.csdn.net/cappuccinolau/article/details/8262821/

20.内存泄露检测,内存性能优化 
http://blog.csdn.net/guolin_blog/article/details/42238627 
这篇文章有四篇,很详细。 
此处延伸: 
(1)内存溢出(OOM)和内存泄露(对象无法被回收)的区别。 
(2)引起内存泄露的原因

21.布局优化 
http://blog.csdn.net/guolin_blog/article/details/43376527

22.自定义view和动画 
以下两个讲解都讲得很透彻,这部分面试官多数不会问很深,要么就给你一个效果让你讲原理。 
(1)http://www.gcssloop.com/customview/CustomViewIndex 
(2)http://blog.csdn.net/yanbober/article/details/50577855

23.设计模式(单例,工厂,观察者。作用,使用场景) 
一般说自己会的就ok,不要只记得名字就一轮嘴说出来,不然有你好受。 
http://blog.csdn.net/jason0539/article/details/23297037/ 
此处延伸:Double Check的写法被要求写出来。

24.String,Stringbuffer,Stringbuilder 区别 
http://blog.csdn.net/kingzone_2008/article/details/9220691

25.开源框架,为什么使用,与别的有什么区别 
这个问题基本必问。在自己简历上写什么框架,他就会问什么。 
如:Volley,面试官会问我Volley的实现原理,与okhttp和retrofit的区别。 
开源框架很多,我就选几个多数公司都会用的出来(框架都是针对业务和性能,所以不一定出名的框架就有人用) 
网络请求:Volley,okhttp,retrofit 
异步:RxJava,AsyncTask 
图片处理:Picasso,Glide 
消息传递:EventBus 
以上框架请自行查找,太多了就不贴出来了。

26.RecyclerView 
这个挺搞笑的。有另外一个同事也在找工作,面试官嫌他没用过RecyclerView直接pass掉。 
http://blog.csdn.net/lmj623565791/article/details/45059587

OK,点到即止。

结语

面试官面什么,完全是看他们个人的(性格,心情,天气,你的面相)。以上只是一些我觉得重要的点,当然还有很多深层的东西不是一时半日可以补上来的,还是要看自己平时的经验积累。面试不单单是技术面,还有高层面,人事面,这些都要看个人发挥了。

PS:如果面试官说,还有什么想问的,千万不要给自己挖坑,说今天自己表现怎样,能不能被录取。要往公司的团队,氛围去问,尽量表现的对公司有兴趣。 
如:我想知道公司是否定期有开技术会议,老员工是否会分享自己的一些经验等这些问题。

生活不易,如果有面试官(你将来有一天也会面试别人)看到这篇文章,请放下架子或者偏见,尊重每一位面试者。

最后,我列出以下面试需要注意的几个点。

  • 面带微笑,有礼貌,谦逊
  • 穿的体面一点,穿拖鞋的gg了8成
  • 一定要带简历和笔
  • 来了说谢谢,面完说谢谢
  • 要学会看面试官的表情,如果答的不好不要继续往下说
  • 不要吹的自己以前做过的项目有多牛b,也不要自吹
  • 答题要冷静,不要一轮嘴说一堆,面试官很烦的

接下来会写几篇针对BAT等大厂的面试题锦集,很快就出炉拉,已经在整理。喜欢的同学请点个赞哈! 
最后祝大家面试顺利,早日找到自己心仪的公司。

**个人面试经历总结文章: 
Android2017-2018最新面试题(3-5年经验个人面试经历) 
**BAT面试系列文章: 
一、Android(2017-2018)BAT面试题整理(java篇,含答案) 
二、Android(2017-2018)BAT面试题整理(Android篇,含答案) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker查看容器并运行

1、查看所有容器 docker ps -a结果 2、运行容器 docker start 56b90db5253e

IE8 select 动态下拉遇到的问题

发生背景:经QC测试程序一直没问题,到客户测试竟然出现了下拉窗口失效. 检查发现客户用的IE ,360 浏览器都出现一样的问题,据说360是引用IE的核心. 看下IE版本是 8的..... 开发和QC都是11版本的... 经过一阵和度娘互动找到了下面原因 1.IE8不支持 onchanged 事件. 解决:使用…

cesium 设置地球默认区域为中国 一键返回默认区域

直接上代码啦 Cesium.Camera.DEFAULT_VIEW_RECTANGLE Cesium.Rectangle.fromDegrees(90, -20, 110, 90); const viewer new Cesium.Viewer(cesiumContainer, { selectionIndicator: false,infoBox: false,animation: false,baseLayerPicker: false,timeline: false,geocoder…

Spring boot Tomcat配置

来自: https://www.cnblogs.com/a8457013/p/7687764.html转载于:https://www.cnblogs.com/eason-d/p/7884307.html

js 快捷键

直接上代码 document.onkeydown onKeyDown; function onKeyDown() {if (window.event.ctrlKey && (window.event.keyCode 69)) {alert("ctrle");} }键码值如下 字母和数字键的键码值(keyCode)按键键码按键键码按键键码按键键码A65J74S83149B66K75T84250C…

Android 属性动画ObjectAnimator使用demo,组合动画

//第一个参数:指定执行动画的控件,第二个参数:指定控件的属性,第三个参数是可变长参数 public static ObjectAnimator ofFloat(Object target, String propertyName, float... values) 动画过程监听 animator2.addUpdateListen…

清除输入框缓存数据

如果不想让浏览器缓存input的值&#xff0c;有2种方法&#xff1a; 方法一&#xff1a; <input type"text" autocomplete"off" name"test" /> 方法二&#xff1a; <form action"#" autocomplete"off"><inpu…

Android 自定义操作成功的loading动画

1、res---->values文件夹下添加文件attrs.xml详情如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <resources><declare-styleable name"SuccessView"><attr name"svStrokeColor" format"col…

cesium的clock开始,结束,控制速率

开始 viewer.clock.shouldAnimate true; 结束 window.viewer.clock.shouldAnimate false;速率调整 viewer.clock.multiplier 8;

Android 下载进度条, 自定义加载进度条,loading动画

1、自定义loadingline动画 /*** 作者&#xff1a;created by meixi* 邮箱&#xff1a;13164716840163.com* 日期&#xff1a;2018/9/6 10*/public class LoadingLine extends View {private Paint paint;private Paint backPaint;private Paint textPaint;private boolean ini…

eslint airbnb 不允许尾随逗号

我使用的是airbnb规则进行代码eslint。 会出现保存后&#xff0c;数组或者对象最后一个元素尾随逗号。 此时需要在.eslintrc.js中加入下面代码即可 "comma-dangle": ["error", {"arrays": "never","objects": "never…

我的物联网项目(十二) 单体应用架构不行?

单体应用架构在创业型项目里面是非常合适的&#xff0c;毕竟它主要的担当还是在验证创业模式以及迅速功能实现&#xff0c;所以它从开发到部署&#xff0c;在少量开发人员的基础上能非常减少成本&#xff0c;主要是门槛低&#xff0c;开发效率也非常高。到目前为此&#xff0c;…

Android listview优化以及listview混合itemview

listView (ListView) findViewById(R.id.listview); mAdapter new VideoListAdapter(this); listView.setAdapter(mAdapter); 主要adapter public class VideoListAdapter extends BaseAdapter {int[] viewtype {0, 0, 0, 1, 0, 0, 0, 1, 0, 0};//1 jcvd, 0 textView。主要…

vue项目中assets与static的区别

在使用vue脚手架生成的目录中&#xff0c;会有一个src/assets还有一个static。 两者都可以用来放一些静态文件。那有什么区别呢&#xff1f; static中的文件不会被webpack打包&#xff0c;文件被复制到dist/static assets中的文件会经过 webpack 打包&#xff0c;重新编译。…

oracle 用户管理

一、创建用户概述&#xff1a;在oracle中要创建一个新的用户使用create user语句&#xff0c;一般是具有dba(数据库管理员)的权限才能使用。create user 用户名 identified by 密码; 注意&#xff1a;oracle有个毛病&#xff0c;密码必须以字母开头&#xff0c;如果以数字开头&…