2017android面试总结

来源:互联网 发布:高维数据分析 编辑:程序博客网 时间:2024/06/05 10:27

1.java基础

1.1.java中的接口注意点:

1.接口中的字段全部默认为public static类型

2.接口接口中的方法全部默认为public类型

3.接口可以申明内部类,而默认为public static,正因为是static只是命名空间属于接口,代码逻辑不属于接口,所以不违反接口定义

4.接口本身可以申明为public或者缺省

5.出现类继承自谋接口。如果在抽象类中实现了父类(接口)中的方法,在其子类可以不用实现,否则在子类必须实现

1.2.final关键字的用法与含义

1.3.static关键字的用法与含义

1.4.synchronized关键字的用法与含义

1.5.volatile关键字的用法与含义

1.6.java泛型用法

1.7.java静态内部类与非静态内部类的区别

1.8.如果一个可继承的类和一个接口中有同名方法,而我又需要在另外一个类中同时使用到这两个同名方法应该如何去做?

1.9.java匿名内部类的作用

1.10.String与StringBuffer直接的区别

1.11.ArrayList与LinkList的区别

1.12.equels方法与==运算符的区别

1.13.HashMap与HashTable的区别

HashMap是线程不安全的

HashTable是线程安全的

1.14.如果让你去实现一个HashTable你应该怎么去做

1.15.java中的位运算符有哪些

1.16.说说你最熟悉的设计模式,以及对该模式的理解

1.17.请手写单例模式的几种实现方式,(越多越好)

1.18.请说说你了解的数据结构,链表结构,二叉树...

1.19.请用java手写一个非递归二叉树中序遍历

1.20.请用java写一个快速排序或者冒泡排序的算法函数


2.java高级

2.1.JVM原理是什么?

2.2.JVM与Dalvik区别?

2.3.Dalvik与Art之间的区别

2.4.java中有哪些方式可以保证线程安全

2.5.线程不安全会产生什么后果

2.6.线程同步有哪些方式

2.7.java线程池有哪些分类?

2.8.java有哪些线程池,线程池是如何管理线程的,任务的分配原则是什么?

2.9.什么时候才会去加载一个类,classLoader原理

2.10.什么情况下线程会调用等待,如何干掉一个线程

2.11.什么是线程阻塞


3.android基础

3.1.activity的四种launch model以及应用场景

3.2.service的两种启动方式生命周期的异同

3.3.IntentService和Service有什么区别,能否在IntentService中刷新UI

3.4.View与ViewStub有什么区别,ViewStub有何优点

3.5.fragment的生命周期

3.6.Activity,Window,View三者之间的关系

3.7.Activity的启动流程

3.8.android中有哪几种动画,每种实现原理都是什么样的?


4.android高级

4.1.android事件分发机制,

View与ViewGroup

onDispatchTouchEvent

onInterceptTouchEvent

onTouchEvent

4.2.自定义View流程

4.3.handler机制是什么,为什么要用handler去更新主线程的UI,子线程真的不能更新主线程的UI吗?

主线的View是线程不安全的,所以有更新UI的检查机制,当启动一个子线程直接去更新UI时运行不会出错,因为还没运行到检查机制,一旦触发这个机制就不行。

4.4.如何在子线程中实现handler loop机制

4.5.APP 的打包过程是什么

4.6.APP的启动过程

4.7.android系统的启动过程

4.8.android进程间通信的方式有哪些

4.9.binder机制的原理

4.10.如何实现一个图片加载库,需要哪些核心技术

4.11.如何实现一个网络加载库,需要哪些核心技术

4.12.android中AsyncTask的源码分析,实现原理

其本质是通过handler去更新UI的

4.13.网络请求框架OkHttp的缓存机制,OKHTTP与Volley之间的区别

4.14.android 中LruCache实现原理

4.15.图片加载库Fresco与Glide的差异,各有什么优缺点

4.16.热修复方案,andFix实现原理,阿里的andFix与微信的Tinker有哪些区别,Tinker的修复原理是什么?

4.17.android性能优化有哪些,如何做过渡绘制的优化,如何做内存优化,如何做电量优化

4.18.内存泄露的原因有哪些,如何检查内存泄露,内存泄露的工具LeakCanary实现原理,如果让你去写一个检查内存泄露的工具,你的实现思路是什么?

4.19.如何防止OOM,内存抖动又是什么原因导致的

4.20.设计模式:MVC,MVP,MVVM,Clean

4.21.http与https的区别,以及证书的加密方式

4.22.android 5.0,6.0,7.0,8.0每个版本都有哪些新特性

5.0默认使用Art虚拟机

5.0.Material Design

5.0动态替换Theme

5.0Palette调色板的使用

6.0主要是新控件的使用

6.0SnackBar

6.0TextInputLayout

6.0FloatingActionButton

6.0TabLayout

6.0CoordinatorLayout

7.0分屏多任务,全新设计的通知控制栏

7.0全新下拉快捷开关页

7.0通知消息快捷回复

5.0和6.0新特性参见:

http://blog.csdn.net/tianzhu2725/article/details/52775285

7.0新特性请参见:

http://blog.csdn.net/hao54216/article/details/52388755

8.0新特性请参见:

http://blog.csdn.net/wei_lei/article/details/69473786

4.23.android APP签名过程



原创粉丝点击