- 博客(29)
- 收藏
- 关注
原创 Android数据结构-ConcurrentHashMap
(需要手动找root)TreeBin;线程安全键值key 和 value 不可为null。
2026-03-04 20:34:39
465
原创 Android数据结构-契约
需要契约的约束,契约定义了决定的底层实现数组、链表、树合作关系:使用的特点实现的特点(契约数组、链表相对插入顺序,在(List、queue)或(Set、Map的iteratpr.next()),是否有一定规律。
2026-02-28 17:39:57
634
原创 Android线程安全-CAS
是隐含规则寄存器,不需要在指令中写明。CPU执行指令时,会自动从EAX中取值,执行指令后会设置ZF标志位。(对象,操作数,期望值,新值),调用Unfafe的compareAndSwapInt方法。传递CAS参数(不关心内容)给native层 + 计算偏移量。(同一时间内,只允许一个线程,一次性执行完成所有操作)原始值(共享变量的虚拟地址)、期望值、新值。“先比较,后交换”;
2026-02-15 01:27:02
272
原创 Android线程安全-ReentrantLock
ReentrantLock是Java层(java.util.concurrent.locks)提供的一个锁机制,ReentrantLock主要保证两大特性:原子性、可见性可重入、支持公平锁/非公平锁、手动管理锁获取/锁释放、支持多种锁获取方式(lock()、tryLock(无参)、tryLock(有参)、lockInterruptibly())基于 AQS(AbstractQueuedSynchronizer)维护的:CLH队列(双向队列)和 CAS竞锁 实现的4.2 tryLock()4.
2026-02-12 01:39:26
315
原创 Android线程安全-Synchronized
synchronized主要保证两大特性:原子性、可见性(StoreBuffer -> 缓存 -> 主内存)
2026-02-10 17:09:10
690
原创 Android前篇目录
时机:启动Android应用时,Zygote进程创建一个新进程(fork指令),虚拟机通过mmap系统调用,将dex文件映射到进程的内存映射段(私有文件内存映射段)概念:虚拟机在类加载时创建的一块存储类元数据(类结构、字段信息、方法字节码、常量池)的结构化信息。概念:mmap是操作系统用于,在当前进程的虚拟内存空间中创建一个新的VMA。创建进程、虚拟内存空间(建立VMA映射关系)创建进程、虚拟内存空间(建立VMA映射关系)编译流程:编译、汇编、链接(地址重定位)执行过程:取值、更新pc、执行、循环。
2026-01-31 21:28:57
291
原创 Java语言(Android前篇-13)
Dex载入内存 ——> 元空间(类加载)——> 实例化对象内存映射段VMA私有文件内存映射段内存映射段VMA私有匿名内存映射段堆内存段VMA匿名映射。
2026-01-27 23:40:23
356
原创 Android系统调用-mmap指令(Android前篇-11)
mmap 是操作系统用于,在调用的进程的虚拟内存空间创建一个新的VMA(初始两个进程建立页表映射关系,指向同一个物理地址。
2026-01-26 21:58:35
236
原创 程序为何加载进内存运行(Android前篇-4)
和与其相连的内存(RAM),而硬盘、ROM等外存设备接口,CPU无法直接读取其指令。CPU处理速度极快,而存储介质(ROM)的处理速度慢了几个数量级。代码被加载进内存,操作系统为每个进程统一的、受保护的。代码映射到内存空间,使多个进程共享相同的库代码。
2026-01-23 17:01:13
209
原创 CPU概念(Android前篇-3)
1. Android系统支持多种CPU架构,主要分为:ARM、X862. 不同的CPU架构,决定操作系统和程序软件被编译成的指令集。
2026-01-23 16:45:36
177
原创 Ascll码(Android前篇-1)
无论是还是,我们编写的本身通常是,默认使用Ascll或兼容Ascll的UTF-8等编码保存编译器或解释器在编译/解释过程的第一个阶段(词法分析)时,就是通过读取这些字节流,并根据Ascll或Unicode规则来识别变量名、关键字等符号的。
2026-01-22 02:31:50
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅