面试问题集锦(2017.6.23)

1.求一个数组中重复次数最多的且最大的元素

当时面试的时候有点看不懂这个问题,有点奇葩,但是后来想想吧,如果是先求出重复次数最多的元素,然后就行比较那个元素最大,感觉还是有点纠结。看来只能留到以后自己提高以后再试试有没有解决方法。


2.Android Studio加载第三方sdk,出现包重复加载的问题

compile fileTree(dir:'libs', include):

compile'com.android.support:appcompat-v7:21.0.0'

compile ('in.srain.cube:cube-sdk:1.0.42.1'){

exclude module:'support-v4'

}

compile files('libs/android-async-http-1.4.6.jar')


3.,Activity的四种启动模式如下:(详情)

standard、singleTop、singleTask、singleInstance

standard启动模式是默认的启动模式,每次启动一个Activity都会新建一个实例不管栈中是否已有该Activity的实例。


singleTop模式分3种情况

当前栈中已有该Activity的实例并且该实例位于栈顶时,不会新建实例,而是复用栈顶的实例,并且会将Intent对象传入,回调onNewIntent方法

当前栈中已有该Activity的实例但是该实例不在栈顶时,其行为和standard启动模式一样,依然会创建一个新的实例

当前栈中不存在该Activity的实例时,其行为同standard启动模式


singleTask模式

taskAffinity(参数标识了一个Activity所需任务栈的名字,默认情况下,所有Activity所需的任务栈的名字为应用的包名)

singleTask启动模式启动Activity时,首先会根据taskAffinity去寻找当前是否存在一个对应名字的任务栈

如果不存在(不是默认的任务栈,与包名不同),则会创建一个新的Task,并创建新的Activity实例入栈到新创建的Task中去,随后创建的Activity都将进入这个新栈中(随后的Activity没有设置新的taskAffinity值)

如果存在,则得到该任务栈,查找该任务栈中是否存在该Activity实例

如果存在实例,则将它上面的Activity实例都出栈,然后回调启动的Activity实例的onNewIntent方法

如果不存在该实例,则新建Activity,并入栈。


SingleInstance模式启动的Activity在系统中具有全局唯一性。


4.fragment加载百度地图的时候出现黑屏的现象

1> 将百度地图fragment封装成一单例,在fragment类装载时构建,加快渲染的速度。

2> 使用hide() 和show()方法,先把fragment加载出来,但是可以隐藏的,节省切换的时间。





.

 



你可能感兴趣的:(面试问题集锦(2017.6.23))