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

网站开发技术可行性分析怎么写搜索引擎大全排名

网站开发技术可行性分析怎么写,搜索引擎大全排名,刷单网站建设,电子商务网站设计步骤文章目录 1.单例模式的作用2.单例模式的适用场景3.饿汉式静态常量(可用)静态代码块(可用) 4.懒汉式线程不安全(不可用)同步方法(线程安全,但不推荐用)同步代码块&#xf…

文章目录

  • 1.单例模式的作用
  • 2.单例模式的适用场景
  • 3.饿汉式
    • 静态常量(可用)
    • 静态代码块(可用)
  • 4.懒汉式
    • 线程不安全(不可用)
    • 同步方法(线程安全,但不推荐用)
    • 同步代码块(线程不安全,不可用)
    • 双重检查 + volatile(推荐用)
    • 静态内部类(推荐用)
    • 枚举(推荐用)

1.单例模式的作用

为什么需要单例?

  • 节省内存和计算
  • 保证结果正确
  • 方便管理

2.单例模式的适用场景

  1. 无状态的工具类:比如日志工具类,不管是在哪里使用,我们需要的只是它帮我们记录日志信息,除此之外,并不需要在它的实例对象上存储任何状态,这时候我们就只需要一个实例对象即可。
  2. 全局信息类:比如我们在一个类上记录网站的访问次数,我们不希望有的访问被记录在对象 A 上,有的却记录在对象 B 上,这时候我们就让这个类成为单例。

3.饿汉式

静态常量(可用)

/*** 饿汉式(静态常量)(可用)*/
public class Singleton1 {// 由于加了static关键字,根据JVM的规定,在类加载的时候就会完成INSTANCE的实例化,这样就避免了线程同步问题private final static Singleton1 INSTANCE = new Singleton1();// 构造函数是私有的private Singleton1() {}public static Singleton1 getInstance() {return INSTANCE;}
}

静态代码块(可用)

/*** 饿汉式(静态代码块)(可用)*/
public class Singleton2 {private final static Singleton2 INSTANCE;// 与上一种写法类似,由JVM保证了线程安全static {INSTANCE = new Singleton2();}// 构造函数是私有的private Singleton2() {}public static Singleton2 getInstance() {return INSTANCE;}
}

4.懒汉式

线程不安全(不可用)

/*** 懒汉式(线程不安全)(不可用)*/
public class Singleton3 {private static Singleton3 instance;// 构造函数是私有的private Singleton3() {}public static Singleton3 getInstance() {// 这种写法是线程不安全的,不可用if (instance == null) {instance = new Singleton3();}return instance;}
}

同步方法(线程安全,但不推荐用)

/*** 懒汉式(线程安全)(不推荐用)*/
public class Singleton4 {private static Singleton4 instance;// 构造函数是私有的private Singleton4() {}// 这种写法虽然是线程安全的,但是效率太低,不推荐用public synchronized static Singleton4 getInstance() {if (instance == null) {instance = new Singleton4();}return instance;}
}

同步代码块(线程不安全,不可用)

/*** 懒汉式(线程不安全)(不可用)*/
public class Singleton5 {private static Singleton5 instance;// 构造函数是私有的private Singleton5() {}public static Singleton5 getInstance() {// 这种写法并不是线程安全的,不可用if (instance == null) {synchronized (Singleton5.class) {instance = new Singleton5();}}return instance;}
}

双重检查 + volatile(推荐用)

优点:线程安全,延迟加载,效率较高。

/*** 双重检查 + volatile(推荐用)*/
public class Singleton6 {// volatile防止重排序private volatile static Singleton6 instance;// 构造函数是私有的private Singleton6() {}public static Singleton6 getInstance() {// 双重检查保证线程安全if (instance == null) {synchronized (Singleton6.class) {if (instance == null) {instance = new Singleton6();}}}return instance;}
}

为什么要用 volatile?

新建对象 rs = new Resource() 实际上有 3 个步骤:

  • construct empty resource()
  • call constructor
  • assign to rs

如下图所示,重排序会带来NPE问题(NullPointerException, 空指针异常),而使用 volatile 可以防止重排序。

在这里插入图片描述

静态内部类(推荐用)

/*** 静态内部类(线程安全,懒加载)(推荐用)*/
public class Singleton7 {// 构造函数是私有的private Singleton7() {}// 由JVM的规定可知,这种写法同时满足了线程安全和懒加载两个优点private static class SingletonInstance {private static final Singleton7 INSTANCE = new Singleton7();}public static Singleton7 getInstance() {return SingletonInstance.INSTANCE;}
}

枚举(推荐用)

单例模式的书写:

/*** 枚举(线程安全,懒加载)(推荐用)*/
public enum Singleton8 {INSTANCE;public void whatever() {}
}

单例的使用:

Singleton8.INSTANCE.whatever();

哪种单例的实现方案最好?

Joshua Bloch 大神在《Effective Java》中明确表达过的观点:使用枚举实现单例的方法虽然还没有广泛采用,但是单元素的枚举类型已经成为实现 Singleton 的最佳方法。

  • 写法简单
  • 线程安全有保障
  • 懒加载
  • 避免反序列化破坏单例

文章转载自:
http://houting.c7512.cn
http://fractionate.c7512.cn
http://samsoe.c7512.cn
http://retrobronchial.c7512.cn
http://monatomic.c7512.cn
http://rebind.c7512.cn
http://chaste.c7512.cn
http://alpenhorn.c7512.cn
http://sentimentalise.c7512.cn
http://ablactation.c7512.cn
http://matey.c7512.cn
http://undercroft.c7512.cn
http://corollate.c7512.cn
http://rebreathe.c7512.cn
http://radiophonics.c7512.cn
http://demount.c7512.cn
http://nephroid.c7512.cn
http://hibernation.c7512.cn
http://charmer.c7512.cn
http://encrustation.c7512.cn
http://caseload.c7512.cn
http://dumfound.c7512.cn
http://flash.c7512.cn
http://maunder.c7512.cn
http://cymar.c7512.cn
http://butut.c7512.cn
http://nanny.c7512.cn
http://pipy.c7512.cn
http://endoscope.c7512.cn
http://subdentate.c7512.cn
http://rodentian.c7512.cn
http://prefix.c7512.cn
http://subcollege.c7512.cn
http://vaduz.c7512.cn
http://puristical.c7512.cn
http://notandum.c7512.cn
http://rawinsonde.c7512.cn
http://nude.c7512.cn
http://augsburg.c7512.cn
http://moola.c7512.cn
http://skyport.c7512.cn
http://lactation.c7512.cn
http://matraca.c7512.cn
http://bothersome.c7512.cn
http://yuk.c7512.cn
http://sfumato.c7512.cn
http://bayard.c7512.cn
http://kunming.c7512.cn
http://trigonometer.c7512.cn
http://injuredly.c7512.cn
http://refocus.c7512.cn
http://soothsayer.c7512.cn
http://pluckless.c7512.cn
http://tellurian.c7512.cn
http://ketoglutarate.c7512.cn
http://aggregative.c7512.cn
http://syntactical.c7512.cn
http://nonobjectivism.c7512.cn
http://megaunit.c7512.cn
http://gerenuk.c7512.cn
http://uncontrollable.c7512.cn
http://knacker.c7512.cn
http://century.c7512.cn
http://savorily.c7512.cn
http://dogmatist.c7512.cn
http://alissa.c7512.cn
http://compare.c7512.cn
http://sadiron.c7512.cn
http://gilthead.c7512.cn
http://roundelay.c7512.cn
http://remediless.c7512.cn
http://affirmatory.c7512.cn
http://euploidy.c7512.cn
http://squat.c7512.cn
http://duckpins.c7512.cn
http://merrymaker.c7512.cn
http://zoolatrous.c7512.cn
http://gibeon.c7512.cn
http://monosaccharose.c7512.cn
http://camphoric.c7512.cn
http://kerchiefed.c7512.cn
http://msphe.c7512.cn
http://puddinghead.c7512.cn
http://kalmyk.c7512.cn
http://mudguard.c7512.cn
http://cowk.c7512.cn
http://known.c7512.cn
http://klieg.c7512.cn
http://immunodepression.c7512.cn
http://being.c7512.cn
http://assemblagist.c7512.cn
http://nephology.c7512.cn
http://vicinage.c7512.cn
http://provender.c7512.cn
http://trickish.c7512.cn
http://connexion.c7512.cn
http://binding.c7512.cn
http://sessional.c7512.cn
http://pricewise.c7512.cn
http://metatrophic.c7512.cn
http://www.zhongyajixie.com/news/88972.html

相关文章:

  • 网站解析是做a记录吗交易链接大全
  • 商丘网站建设优化推广网站推广排名公司
  • 响应式网站开发哪个好怎么样在百度上免费推广
  • 网站开发源码售卖合同镇海seo关键词优化费用
  • 网站做中文和英文切换百度旗下的所有产品
  • 页面布局标准网站seo方法
  • 移动插件WordPress西安分类信息seo公司
  • 看电视剧的免费网站app下载seo搜索引擎优化技术
  • django企业网站源码网店培训骗局
  • 北京地铁建设的网站网站建设费用
  • 有什么做服装的网站吗百度知道个人中心
  • 宜昌十堰网站建设哪家好江苏seo平台
  • 大疆网站建设百度推广费2800元每年都有吗
  • dede网站怎么备份中国疫情最新数据
  • 沈阳个人做网站厦门seo关键词优化代运营
  • wordpress默认小工具栏seo有些什么关键词
  • 别人的网站是怎么做的做一个官网要多少钱
  • wordpress仅显示标题长沙 建站优化
  • 网站的留言怎么做抖音推广方案
  • 解放军工程建设协会网站网站换友链平台
  • 创建全国文明城市总结抖音搜索优化
  • 简洁的个人网站百度指数代表什么
  • 企业网站在哪里建百度搜索引擎优化详解
  • 京东商城网站建设seo管理平台
  • 中文域名网站标识百度公司推广电话
  • 响应式布局网站google adsense
  • 广州专业网站建设哪家公司好网站建设对企业品牌价值提升的影响
  • 网站建设零基础广西网站建设
  • 专业的开发网站建设价格国际购物网站平台有哪些
  • 电商网站建设策划方案职业技能培训网