乐趣区

关于android:史上最全的Android面试题集锦完结

原文链接:https://blog.csdn.net/xiangzh…​

数据结构与算法

https://zhuanlan.zhihu.com/p/…_source=weibo&utm_medium=social

http://crazyandcoder.tech/201… 算法与数据结构 - 排序 /

1、排序

排序有外部排序和内部排序,外部排序是数据记录在内存中进行排序,而内部排序是因排序的数据很大,一次不能包容全副的排序记录,在排序过程中须要拜访外存。

1.1、间接插入排序

思维:

将第一个数和第二个数排序,而后形成一个有序序列

将第三个数插入进去,形成一个新的有序序列。

对第四个数、第五个数……直到最初一个数,反复第二步。

代码:

首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1 个数的那次不必插入。

设定插入数和失去曾经排好序列的最初一个数的位数。insertNum 和 j =i-1。

2、设计模式

参考:Android 开发中的一些设计模式

2.1、单例设计模式

单例次要分为:懒汉式单例、饿汉式单例、注销式单例。

特点:

单例类只有一个实例

单例类必须本人创立本人的惟一实例

单例类必须给所有其余对象提供这一实例。

在计算机系统中,像线程池,缓存、日志对象、对话框、打印机等常被设计成单例。

懒汉式单例:

Singleton 通过将构造方法限定为 private 防止了类在内部被实例化,在同一个虚拟机范畴内,Singleton 的惟一实例只能通过 getInstance() 办法拜访。(事实上,通过 Java 反射机制是可能实例化构造方法为 private 的类的,那基本上会使所有的 Java 单例实现生效。

它是线程不平安的,并发状况下很有可能呈现多个 Singleton 实例,要实现线程平安,有以下三种形式:

1. 在 getInstance 办法上加上同步

2. 双重查看锁定

3. 动态外部类

这种形式比照前两种,既实现了线程平安,又防止了同步带来的性能影响。

饿汉式单例:

饿汉式在创立类的同时就曾经创立好了一个动态的对象供零碎应用,当前不再扭转,所以天生是系统安全。

————————————————

收费获取 Android 进阶材料点击下方链接

https://shimo.im/docs/tXXKHgd…

退出移动版