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

freenom怎么做网站搜索引擎营销方式

freenom怎么做网站,搜索引擎营销方式,wordpress运行crawling,唐山做网站哪家公司好为什么使用单例? 避免重复创建对象,节省内存,方便管理;一般我们在工具类中频繁使用单例模式; 1.饿汉式(静态常量)-[可用] /*** 饿汉式(静态常量)*/ public class Singleton1 {private static final Singleton1 INSTANCE new Singleton1();private Singleton1(){}…

为什么使用单例?

        避免重复创建对象,节省内存,方便管理;一般我们在工具类中频繁使用单例模式;

1.饿汉式(静态常量)-[可用]

/*** 饿汉式(静态常量)*/
public class Singleton1 {private static final Singleton1 INSTANCE = new Singleton1();private Singleton1(){}public static Singleton1 getInstance(){return INSTANCE;}
}

2.饿汉式(静态代码块)[可用]

/*** 饿汉式(静态代码块)*/
public class Singleton2 {private static final Singleton2 INSTANCE;static {INSTANCE = new Singleton2();}private Singleton2(){}public static Singleton2 getInstance(){return INSTANCE;}
}

3.懒汉式(同步方法)[不推荐]

/*** 懒汉式(同步方法)*      不推荐:效率太低了*/
public class Singleton3 {private static Singleton3 instance;private Singleton3(){}public synchronized static Singleton3 getInstance(){if(instance == null){instance = new Singleton3();}return instance;}
}

4.双重检查(有空指针问题)[面试用]

/*** 双重检查-推荐面试使用*/
public class Singleton4 {private static Singleton4 instance;private Singleton4(){}public static Singleton4 getInstance(){if(instance == null){ // 检查一synchronized (Singleton4.class){if(instance == null){ // 检查二instance = new Singleton4();}}}return instance;}
}

双重检查优点:

        线程安全,延迟加载,效率较高;

5.双重检查进阶版(volatile)[推荐]

使用volatile目的在于,禁止创建对象时的3个步骤发生重排序,防止创建出的对象空指针问题;

/*** 双重检查 + volatile(禁止创建对象时3个步骤执行流程重排序,防止创建出的对象空指针问题)*/
public class Singleton5 {// 加上volatile防止新建对象时重排序带来的“空指针”问题private volatile static Singleton5 instance;private Singleton5(){}public static Singleton5 getInstance(){if(instance == null){ // 检查一synchronized (Singleton5.class){/*** 为什么使用volatile修饰instance?*      1.新建对象操作不是原子性操作,其由三个操作构成(instance = new Singleton5(););*          1.1.创建一个空的instance;*          1.2.调用构造方法;*          1.3.将创建好的对象赋值给instance实例;*      2.因为创建对象操作不是原子性操作,所以使用volatile来禁止创建对象时重排序*      3.如果不使用volatile修饰instance实例,则创建对象时被JVM重排序后的执行流程可能如下(即出现“空指针问题”)*          1.2 -> 1.1 -> 1.3*/if(instance == null){ // 检查二instance = new Singleton5();}}}return instance;}
}

 6.静态内部类[推荐]

* 静态内部类(可用)*      原理:*          外部类加载时并不需要立即加载内部类,内部类不被加载则不去初始化INSTANCE故不占内存。*          只有当getInstance()方法第一次被调用时才会去初始化INSTANCE,第一次调用getInstance()方法才会使虚拟机加载SingletonInstance类(实现懒加载)*          因为SingletonInstance类中INSTANCE实例是被static final修饰所以只会被初始化一次,后续调用会直接返回实例不需要进行同步操作;*/
public class Singleton6 {private Singleton6(){}private static class SingletonInstance{private static final Singleton6 INSTANCE = new Singleton6();}public static Singleton6 getInstance(){return SingletonInstance.INSTANCE;}
}

7.枚举[推荐(开发中使用最好)]

/*** 枚举*/
public enum  Singleton7 {INSTANCE;public void todoSomething(){System.out.println("我是枚举实现单例模式中的一个普通业务方法...");}// 调用public static void main(String[] args) {Singleton7.INSTANCE.todoSomething();}
}

8.单例模式面试题

8.1.饿汉式的缺点?

                没有实现懒加载,容易造成资源的浪费;

8.2.懒汉式的缺点?

                为保证线程安全使用同步方法效率低;

8.3.为什么使用“双重检查”不用就不安全吗?

         “双重检查”代码中只做第一次检查是线程不安全的;容易创建多个对象。若不用双重检查也可以使用synchronized去修饰获取实例方法来保证线程安全(类似于懒汉式的同步方法);

8.4.双重检查为什么要使用volatile?

1.新建对象操作不是原子性操作,其由三个操作构成(比如:instance = new Singleton5(););
        1.1.创建一个空的instance;
        1.2.调用构造方法;
        1.3.将创建好的对象赋值给instance实例;
2.因为创建对象操作不是原子性操作,所以使用volatile来禁止创建对象时JVM重排序问题;
3.如果不使用volatile修饰instance实例,则创建对象时被JVM重排序后的执行流程可能如下(“空指针问题”),若创建出来的对象为null,由于“可见性”问题,下次去获取实例时还是会创建多个对象;
JVM重排序后执行流程可能为:(即出现空指针问题)

        1.2 -> 1.1 -> 1.3

8.5.在生产中用哪种单例的实现方案最好?

使用枚举的方式实现单例最好;

  1.写法简单;

  2.线程安全;

        原因:枚举类会被JVM编译成final修饰的class其继承了枚举这个父类,在父类中各个实例都是

                   使用static定义的,所以枚举的本质就是一个静态编译的对象;

   3.懒加载;

   4.防止反序列化重新创建对象;

http://www.hkea.cn/news/850120/

相关文章:

  • wordpress知言主题山东服务好的seo公司
  • 旅游商务平台网站建设功能需求关键词排名查询官网
  • 做网站要搭建本地服务器么微商引流被加方法精准客源
  • 网站名字要备案吗友情链接怎么弄
  • 江苏网站开发外链网站大全
  • 网站代备案流程图百度关键词优化排名技巧
  • 石狮建设局网站今日头条站长平台
  • 修改公司网站网页站长素材音效
  • 网站速度测速免费访问国外网站的app
  • 常州网站搭建公司宣传推广渠道有哪些
  • 中国建设监理网站广告网络
  • 网站维护费用怎么收路由优化大师官网
  • 如何加入小说网站做打字员合肥网站优化推广方案
  • 网站建设现状关键词在线优化
  • 网站建设就业百度网址导航主页
  • 郑州公司做网站汉狮中囯联通腾迅
  • 专业网上购物平台优化网站的步骤
  • 用web开发一个网站怎么做网站推广优化平台
  • 建设企业网站进去无法显示搜索引擎seo
  • 网站 分辨率百度视频推广
  • 中国红河网seo排名工具
  • 做网站商丘3a汽车集团公司网络营销方案
  • 网络宣传推广策划范文seo如何优化排名
  • 网站 建设 原则新闻今天的最新新闻
  • 服装网站首页设计主要推广手段免费
  • 网站建设公司做销售好不好?seo搜索引擎优化实训总结
  • 江西威乐建设集团有限公司企业网站长春关键词优化公司
  • 深圳网站建设lxhd英文关键词seo
  • 在线购物商城网站百度移动端排名软件
  • 太原网站的公司友情链接的英文