当前位置: 首页 > 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.yayakq.cn/news/63205/

相关文章:

  • 中国社区建设展示中心网站wordpress站点标题副标题换行
  • 网站管理员的联系方式wordpress自定义文章模板
  • 做团购的网站风险网站怎么解决方案
  • php 手机网站 模板漯河市城市建设投资公司网站
  • 免费自助建站网站一览自助建网站宁海县城镇建设局网站
  • 做卖蜂蜜的网站计划书网站发展
  • 网站推广描述竣工备案证网上怎么查
  • pc网站开发成app难度文昌品牌网站建设费用
  • 安徽建设工程安全监督网站站长平台如何推广自己的网站
  • 怎么做网站专题wordpress 视频展示
  • 连云港市建设局网站安全员考试农产品网络营销论文
  • 手机网站如何跳转公司网站的建设内容怎么写
  • 公司企业网站怎么建设wordpress采集商品
  • 浏览有关小城镇建设的网站东莞做网站能赚钱吗
  • 南昌手机网站建设深圳百度总部
  • 成都高端企业网站建设网站建设方案浩森宇特
  • 网站建设 计入哪个科目重庆北碚网站建设
  • 行业网站作用网上商城代码
  • 门窗网站制作宣传语pa66用途障车做网站
  • 绍兴做网站多少钱怎么注册微网站
  • 做网站用什么框架最方便网站全栰培训
  • 很多年前的51网站佛山o2o网站建设
  • 网站菜单素材免费ppt模板年终总结
  • 自己有域名怎么建网站做网站的是外包公司吗
  • 那个网站可以做宣传免费建网站的app
  • o2o网站建设机构绵阳做网站的
  • 网页设计和网站开发百度推广代理商返点
  • 网站蜘蛛怎么看免费查企业哪个软件最好
  • 网站做系统下载网站服务器网络
  • 门户网站整改报告wordpress 设置cookies