记录在初学Android开发时遇到的问题以及一些知识点,方便自己查阅.
adb相关
- 记得将adb所在目录添加到Path中;
- adb是一个C/S模式的程序。client和server运行在开发机器上,daemon运行在emulator设备上。
- adb常用命令: adb pull
, adb push , adb install -r **.apk
Android Lover
记录在初学Android开发时遇到的问题以及一些知识点,方便自己查阅.
类从被加载到虚拟机内存中开始到从内存中卸载,主要的生命周期有:加载、验证、准备、解析、初始化、使用和卸载这七个阶段。
(1)遇到new,getstatic,putstatic,invokestatic这4条指令时,如果类没有进行初始化则进行初始化
(2)使用reflect包进行反射调用时,如果类没有初始化则进行初始化
(3)如果类初始化时发现父类还没有过初始化,则需要先触发父类初始化
(4)虚拟机启动时,用户制定一个要执行的类,虚拟机先初始化这个主类
(5)当使用JDK1.7动态语言支持时,如果一个java.lang.invoke.MethodHandle实例最后的解析结果REF_getStatic,REF_putStatic,REF_invokeStatic方法句柄,并且这个方法句柄所对应的类没有进行过初始化,则需要先触发其初始化。
这5种行为称为对一个类进行主动引用,其余称为被动引用。被动引用不会引发类的初始化。Java是一门面向对象语言。程序中对象的创建(eg. 克隆,反序列化)非常常见。在语言层面上创建对象通常仅仅通过一个new关键字而已,而在虚拟机中,对象创建又是怎样的呢?
主要过程有三个部分:
摘自Core Java
Java语言规范要求equals方法具有下面的特性: