kotlin constructor init companion object 与初始化by lazy

kotlin constructor init companion object 与初始化by lazy

 

class MyDemo(private var v: Int) {init {println("init $v")}constructor(m: Int, n: Int) : this(m) {println("constructor $m $n")}//只初始化一次companion object {private var TAG = "fly"init {println("companion object $TAG")}val instance: MyDemo by lazy {MyDemo(0)}}fun foo() {println("foo $v")}
}fun main(args: Array<String>) {MyDemo(1)MyDemo.instance.foo()println("---")MyDemo(2, 3)MyDemo.instance.foo()
}

 

companion object fly
init 1
init 0
foo 0
---
init 2
constructor 2 3
foo 0

 

 

 

kotlin用object实现单例模式,companion object与java静态_zhangphil的博客-CSDN博客kotlin中很容易使用object实现java中的单例模式。由于kotlin中没有static修饰词,可以用companion object实现Java中的static效果。kotlin用object实现单例模式,companion object与java静态。可以看到object定义的Singleton只初始化一次。方法 - mymethod。https://blog.csdn.net/zhangphil/article/details/129242135

kotlin懒加载lazy与lateinit延迟初始化_zhangphil的博客-CSDN博客lazy 用于单例模式,当且仅当变量被第一次调用时候,才会执行。lazy()第一次调用会执行并记录结果,后续调用只返回结果。lateinit 用于变量 var, lazy 用于常量 val。耗费很重资源初始化的类。https://blog.csdn.net/zhangphil/article/details/129262829

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/4085.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

死信是什么,如何运用RabbitMQ的死信机制?

系列文章目录 手把手教你&#xff0c;本地RabbitMQ服务搭建&#xff08;windows&#xff09; 消息队列选型——为什么选择RabbitMQ RabbitMQ 五种消息模型 RabbitMQ 能保证消息可靠性吗 推或拉&#xff1f; RabbitMQ 消费模式该如何选择 死信是什么&#xff0c;如何运用Rabbit…

Lesson1-1:OpenCV简介

图像处理 学习目标 了解图像的起源知道数字图像的表示 1 图像的起源 1.1 图像是什么 图像是人类视觉的基础&#xff0c;是自然景物的客观反映&#xff0c;是人类认识世界和人类本身的重要源泉。“图”是物体反射或透射光的分布&#xff0c;“像“是人的视觉系统所接受的图在…

OpenStack(T版)——对象存储(Swift)服务介绍与安装

文章目录 OpenStack(T版)——对象存储(Swift)服务介绍与安装安装和配置(controller)准备安装和配置Swift对象存储服务组件创建账户 Ring创建容器 Ring创建对象 RingSwift 存储系统的主配置文件修改文件属主 安装和配置(compute)准备配置Swift对象存储服务组件 验证(1)加载环境变…

java压测工具 Jmeter初使用

一. 下载及安装教程 1. 有博主总结的很好&#xff0c;这里直接放传送门&#xff1a; 【Jmeter】win 10 / win 11&#xff1a;Jmeter 下载、安装、汉化、新机迁移、版本更新&#xff08;Jmeter 4 以上版本均适用&#xff09; 2. Jmeter 自定义创建桌面快捷方式 3. JMeter插件…

I/O复用的高级应用三——同时处理TCP和UDP服务

截至目前学习&#xff0c;我们讨论过的服务器程序都只监听一个端口。但在实际应用中&#xff0c;有不少服务器程序能同时监听多个端口&#xff0c;比如超级服务inetd和android的调试服务adbd。 从bind系统调用的参数看&#xff0c;一个socket只能与一个socket地址绑定&#xff…

Amdahl定律

Amdahl定律 例:设改进前系统执行时间为3s,改进后系统执行时间为2s 则:加速比3/2 即计算机改进后比改进前快了1.5倍 Amdahl定律影响因素 公式推导 可改进的系统比例为fe,则不可改进的部分比例为(1-fe) 不可改进的部分耗时为T0 * (1- fe) 设改进后部件耗时为T&#xff0c;则…

RISC-V处理器的设计与实现(三)—— 上板验证(基于野火征途Pro开发板)

文章目录 RISC-V处理器的设计与实现&#xff08;一&#xff09;—— 基本指令集_Patarw_Li的博客-CSDN博客 RISC-V处理器的设计与实现&#xff08;二&#xff09;—— CPU框架设计_Patarw_Li的博客-CSDN博客 RISC-V处理器的设计与实现&#xff08;三&#xff09;—— 上板验…

考研算法35天:三元组的最小距离 【双指针,滑动窗口,多路归并】

算法详解 多路归并;多路归并算法从理论到应用&#xff08;易懂&#xff09;_留恋单行路的博客-CSDN博客 多路归并就是将多个已经归并排序排好序的数组再进行排序(不一定是通过归并排序)。 算法题目 这道题就是一般做法是先通过排序将三个数组排好然后再进行三指针求最小。但…

Tuxera NTFS2023Mac电脑免费U盘硬盘读写工具

Mac用户在使用NTFS格式移动硬盘时&#xff0c;会遇到无法写入硬盘的情况。要想解决无法写入的问题&#xff0c;很多人选择使用Mac读写软件。面对市面上“众多”的读写硬盘软件&#xff0c;用户应该怎么选择呢&#xff1f;初次接触移动硬盘的伙伴可能不知道移动硬盘怎么和电脑连…

CAT1模块 EC800M HTTP使用总结记录

分享记录一下 CAT1 模块EC800 HTTP 协议使用流程 ...... by 矜辰所致目录 前言一、基础说明1.1 CAT1 与 4G1.2 EC800M 模块1.3 HTTP 二、开始使用2.1 硬件设计部分2.2 模块上电流程2.3 PDP 上下文2.3.1 什么是 SGSN 和 GGSN &#xff1f; 三、 HTTP 流程3.1 客户端3.1.1 PDP 上…

NoSQL之 Redis 配置与优化

目录 一、关系型数据库与非关系型数据库1.1 关系型数据库&#xff1a;1.2 非关系型数据库1.3 关系型数据库和非关系数据库的区别1.3.1 数据存储方式不同1.3.2 扩展方式不同1.3.3 对事务性的支持不同 1.4 非关系型数据库的产生背景1.5 总结 二、Redis介绍三、 Redis 的优点四、 …

数据竞赛复现代码的 Docker 镜像制作指南

文章目录 一、前言二、主要内容1. Docker Desktop&#xff1f;2. VMware17 CentOS Linux Xshell 三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 主要的要求&#xff1a; 通过 Dockerfile 文件创建 Docker 镜像&#xff0c;数据…