Android与Java的一些思考

来源:互联网 发布:技嘉主板控制软件 编辑:程序博客网 时间:2024/06/05 09:45

Android的生命周期: onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy
Android中以standard(标准模式)在Activity(A)中启动另外一个Activity(B)的时候生命周期的调用顺序为:onPause(A) -> onCreate(B) -> onStart(B) ->onResume(B) ->onStop(A)
一般如果要在Activity销毁之前会做一些回收工作,而我们也会将这些工作放在onStop方法中,原因也是因为,ActivityB的onCreate是在ActivityA的onPause方法后调用且在onStop方法前调用。所以一般将耗时的工作放在onStop方法中,而不是onResume方法。

Android中使用SparseArray 代替HashMap 原因:当键是整数时,在HaspMap中使用java.lang.Integer对象,而SparseArray使用的则是基本类型int。因此,使用HaspMap会创建Integer对象,而SparseArray则可以避免。

getDeclaredMethod*()获取的是类自身声明的所有方法,包含public、protected和private方法。
getMethod*()获取的是类的所有共有方法,这就包括自身的所有public方法,和从基类继承的、从接口实现的所有public方法。

Java:
为什么局部内部类在访问局部变量时,变量要用final修饰,用final修饰的变量能被回收吗?
JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?
final修饰只是代表它是不可再修改的,回收机制与不用final修饰一样。