关注公众号:QXF069java
基础问题相关android
一、接口的意义-百度面试
二、抽象类的意义-百度算法
三、内部类的做用-乐视数据库
四、Java 虚拟机的特性-百度-乐视设计模式
五、哪些状况下的对象会被垃圾回收机制处理掉-美团-小米数组
六、进程和线程的区别-猎豹-美团性能优化
七、java中==和equals和hashCode的区别-乐视网络
八、HashMap的实现原理-美团多线程
九、string-stringbuffer-stringbuilder区别-小米-乐视-百度
十、什么致使线程阻塞-58-美团
十一、多线程同步机制-猎豹
十二、ArrayMap对比HashMap
1三、hashmap和hashtable的区别-乐视-小米-360
1四、容器类之间的区别-乐视-美团
1五、抽象类接口区别-360
Android 方面
1六、如何导入外部数据库?
1七、本地广播和全局广播有什么差异?
1八、intentService做用是什么,AIDL解决了什么问题-小米
1九、Ubuntu编译安卓系统-百度
20、LaunchMode应用场景-百度-小米-乐视
2一、Touch事件传递流程-小米
2二、View绘制流程-百度
2三、多线程-360
2四、Handler,Thread和HandlerThread的差异-小米
2五、线程同步-百度
2六、什么状况致使内存泄漏-美团
2七、ANR定位和修正
2八、什么状况致使oom-乐视-美团
2九、Service与Activity之间通讯的几种方式
30、如何保证service在后台不被Kill
3一、Requestlayout,onlayout,onDraw,DrawChild区别与联系-猎豹
3二、Android动画框架实现原理
3三、Android为每一个应用程序分配的内存大小是多少-美团
3四、优化自定义view百度-乐视-小米
3六、volley-美团-乐视
3七、Glide源码解析
3八、Android设计模式
3九、Android属性动画特性-乐视-小米
40、Activity Window View三者的差异,fragment的特色-360
4一、invalidate和postInvalidate的区别及使用-百度
4二、LinearLayout和RelativeLayout性能对比-百度
4三、View刷新机制-百度-美团
4四、架构设计-搜狐
腾讯公司面试题精选
4五、2000万个整数,找出第五十大的数字?
4六、从网络加载一个10M的图片,说下注意事项
4七、自定义View注意事项
4八、项目中经常使用的设计模式
4九、JVM的理解
阿里面试题精选
50、进程间通讯方式
5一、什么是协程
5二、内存泄露是怎么回事
5三、程序计数器,引到了逻辑地址(虚地址)和物理地址及其映射关系
5四、数组和链表的区别
5五、二叉树的深度优先遍历和广度优先遍历的具体实现
5六、堆的结构
5七、bitmap对象的理解
5八、什么是深拷贝和浅拷
5九、对象锁和类锁是否会互相影响
60、looper架构
6一、自定义控件原理
6二、自定义控件原理
6三、ActivityThread,Ams,Wms的工做原理
6四、Java中final,finally,finalize的区别
6五、一个文件中有100万个整数,由空格分开,在程序中判断用户输入的整数是否在此文件中。说出最优的方法
6六、两个进程同时要求写或者读,能不能实现?如何防止进程的同步?
6七、volatile 的意义?
6八、烧一根不均匀的绳,从头烧到尾总共须要1个小时。如今有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
6九、手写代码:大整数加法
70、简历上提到使用Butterknife,Butterknife是什么阶段注解?注解的生命周期了解吗?
7一、简历中提到使用Okhttp作网络通信,说一下Okhttp拦截器
7二、Http和Https区别,没有CA证书可使用Https访问吗
7三、TCP在是哪一层的协议,三次握手过程
7四、了解什么加密算法,说一说对称加密和非对称加密
7五、了解JVM吗,说说垃圾回收机制
7六、了解apk的编译过程吗,简单说了一下dex
7七、Java中Collection的经常使用实现类,map的实现类
7八、聊聊Hashmap和Hashtable区别
7九、Hashmap的底层实现方式,如何解决哈希冲突,除了这种解决方式还有没有其余解决方式
80、不少网站像新浪微博网址都有短地址,若是让你实现怎么作
8一、如何判断两个单链表相交
8二、如何使用两个或多个栈模拟队列
8三、智力题:如今有一个抽奖活动,从8点到10点这段时间会有若干个用户参与抽奖,如今有10个获奖名额,但没有足够大的空间保存全部的数据,要求每一个用户等几率中奖,且10点活动截止瞬间开奖。
二面(50分钟)
8四、手写代码:删除单链表倒数第x个结点
8五、手写代码:z已知,在无序数组中找到两个数x和y,使x+y=z(使用哈希表以空间换时间)
8六、有没有看过Handler的源码,当MessageQueue中没有Message会怎么处理
8七、说一下线程与进程,android跨进程通信的方式,本身有没有用过
8八、讲一讲AIDL原理
8九、Service有几种启动方式,有什么区别
90、activity的声明周期和启动模式,举了一个实际场景问点击back以后的跳转
9一、activityA跳转到B过程当中A,B的生命周期函数调用顺序
9二、自定义View的相关知识
经验分享 在以前一家互联网的时候我做为面试官接触过几十个面试者,能左右我是否是经过这我的的,主要因素仍是这我的对技术的热爱程度。由于有这种极客精神,作任何技术上的事情都是时间上的问题,因此面试过程当中要尽量表现出对技术的热爱。
那除了这种因素外,咱们怎么作才能更大几率的进入一线公司呢?
还有一个比较重要的因素就是知识的深度。我认为深度优于广度,广度经过看各类文章都能了解,但一旦碰到实际问题,这时候每每靠的是本身的知识深度。好比,Java程序猿都知道Java是跨平台的,由于会编译成和平台无关的字节码,可是有多少人会知道是怎么编译的?若是不知道虚拟机运行原理,就不可能作出手淘的Atlas容器框架。再好比,不少人知道四大组件职责都是什么,还会些性能优化,可是若是不知道Framework层系统服务原理,就作不出插件化框架。
由于一线公司业务的复杂度也决定了业务的深度,若是没有较好的深度探究能力,是很难胜任的,因此知识的深度也很重要。
极客精神加上某一领域知识的深度能力,就能够达到一线公司标准了。面试中非理性因素也有较大比重,可是这种东西是咱们没办法掌控的,若是由于这种因素失败了,也不必气馁。我认为能力是和回报成正比的,就算此刻没发生,下一刻也会出现,只要掌握了咱们该掌握的能力,总有一天会进入咱们理想的公司。
关注公众号: