一、Java语言中的线程安全 Java语言中各种操作共享数据分为:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。不可变:不可变的对象一定是线程安全的。基本数据类型...
一、Java内存模型 Java内存模型来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。 Java内存规定了所有的变量(...
一、运行时栈帧结构 栈帧是用于支持虚拟机方法调用和方法执行的结构,栈帧存储了方法的局部变量表,操作数栈,动态链接,方法返回地址等信息。每一个方法从调用开始到执行完成的过程,都...
一、类的加载时机 类从被加载到虚拟机内存中,到卸载出内存为止,包括如下7个阶段:加载、验证,准备,解析、初始化、使用,卸载,验证、准备、解析三个统称为连接,加载阶段和连接阶段...
一、class文件类型 class文件:是一组以8位字节为基础单位的二进制流,通过类似于结构体的伪结构存储数据,两种数据结构包括无符号数和表。无符号数:属于基本的数据类型,以...
一、判断对象回收1、判断方法引用计数算法:对象每次引用,引用计数加1,取消引用减一,当引用计数为0,则判断对象可回收,但是难以处理两个对象的互相引用的问题。可达性分析算法:通...
一、运行时数据区域 1、程序计数器 当前线程所执行的字节码的行号指示器,线程私有,各个线程的计数器是独立的,互不影响,正在执行的是Native方法,计数器值为空。 2、Jav...
一、代码修复方式 在app重新启动时,优先加载补丁中的类,从而达到热修复的目的,andfix采用的方式是:在已经加载了的类中直接在native层替换掉原来的方法,是在原来的...
一、通用的修复方式 构造一个新的AssetManager,并通过反射调用addAssetPath,把这个完整新的资源包加入到AssetManager中,这样就得到了一个...
Android采用虚拟内存和分页,支持交换,Android使用显式分配的共享内存区域。 一、垃圾回收 Android的垃圾收集器不带压缩整理功能(Compact),即不会对...
一、so库的加载 通过System.load(filepath)和System.loadLibray(libname)两个方法来完成,最终通过nativieLoad()来完成...
一、Android lint uast介绍 UastScanner包含13个回调方法,下面介绍常用的几个: 1.getApplicableUastTypes 此方法返回需要检...
Appium介绍 https://github.com/appium/appium Appium is an open source, cross-platform test...
以setContentView为列 1、Activity.setContentView 2、PhoneWindow.setContentView.LayoutInflater...