
kotlin
文章平均质量分 87
devnn
Stay Foolish!Stay Hungry!Read The Funking Source Code!
展开
-
【Kotlin】协程的字节码原理
协程是Koltin语言最重要的特性之一,也是最难理解的特性。网上关于kotlin协程的描述也是五花八门,有人说它是轻量级线程,有人说它是无阻塞式挂起,有人说它是一个异步框架等等,众说纷芸。原创 2024-01-15 21:30:15 · 809 阅读 · 2 评论 -
【Kotlin】by lazy关键字的实现原理
kotlin的by lazy关键字是很常用的,它表示延时初始化变量,只在第一次使用时才给它初始化。那么它是如何实现这种功能的呢?这篇文章从字节码和Java语言的角度揭密它的实现原理。原创 2022-11-12 00:21:43 · 2557 阅读 · 0 评论 -
【Kotlin】从字节码角度理解kotlin构造函数、成员变量、init代码块执行顺序
kotlin的构造函数、init代码块、成员变量初始化三者执行顺序是怎样的? 这篇文档从节字码的角度去理解它们的逻辑。原创 2022-10-31 18:25:30 · 1252 阅读 · 0 评论 -
【Android】字节码插桩技术实现卡顿监控
字节码插桩早已不是什么新鲜的技术了,但时至今日仍然在广泛应用。它能鬼使神差一般改变我们的代码,实现一些功能让我们看不见摸不着。像Arouter、Hilt、Tinker、Matrix这些框架都在使用这项技术。插桩是字节码编程的一个应用,这里主要是使用字节码编程技术。字节码编程能解决很多问题,比如自动生成class,自动修改字节码,自动添加日志代码,自动插入代码实现卡顿监控。笔者通过字节码插桩技术实现自动统计方法耗时,实现UI卡顿监控,通过这个案例了解字节码插桩的全过程。原创 2022-10-29 18:51:51 · 2308 阅读 · 0 评论 -
【Koltlin】深入剖析Kotlin 扩展函数和扩展属性
在kotlin中经常看到这样的if语句://s是一个String类型的对象if(s.isNullOrEmpty()){//执行空对象或空字符串的逻辑}笔者不禁想问,如果s是空对象,调用它的函数不会抛出空指针吗?它是如何检查被调用的对象s是空对象的呢?查阅资料后,发现原来这是kotlin的扩展函数的特性:在扩展函数内, 可以通过 this 来判断接收者是否为 NULL,这样,即使接收者为 NULL,也可以调用扩展函数。例如:fun Any?.toString(): String {原创 2022-01-11 17:45:33 · 2742 阅读 · 0 评论 -
【Kotlin】Kotlin构造函数、成员变量、init代码块执行顺序
在Kotlin中经常看到主构造函数、成员变量、init代码块(也叫初始化器),它们的执行时机和顺序是什么样的呢?看一下官方的示例:class InitOrderDemo(name: String) { val firstProperty = "First property: $name".also(::println) init { println("First initializer block that prints ${name}") }原创 2021-12-17 11:24:16 · 6684 阅读 · 0 评论 -
【Java】JVM运行时数据区域与内存回收机制
前言JVM(Java Virtual Machine)是Java、Kotlin、Groovy等程序运行的虚拟机,它是Java技术系统里最重要的组成部分之一。熟悉JVM的运行过程、运行时数据区以及内存回收机制,对我们认识Java语言,解决内存泄漏、内存溢出等问题非常有帮助。文章目录前言一、Java技术体系二、Java运行时数据区域(1) 程序计数器(2) Java虚拟机栈(3) 本地方法栈(4) Java堆(5) 方法区(6) 运行时常量池三、JVM内存回收机制(1) 如何判定内存是否需要回收(2) 引用原创 2021-11-25 21:31:36 · 2141 阅读 · 0 评论 -
【Kotlin】Kotlin的高阶函数与Lambda表达式
前言Kotlin的高阶函数与Lambda表达式是Kotlin的特色,使用频率非常高。熟悉它的用法与本质对于简化代码、提升开发效率非常有帮助,也易于阅读kotlin的框架源码。这两个概念并不是一个东西,但是又有非常紧密的关联。这篇文章带你弄懂什么是高阶函数,以及Lambda表达式的本质和使用。一、什么是高阶函数高阶函数就是将函数用作参数或返回值的函数。函数类型Kotlin 使用类似 (Int) -> String 的一系列函数类型来处理函数的声明,例如onClick: val onClick原创 2021-10-24 17:13:29 · 5366 阅读 · 0 评论