首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
YDG
掘友等级
android 修行者
不打游戏的程序猿
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
17
文章 17
沸点 0
赞
17
返回
|
搜索文章
最新
热门
直面底层之字节码看i++与++i
我们可以看到 i++ 只操作了局部变量表,并不会和操作数栈发生关系,如果i= i++ 的结果就是 先读了i 的值 到操作数栈,然后局部变量表操作自增,然后 操作数栈又写回了 局部变量表发生了覆盖,所以结果会是 0. 第二和第三种都是操作的局部变量表,未发生覆盖,输出时才将局部变…
直面底层之字节码看for循环高级语法糖
本文从字节码层面看java 高级for循环的语法糖,用字节码分析,揭开高级for循环的面纱。
直面底层之字节码看类初始化
在https://juejin.cn/post/6948344115050332191 这篇文章最后我们讲了 new dup invokespecial 要形成条件反射是一个类的初始化,那篇文章我们就从字节码指令看下类的初始化。 (2). main方法中 换成 ClassB […
直面底层之字节码看enum和switch
本文从枚举的字节码方面看枚举,并学习下 swtich的实现 和 swtich(String) 的实现。 接下来我们通过 javac EnumTest 看下编译后生成了 EnumTest.class EnumTest$1.class EnumTest$EnumDay.class …
直面底层之字节码基础
生成的.class 文件 由上述图示部分组成: CAFEBABE 是文件标识,表明这是一个class 文件,后面的就是编译版本、常量池个数、类访问标记、接口、成员变量、方法数、属性等。 a. new dup invokespecial 三条指令连用,一般对应java 中的new…
jetpack-ViewModel 源码解析
2. ViewModel通常在有周期的组件内创建 如 Activity /Fragment 创建时创建,只要组件为销毁,ViewModel 就是可用的 4. ViewModel 设计的职责只是用来保存view 绑定的数据,千万不要用来做View 引用维持View 的存储和恢复 …
又见清明之 app黑白化
疫情已经持续了两年之久,从去年清明节各个APP陆续在节日当天将APP黑白化,以示对逝者的尊敬和祭奠。除了悼念,作为一个开发者,更需要理解这背后的技术即黑白化的技术。 我们通过自定义view 通过 ColorMatrix.setSaturation(0) 构建黑白的矩阵,…
jetpack--LiveData源码解析
1. LiveData 观察者包装类的两种实现 c. 在添加观察者时,如果 该观察者已经添加过且 该观察者是LifecycleBoundObserver 类型,且 该观察者监听的生命周期和之前的不一致,则会抛出异常,即无法使用同一观察者感知不同的生命周期持有者 3. Livad…
MMKV浅析
通过 mmap 内存映射文件,提供一段可供随时写入的内存块,App 只管往里面写数据,由操作系统负责将内存回写到文件,不必担心 crash 导致数据丢失。 mmap主要有2种用法,一个是建立匿名映射,可以起到父子进程之间共享内存的作用。另一个是磁盘文件映射进程的虚拟地址空间。M…
jetpack-- lifecycle 源码解析
ObserverWithState 通过 LifeCycling 将Observer 包装成 LifecycleEventObserver 或者 FullLifecycleObserverAdapter 或者根据注解生成 Observer。
下一页
个人成就
文章被点赞
77
文章被阅读
24,651
掘力值
824
关注了
26
关注者
11
收藏集
13
关注标签
6
加入于
2020-03-20