首页
学习
活动
专区
工具
TVP
发布

【Kotlin】常用的 Kotlin 类 ① ( 嵌套类 | 数据类 | 数据类 copy 函数 | 数据类解构声明 operator fun component1 | 数据类运算符重载 )

格式如下 : class A { class B { } } 在 类 A 中调用 B , 可以直接使用 B() 进行调用 ; 在 外部调用 类 B 时 , 可以使用 A.B() 的形式进行调用 ; 在 Java...中内部类有 成员内部类 , 静态嵌套类 , 方法内部类 , 匿名内部类 几种类型 ; Kotlin 嵌套类 , 相当于 Java 中的 静态嵌套类 ; 代码示例 : 在下面的代码中 , 在 Person...双击 Shift , 选择 Show Kotlin Bytecode 选项 , 在 Kotlin Bytecode 界面 中 , 选择 Decompile 选项 , 将 字节码数据 反编译为 Java...Student 数据类 自动生成了一个 toString 方法 , 将其数据打印出来 ; 同时还 重写 Student 数据类 中的 equals 和 hashCode 函数 ; // Student.java...代码数据 , 反编译后的 Java 代码数据如下 : // Student.java import kotlin.Metadata; import kotlin.jvm.internal.Intrinsics

79820

【Kotlin】类的初始化 ③ ( init 初始化块 | 初始化顺序 : 主构造函数属性赋值 -> 类属性赋值 -> init 初始化块代码 -> 次构造函数代码 )

init 初始化块开始执行 次构造函数开始执行 Tom , 18 从上述执行结果上看 , 可以知道先执行 init 初始化块 , 然后执行 次构造函数 ; 查看 Kotlin 字节码 , 并将其反编译回 Java...代码 , 结果如下 : // HelloKt.java import kotlin.Metadata; @Metadata( mv = {1, 4, 2}, bv = {1, 0, 3}...// $FF: synthetic method public static void main(String[] var0) { main(); } } // Hello.java...u0010\u0002\u001a\u00020\u0003¢\u0006\u0002\u0010\u0007R\u001a\u0010\b\u001a\u00020\u0003X\u0086\u000e...¢\u0006\u000e\n\u0000\u001a\u0004\b\t\u0010\n\"\u0004\b\u000b\u0010\u0004R\u001a\u0010\f\u001a\u00020

1.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

【Kotlin】Kotlin 与 Java 互操作 ② ( @JvmField 注解字段给 Java | @JvmOverloads 注解修饰函数 | @JvmStatic 注解声明静态成员 )

文章目录 一、使用 @JvmField 注解暴露 Kotlin 字段给 Java 1、Java 类中通过 Getter 和 Setter 方法访问 Kotlin 字段 2、Java 类中直接访问被...Kotlin 字段给 Java ---- 1、Java 类中通过 Getter 和 Setter 方法访问 Kotlin 字段 在 Java 中是 不能直接访问 Kotlin 中的字段 的 , 必须...\u0010\u0003\u001a\u00020\u00042\b\b\u0002\u0010\u0005\u001a\u00020\u00062\b\b\u0002\u0010\u0007\u001a...\u00020\u00042\b\b\u0002\u0010\u0005\u001a\u00020\u00062\b\b\u0002\u0010\u0007\u001a\u00020\bH\u0007¨...\u00020\nR\u001a\u0010\u0003\u001a\u00020\u0004X\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0005

88230

【Kotlin】函数 ⑦ ( 内联函数 | Lambda 表达式弊端 | “ 内联 “ 机制避免内存开销 - 将使用 Lambda 表达式作为参数的函数定义为内联函数 | 内联函数本质 - 宏替换 )

普通函数代码示例 三、内联函数代码示例 一、内联函数 ---- 1、Lambda 表达式弊端 Lambda 表达式弊端 : Lambda 表达式 的 灵活使用 , 是以 牺牲内存开销为代价的 ; 在 Java...Kotlin 语言中提供了一种 " 内联 " 机制 , 解决了上面的 Lambda 表达式的 内存开销 问题 , 将 使用 Lambda 表达式 作为参数的函数 定义为 inline 内联函数 , Java...action: (String, Int) -> String) { val act = action(name, age); println(act) } 将字节码转换为 Java...\u0006\u0010\u0000\u001a\u00020\u0001\u001a0\u0010\u0002\u001a\u00020\u00012\u0006\u0010\u0003\u001a\...\u0006\u0010\u0000\u001a\u00020\u0001\u001a3\u0010\u0002\u001a\u00020\u00012\u0006\u0010\u0003\u001a\

1.1K10

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

机制避免内存开销 3、内联函数本质 - 编译时宏替换 4、内联函数不能递归 十七、普通函数代码示例 十八、内联函数代码示例 十九、函数引用作为函数参数 二十、函数类型作为函数返回值 二十一、闭包概念 二十二、Java...\u0006\u0010\u0000\u001a\u00020\u0001\u001a0\u0010\u0002\u001a\u00020\u00012\u0006\u0010\u0003\u001a\...u00020\u00042\u0006\u0010\u0005\u001a\u00020\u00062\u0018\u0010\u0007\u001a\u0014\u0012\u0004\u0012\u00020...\u0006\u0010\u0000\u001a\u00020\u0001\u001a3\u0010\u0002\u001a\u00020\u00012\u0006\u0010\u0003\u001a\...u00020\u00042\u0006\u0010\u0005\u001a\u00020\u00062\u0018\u0010\u0007\u001a\u0014\u0012\u0004\u0012\u00020

1.5K20

Java安全编码之SQL注入

随着互联网的发展,Java语言在金融服务业、电子商务、大数据技术等方面的应用极其广泛。Java安全编码规范早已成为SDL中不可或缺的一部分。...本文以Java项目广泛采用的两个框架Hibernate和MyBatis 为例来介绍,如何在编码过程中避免SQL注入的几种编码方法,包括对预编译的深度解析,以及对预编译理解的几个“误区”进行了解释。...备注,本文是Java语言安全编码会是系列文章的第一篇。 0x01框架介绍 目前Hibernate和MyBatis为java项目广泛采用的两个框架。...buf.append('r'); break; case '\u001a...mysql-connector-java里面有个非常巧妙的点是,他会根据你传入的类型判断。比如传入的为int类型。就会走setInt。传入的为string就会走setString。

1.6K10

Java技术体系------JDK、 JRE、 Java ME 、 Java SE 、Java EE

,Sun官方所定义的Java技术体系包括: Java程序设计语言 JavaAPI类库 运行于各个硬件平台上的虚拟机 Class文件格式 商业机构和开源社区的第三方Java类库 JDK:   包括Java...程序设计语言、JavaAPI类库、运行于各个硬件平台上的虚拟机,JDK是用于支持Java程序开发的最小环境; JRE: Java API类库中的Java SE API子集和Java虚拟机这两部分统称为...JRE与JDK的区别: JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。...JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。...Java SE: 支持面向桌面级应用的JAVA平台,提供了完整的Java核心API,这个版本以前称为J2SE。

2.2K40

Java】01 初识 Java

一、Java 简介 1.1 Java 发展史 —————— 选自 《 疯狂 Java 讲义(第四版)》    Java 语言的诞生具有一定的戏剧性,它并不是经过精心策划、制作,最后产生的划时代产品,从某个角度来看...这标志着 Java 已经吹响了向企业、桌面和移动三个领域进军的号角,标志着 Java 已经进入 Java2 时代,这个时期也是 Java 飞速发展的时期。   ...1.3 Java 相关概念 1.3.1 JVM    JVM 是 Java Virtual Machine( Java 虚拟机)的缩写,就是我们常说的java虚拟机。...Java 语言使用 Java 虚拟机屏蔽了与具体平台相关的信息,使得 Java 语言编译程序只需生成在 Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。   ...Java 虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java 语言的可移植性正是建立在 Java 虚拟机的基础上。

1.4K30

Java面试——Java基础

所有的 Java虚拟机实例必须在每个类或接口被 Java程序“首次主动使用”时才初始化它们。...八、java -> class -> 执行 ---- Java程序运行时,必须经过编译和运行两个步骤。首先将后缀名为.java的源文件进行编译,最终生成后缀名为.class的字节码文件。...Java.lang.ClassNotFoundException Java.lang.NoSuchMetodException Java.io.IOException Exception:一般分为 Checked...【1】Checked 异常:只有 java语言提供了 Checked异常,Java 认为 Checked异常都是可以被处理的异常,所以 Java程序必须显示处理 Checked异常。...【8】Date/Time API (JSR 310):Java 8 新的 Date-Time API (JSR 310)受Joda-Time的影响,提供了新的 java.time包,可以用来替代 java.util.Date

2.6K31
领券