Android与Java的一些思考
2017-05-20 21:58
169 查看
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修饰一样。
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修饰一样。
相关文章推荐
- JAVA反射性能测试及对架构工作的一些思考
- 关于Java泛型的一些思考
- 关于Java内存溢出的一些思考
- 对Android发展的一些思考
- 关于android和java环境和编译的一些基本知识
- 有关java匿名内部类的一些思考
- 搜寻了关于android推送资料后的一些思考
- 关于Android中ANR的一些思考
- Code Review CheckList-Java使用规范的一些思考
- android中关于jni调用java层方法的一些误导和见解
- Android客户端程序员的一些思考
- ANDROID游戏开发——我在写飞机类游戏时遇到的一些问题与思考
- Java和Android中一些常用的公共方法
- 关于Android打开/关闭飞行模式的一些思考
- “1000万字符串,去掉重复”的一些思考和java实现
- 对Java中匿名类的一些思考
- Java和Android中一些常用的公共方法
- 关于Qt for Android的一点思考---为啥是C,又为啥不可以是java?!
- Android关于OutOfMemoryError的一些思考
- Android环境的搭建的一些思考