当前位置: 首页 > news >正文

学校网站维护怎么做班级优化大师免费下载电脑版

学校网站维护怎么做,班级优化大师免费下载电脑版,网站描述怎么设置,威海市建设局网站目录 1、饿汉模式 Java 写法: Kotlin 写法: Kotlin 这段代码反编译&简化后如下: 2、懒汉模式,静态同步方法 Java 写法: Kotlin 写法: Kotlin 这段代码反编译&简化后如下: 3、懒…

目录

1、饿汉模式

Java 写法:

Kotlin 写法:

Kotlin 这段代码反编译&简化后如下:

2、懒汉模式,静态同步方法

Java 写法:

Kotlin 写法:

Kotlin 这段代码反编译&简化后如下:

3、懒汉模式,双重检查 + 同步代码块

Java 写法:

Kotlin 写法:

Kotlin 这段代码反编译&简化后如下:

4、枚举方式

Java 写法:

Kotlin 写法:

5、静态内部类 + 静态代码块

Java 写法:

Kotlin 写法之一:

Kotlin 这段代码反编译&简化后 如下:

6、其他写法

Java 的一种写法:

Kotlin 的一种写法:


1、饿汉模式

Java 写法:

public class SingletonDemo1 {private static SingletonDemo1 INSTANCE = new SingletonDemo1();private SingletonDemo1() {}public static SingletonDemo1 getInstance() {return INSTANCE;}}

Kotlin 写法:

object SingletonDemo1 {}

Kotlin 这段代码反编译&简化后如下:

public final class SingletonDemo1 {@NotNullpublic static final SingletonDemo1 INSTANCE = new SingletonDemo1();private SingletonDemo1() {}
}

2、懒汉模式,静态同步方法

Java 写法:

public class SingletonDemo2 {private volatile static SingletonDemo2 INSTANCE;private SingletonDemo2() {}public synchronized static SingletonDemo2 getInstance() {if (INSTANCE == null) {INSTANCE = new SingletonDemo2();}return INSTANCE;}}

Kotlin 写法:

class SingletonDemo2 private constructor() {companion object {private var INSTANCE: SingletonDemo2? = nullget() {if (field == null) {field = SingletonDemo2()}return field}@Synchronizedfun get(): SingletonDemo2 {return INSTANCE!!}}}

Kotlin 这段代码反编译&简化后如下:

public final class SingletonDemo2 {@NotNullpublic static final Companion Companion = new Companion();private static SingletonDemo2 INSTANCE;private SingletonDemo2() {}public static final class Companion {private Companion() {}@NotNullpublic final synchronized SingletonDemo2 get() {if (SingletonDemo2.INSTANCE == null) {SingletonDemo2.INSTANCE = new SingletonDemo2();}return SingletonDemo2.INSTANCE;}}public static void main(String[] args) {//调用方式SingletonDemo2 sd = SingletonDemo2.Companion.get();}
}

3、懒汉模式,双重检查 + 同步代码块

Java 写法:

public class SingletonDemo3 {private volatile static SingletonDemo3 INSTANCE;private SingletonDemo3() {}public static SingletonDemo3 getInstance() {if (INSTANCE == null) {synchronized (SingletonDemo3.class) {if (INSTANCE == null) {INSTANCE = new SingletonDemo3();}}}return INSTANCE;}}

Kotlin 写法:

这段代码涉及到高阶函数和属性委托。

Lazy 内部实现类中包含了双重判断和同步锁代码块。

class SingletonDemo3 private constructor() {companion object {val INSTANCE: SingletonDemo3 by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {SingletonDemo3()}}}

Kotlin 这段代码反编译&简化后如下:

public final class SingletonDemo2 {@NotNullpublic static final SingletonDemo2.Companion Companion = new SingletonDemo2.Companion();@NotNullprivate static final Lazy INSTANCE$delegate;private SingletonDemo2() {}static {INSTANCE$delegate = LazyKt.lazy(LazyThreadSafetyMode.SYNCHRONIZED, (Function0)null.INSTANCE);}public static final class Companion {private Companion() {}@NotNullpublic final SingletonDemo2 getINSTANCE() {Lazy var1 = SingletonDemo2.INSTANCE$delegate;Object var2 = null;return (SingletonDemo2)var1.getValue();}}
}

4、枚举方式

Java 写法:

public enum SingletonDemo4 {INSTANCE;public void otherMethod() {}}

Kotlin 写法:

enum class SingletonDemo4 {INSTANCE;fun otherMethod() {}
}

枚举就不反编译了,没什么区别。

5、静态内部类 + 静态代码块

Java 写法:

public class SingletonDemo5 {private static class SingletonHolder {private static final SingletonDemo5 INSTANCE = new SingletonDemo5();}private SingletonDemo5() {}public static final SingletonDemo5 getInstance() {return SingletonHolder.INSTANCE;}}

Kotlin 写法之一:

class SingletonDemo5 private constructor() {companion object {val INSTANCE = SingletonHolder.holder}private object SingletonHolder {val holder = SingletonDemo5()}}

Kotlin 这段代码反编译&简化后 如下:

public final class SingletonDemo100 {@NotNullpublic static final SingletonDemo100.Companion Companion = new SingletonDemo100.Companion();@NotNullprivate static final SingletonDemo100 INSTANCE;private SingletonDemo100() {}static {INSTANCE = SingletonDemo100.SingletonHolder.INSTANCE.getHolder();}public static final class Companion {private Companion() {}@NotNullpublic final SingletonDemo100 getINSTANCE() {return SingletonDemo100.INSTANCE;}}private static final class SingletonHolder {@NotNullpublic static final SingletonDemo100.SingletonHolder INSTANCE = new SingletonDemo100.SingletonHolder();@NotNullprivate static final SingletonDemo100 holder = new SingletonDemo100();@NotNullpublic final SingletonDemo100 getHolder() {return holder;}}
}

6、其他写法

Java 的一种写法:

通过静态代码块方式,借助虚拟机在类加载时创建对象。

public class SingletonDemo6 {private volatile static SingletonDemo6 INSTANCE;static {INSTANCE = new SingletonDemo6();}private SingletonDemo6() {}public static SingletonDemo6 getInstance() {return INSTANCE;}}

Kotlin 的一种写法:

网上看别人写的,有创意,但是也很奇怪,无法完整反编译。

class SingletonDemo10 private constructor(private val property: Int) {companion object {@Volatileprivate var INSTANCE: SingletonDemo10? = nullfun getInstance(property: Int): SingletonDemo10 {return INSTANCE ?: synchronized(this) {INSTANCE ?: SingletonDemo10(property).also { INSTANCE = it }}}}}

http://www.dt0577.cn/news/27210.html

相关文章:

  • 知名做网站公司软文拟发布的平台与板块
  • 唐山建站公司网页搜索
  • 怎么自己做网站吗网站优化方案
  • 大连宏帝建设网站2023疫情第三波爆发时间
  • 美国空间怎么提高网站速度搜索引擎有哪些软件
  • 介绍家乡的网站怎么做重庆seo整站优化设置
  • 大型网站后台用什么语言蚁坊软件舆情监测系统
  • 怎么做流量网站免费下载b站视频软件
  • 做网站的公司排名企业seo排名
  • 云主机网站源码日本比分预测最新分析
  • 怎么做视频还有网站吗重庆网站关键词排名优化
  • 免费好用的网站制作石家庄疫情最新情况
  • 建筑工程网站开发全国疫情最新
  • 深圳做网站比较好的公司有哪些优化设计答案四年级上册语文
  • qq免费搭建网站跨境电商关键词工具
  • 建设监督网站定制网站建设推广服务
  • 研发网站要多长时间肇庆网站快速排名优化
  • 苏州住房和城乡建设厅网站乐陵市seo关键词优化
  • 石家庄网站开发报价揭阳百度seo公司
  • 陇南市建设局网站百度指数可以查询多长时间的
  • 建网站公司是如何赚钱网络舆情的网站
  • 2021年十大购物网站排名市场推广怎么写
  • 强企网做网站网络销售都是诈骗公司吗
  • 58同城泰安二手房出售信息百度网站的优化方案
  • 东莞网站优化排名系统管理培训课程
  • 建设通网站登录不进去百度关键词查询工具免费
  • 网站建设手机端官网seo短视频网页入口营销
  • wordpress怎么私人媒体库seo还有未来吗
  • 广州专业网站制作平台哪里有免费的网站推广
  • 广州建企业网站有免费推广平台