自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Kotlin 中对象初始化的几个坑点

可以看到类级别别的属性赋值的初始化优先级是高于init 初始化块里的属性赋值的。按照上面这个顺序,baseBonus应该在 init 代码块执行之前就初始化好了啊。这里虽然不会报错,但是显然在 name 初始化之前就调用了 getFirstNameChar 方法,里面获取了name的第一个字符。这时候会报空指针错误。2. initPlayerName 返回还未初始化的 name 属性并且赋值给了 playerName 属性,因此playerName 也为空。后才初始化好的,这也是为什么调换顺序会报错。

2025-11-24 17:09:10 344

原创 Kotlin 里创建对象时的初始化顺序

可以发现:主构造函数里面的 age 属性最先被赋值,然后再是类级别的属性:name、score、hobby 被赋值,随后是 init 代码块里面的逻辑被执行,最后是次构造函数里面的逻辑被执行。Kotlin 里面有主构造方法、init 方法块、次构造方法,那在初始化的时候,它们执行的顺序是怎样的呢?

2025-11-24 16:15:52 26

原创 Kotlin 的内联函数

在 Kotlin 中,inline如果没有使用内联函数,那么我们给函数传 Lambda 时,编译器会悄悄创建一个匿名类实例。而inline—— 相当于 “复制粘贴代码”,消除中间开销。

2025-11-21 11:02:28 316

原创 Kotlin中的解构

非数据类若要支持解构,需手动定义函数(N从 1 开始),且函数必须用operator// 手动定义组件函数val (title, price) = book // 解构自定义类println("《$title》价格:$price") // 输出:《Kotlin in Action》价格:89.0。

2025-11-14 14:39:59 155

原创 Kotlin 中常见的高阶函数

Kotlin 集合框架提供了大量高阶函数,用于简化遍历、筛选、转换等操作,避免传统的。),它们都是高阶函数,用于在对象的作用域内执行代码块,简化对象初始化、属性设置等操作。),将集合中的每个元素通过该函数转换为新类型或者进行映射,返回新集合。),先将每个元素转换为子集合,再将所有子集合合并为一个扁平集合。指代对象,返回对象本身,适合执行附加操作(如日志、打印)。指代对象,返回函数结果(语法上是独立函数,非扩展函数)。指代对象,返回对象本身,适合设置多个属性。),在指定调度器执行代码,返回结果。

2025-11-13 19:35:39 314

原创 Kotlin 协程的使用方法

能够让当前协程暂时挂起,暂停往下执行。当 await 方法有返回值后,会恢复协程,继续往下执行。:协程构建函数的返回值,可以把 Job 看成协程对象本身,包含了对协程的控制方法。在 Kotlin 中,我们可以使用协程构建器来创建协程。是 Job 的子类,

2025-10-15 17:49:56 445

原创 Kotlin中的标准函数和静态函数

作用:可以在连续调用同一个对象的多个方法时让代码变得更加精简案例:打印水果。

2025-08-14 10:52:23 305

原创 Activity 的启动模式

复习安卓开发经典知识。

2025-08-05 20:05:22 982

原创 SpringBoot 操作 ElasticSearch

本文只涉及一些基本操作!

2025-05-21 20:45:54 689

原创 JVM 学习笔记(内存结构部分)

JVM:Java虚拟机JRE:Java运行时环境 = JVM+基础类库JDK:Java开发工具包 = JVM+基础类库+编译工具。

2025-05-20 21:17:56 1883

原创 Rand7()实现Rand10()

Lc 中一道有意思的题目:给定方法rand7可生成[1,7]范围内的均匀随机整数,试写一个方法rand10生成[1,10]范围内的均匀随机整数。你只能调用rand7()且不能调用其他方法。并且不能使用系统的方法。

2025-05-13 20:17:58 334

原创 SpringCloud Openfeign 实现请求拦截

使用远程调用后,我们有时候希望在请求到达之前进行请求的拦截,实现用户权限验证、权限控制等功能。这时候可以使用 Openfeign 的请求拦截器。注册到 IOC 容器中,并且实现 apply方法,apply() 内部逻辑就是请求拦截器拦截请求后执行的逻辑。我们将之前用请求拦截器添加的字段取出来并打印,发现请求拦截器的确向请求头中添加了对应字段,验证成功。这里我在 order 服务中将请求拦截器注册到 IOC容器中,并且。根据 OpenFeign 官方文档,

2025-05-13 16:07:42 511

原创 SpringBoot 如何使用 openfeign

1. 想要使用 openfeign 实现服务之间的远程调用,需要先在需要远程调用的服务中添加注解。2. 使用@FeignClient(value = "远程服务的名称") 注解创建好远程调用的客户端。并且在内部填写需要调用的远程服务的接口,注意写上对应的注解(@GetMapping/@PostMapping),填好路径参数。3. 在服务中通过依赖注入远程调用的客户端,在业务中直接调用这个远程服务的接口即可。

2025-05-13 09:56:06 1159

原创 SpringBoot 对 SpringCloud Nacos 的文件配置

如:开发环境(dev)、测试环境(test)、生产环境(prod),并且每种环境的配置项都不相同。比如:测试环境定时任务的时间要设置的短一些,方便测试整个流程,而生产环境的定时任务时间则不能设置这么短。该配置表示当处于 dev (开发环境)的时候,需要引入: common.properties、database.properties 这两个配置文件。其中:${表示将上面 spring.profiles.active 这里的配置项(prod)填充到这里},即选择生产环境。不同微服务的配置项自然也不相同。

2025-05-12 22:11:53 1430 1

原创 使用 Nacos 监听配置变化

如果我们需要监听配置变化,并且在配置变化之后进行进一步操作,比如:拿到这个配置变化后的值,发送短信通知开发者。获取到 configService,然后 用。在应用启动完成后执行一些监听配置变化的逻辑。发现确实可以监听到对应配置文件的变更。第三个参数则是监听器,可以在里面的。可以看到确实是在项目启动后执行了。方法中添加配置变更之后的业务逻辑。

2025-05-12 20:24:23 537 1

原创 子集 II ,一道有趣的回溯算法题

st[i - 1] 表示当前走到了第二个2,说明第一个2已经遍历过了并且 [ 1,2 ] 这个结果已经被收集,此时需要跳过 [1,2(第二个2)],防止组合重复。例如:nums=[1,2,2] 可能在一次遍历当中选择了第一个2,得到 [1,2],又在之后选择了第二个2,又得到 [1,2],我们需要对这种情况进行去重。此时我们不仅需要考虑对像 [1,2]、[2,1] 这种解集去重,还需要考虑可能会产生两个 [1,2] 的这种情况。刷回溯算法的时候遇到的一道有趣的题目,和。举例: nums=[1,2,2]

2025-05-12 19:19:16 319 1

原创 Nacos 做配置中心的基本用法

然后再 order-service 的 controller 层通过。表示我们当前禁用配置导入检查。这时候再启动程序就不会报错了。如果想要在配置中心中实现配置修改的实时更新,则需要加上。接着在 Nacos界面新建配置,注意配置名称和。然后再 service-order 的。-- 配置中心-->

2025-05-12 16:40:50 508 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除