首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin 注解全解析

类比思维是非常实用的思维方式,我们跟Java的注解进行对比,就可以快速理解Kotlin的注解。...* * @author: Jack * 2021/3/16 上午11:18 * * 1.Kotlin中的元注解类定义于kotlin.annotation包中,主要有: @Target、@Retention...* 3.注解类中只能拥有如下类型的参数: 基本数据类型、字符串、枚举、类引用类型、其他的注解类(例如Deprecated注解类中的ReplaceWith注解类) */ @Target(AnnotationTarget.TYPE..., 需要注意的是在Kotlin中编译器禁止为注解类指定类主体,因为在Kotlin中注解只是用来定义关联的声明和表达式的元数据的结构。...中的元注解 和Java一样在Kotlin中,一个Kotlin注解类自己本身也可以被注解,可以给注解类加注解。

88910

【必知必会】深入解析引用、软引用、弱引用、幻象引用

关于强引用、软引用、弱引用、幻象引用的区别,在BAT这样大公司的面试题中也经常出现,可能有些小伙伴觉得这个知识点比较冷门,但其实大家在开发中经常用到,如new一个对象的时候就是强引用的应用。...软引用通常可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用引用的对象被垃圾回收,java虚拟机就会把这个软引用加入到与之关联的引用队列中。...弱引用与软引用最大的区别就是弱引用比软引用的生命周期更短暂。垃圾回收器会扫描它所管辖的内存区域的过程中,只要发现弱引用的对象,不管内存空间是否有空闲,都会立刻回收它。...所以对于软引用、弱引用之类,垃圾收集器可能会存在二次确认的问题,以确保处于弱引用状态的对象没有改变为强引用。...对于软引用、弱引用、幻象引用可以配合引用队列(ReferenceQueue)来使用,特别是幻象引用,get方法只返回null,如果再不指定引用队列,基本就没有任何意义了。

46620

引用引用引用引用解析和应用场景分析

引用整体架构图 java.lang.ref下引用架构 引用引用(默认支持类型) 软引用引用引用引用(默认支持模式) 我们平常普通写的 Object a=new object(); 创建对象就是一种强引用...当内存不足,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对象进行回收 image.png 强引用是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还“活着”...在Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。...虚引用引用需要java.lang.ref.PhantomReference类来实现。顾名思义,就是形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期。...创建引用的时候可以指定关联的队列,当GC释放对象内存的时候,会将引用加入到引用队列如果程序发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内存被回收之前采取必要的行动这相当于是一种通知机制

53530

Kotlin 集合使用详细解析

1、集合类型 Kotlin 标准库提供了基本集合类型的实现: set、list 以及 map。 一对接口代表每种集合类型: 只读类型:set、list、map,提供访问集合元素的操作。...标准库中的集合复制操作创建了具有相同元素引用的浅复制集合。 因此,对集合元素属性所做的更改会反映在其所有副本中。...例如,如果构建了一个MutableList的List引用,当你试图通过此引用修改集合的时候,编译器会抛出错误。...5、集合转换 Kotlin 标准库为集合转换提供了一组扩展函数。 这些函数根据提供的转换规则从现有集合中构建新集合。 在此章节中,我们将概述可用的集合转换函数。...14、List 相关操作 List 是 Kotlin 标准库中最受欢迎的集合类型。对列表元素的索引访问为 List 提供了一组强大的操作。

4K00

Kotlin】:: 双冒号操作符详解 ( 获取类的引用 | 获取对象类型的引用 | 获取函数的引用 | 获取属性的引用 | Java 中的 Class 与 Kotlin 中的 KClass )

文章目录 一、:: 双冒号操作符 1、获取类的引用 引用类型 KClass 说明 2、获取对象类型的引用 3、获取函数的引用 4、获取属性的引用 二、 java.lang.Class 与 kotlin.reflect.KClass...一、:: 双冒号操作符 ---- 在 Kotlin 中 , :: 双冒号操作符 的作用是 获取 类 , 对象 , 函数 , 属性 的 类型对象 引用 ; 获取的这些引用 , 并不常用 , 都是在 Kotlin...在 Kotlin 中 , 使用 :: 双冒号操作符 获取 类的类型对象引用 代码格式为 : Java或Kotlin类名::class 获取的 Kotlin 类 的 类型对象 的类型 为 KClass<...} 2、获取对象类型的引用Kotlin 中 , 使用 :: 双冒号操作符 获取 对象类型的引用 代码格式为 : Java或Kotlin实例对象::class 获取的 对象类型的引用 的类型 为 KClass...---- KClass 是 Kotlin 类的 引用类型 , 是 Kotlin 类的实例对象 , 通过 类名::class 可以获取 KClass 引用 ; KClass 提供了关于 Kotlin 类的一系列功能

4.4K10

一个实例学习Kotlin 开发 Android App 的全过程(内有代码)

:kotlin-stdlib-jre7:$kotlin_version" compile 'com.android.support:appcompat-v7:25.1.1' testCompile...:kotlin-stdlib-jre7:$kotlin_version" implementation 'com.google.code.gson:gson:2.8.1' implementation...android:layout_width="match_parent" android:layout_height="match_parent" /> 在布局文件中,使用标签引用了一个...Kotlin代码(解析JSON格式的数据) object Utility { // 解析和处理服务器返回的省级数据 fun handleProvinceResponse(response:...第4个方法用于分析描述天气信息的JSON数据,而且使用Android SDK标准的API进行分析,而是使用了gson开源库对JSON数据进行分析,并返回一个Weather对象,Weather类与其他相关类的定义需要符合

4.5K50

【JVM从小白学成大佬】3.深入解析引用、软引用、弱引用、幻象引用

关于强引用、软引用、弱引用、幻象引用的区别,在很多公司的面试题中经常出现,可能有些小伙伴觉得这个知识点比较冷门,但其实大家在开发中经常用到,如new一个对象的时候就是强引用的应用。...软引用通常可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用引用的对象被垃圾回收,java虚拟机就会把这个软引用加入到与之关联的引用队列中。...弱引用与软引用最大的区别就是弱引用比软引用的生命周期更短暂。垃圾回收器会扫描它所管辖的内存区域的过程中,只要发现弱引用的对象,不管内存空间是否有空闲,都会立刻回收它。...所以对于软引用、弱引用之类,垃圾收集器可能会存在二次确认的问题,以确保处于弱引用状态的对象没有改变为强引用。...对于软引用、弱引用、幻象引用可以配合引用队列(ReferenceQueue)来使用,特别是幻象引用,get方法只返回null,如果再不指定引用队列,基本就没有任何意义了。

45810

KotlinKotlin 变量与常量 ( 变量声明 | 只读变量 | 类型推断 | 编译时常量 | Kotlin 字节码查看面板 | Kotlin 引用数据类型 )

文章目录 一、变量声明 二、只读变量 三、类型推断 四、编译时常量 五、Kotlin 字节码查看面板 六、Kotlin 引用数据类型 一、变量声明 ---- 变量声明格式 : 变量定义关键字 变量名...Shift 键 , 弹出搜索框 , 在搜索框中搜索 " Show Kotlin ByteCode " , 然后进入到该选项 , 此时 , 在右侧就会同时显示该 Kotlin 文件的字节码信息..., const val COUNT = 100 对应的字节码信息是 public final static I COUNT = 100 ; 六、Kotlin 引用数据类型 ---- Java 中存在...基本数据类型 与 引用类型 , 基本数据类型 存放在 栈内存 中 ; 引用类型 存放在 堆内存 中 ; 在 Kotlin 中 , 只有 引用数据类型 , 没有 基本数据类型 ; 在编译时 , 编译器 会将...是 Kotlin 中的 Int 引用类型 , 但是在 字节码文件中 , 对应的字节码为 LOCALVARIABLE number I L1 L6 0 , 其中 I 表示 Java 中的 基本数据类型

91320

Dubbo源码解析 —— 服务引用原理

前言 经过上一篇dubbo源码解析-简单原理、与spring融合的铺垫,我们已经能简单的实现了dubbo的服务引用.其实上一篇中的代码,很多都是从dubbo源码中复制出来,甚至有些类名,变量名都没改.那请问...当然上一篇的入门版只是抛砖引玉,等整个dubbo源码解析系列完结之后,和大家一起临摹dubbo源码也在计划当中.当然更多后续进展关注肥朝即可....插播面试题 描述一下dubbo服务引用的过程,原理 既然你提到了dubbo的服务引用中封装通信细节是用到了动态代理,那请问创建动态代理常用的方式有哪些,他们又有什么区别?dubbo中用的是哪一种?..."原谅他".因此,本篇我又再次粗暴式的点题,"怎么看源码".就把本篇来说,这个服务引用的原理,我们要从哪里开始看呢?...期待下周的dubbo源码解析继续与你相遇.鉴于本人才疏学浅,不对的地方还望斧正,也欢迎关注我的简书,名称为肥朝

82080

Kotlin委托的深入解析与实践

Rouse 读完需要 5 分钟 速读仅需 2 分钟 引言 在Kotlin编程语言中,委托是一项强大的特性,它能够极大地简化代码,提高代码的可维护性。...本文将深入探讨Kotlin中的委托机制,介绍其原理、具体使用方式以及实际应用场景。 委托的原理 委托是一种通过将实际工作委托给其他对象来实现代码重用的机制。...在Kotlin中,委托通过关键字 by 来实现。我们将首先了解委托的基本原理,为后续的实例打下基础。 基本语法 Kotlin中的类可以通过关键字 by 委托给其他类。...委托的实际应用场景 Kotlin委托不仅可以用于简化代码结构,还可以在实际应用中发挥重要作用。...结论 通过本文的学习,我们深入了解了Kotlin中委托的原理和使用方式。委托不仅能够提高代码的可维护性,还能在实际应用中发挥重要作用。

20530

KotlinKotlin 函数总结 ( 具名函数 | 匿名函数 | Lambda 表达式 | 闭包 | 内联函数 | 函数引用 )

返回 Nothing 类型 ; TODO 函数原型如下 : /** * 总是抛出[NotImplementedError],表示操作实现。...; import kotlin.jvm.functions.Function2; import kotlin.jvm.internal.Intrinsics; import org.jetbrains.annotations.NotNull...---- 函数 作为参数 , 有两种方式 : 传递 Lambda 表达式 , 也就是 匿名函数 作为参数值 ; 传递 函数引用 作为参数值 ; 函数引用 可以将 具名函数 转为 函数的参数值 , 只要可以使用...Lambda 表达式 参数的地方 , 就可以使用 函数引用 进行替代 ; 函数引用格式 : 两个冒号 加上 函数名 , 就是函数引用 ; ::函数名 如下 doSomething 函数的 函数引用 是...在 匿名函数 C 中 , 可以引用 匿名函数 B , 函数 A 中的变量 和 全局变量 ; 在 函数 A 中 , 不能引用 匿名函数 B 和 匿名函数 C 中的变量 ; 在 匿名函数 B 中 ,

1.6K20
领券