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

如何做别人网站镜像南昌集团制作网站设计

如何做别人网站镜像,南昌集团制作网站设计,wordpress module破解,做h5的网站的区别单列模式是一种经典的设计模式#xff0c;在校招中最乐意考的设计模式之一~ 设计模式就是软件开发中的棋谱#xff0c;大佬们针对一些常见的场景#xff0c;总结出来的代码的编写套路#xff0c;按照套路来写#xff0c;不说你写的多好#xff0c;至少不会太差~ 在校招中…单列模式是一种经典的设计模式在校招中最乐意考的设计模式之一~ 设计模式就是软件开发中的棋谱大佬们针对一些常见的场景总结出来的代码的编写套路按照套路来写不说你写的多好至少不会太差~ 在校招中主要考察两个设计模式单列模式工厂模式 本文主要讲解单列模式 单列《——》单列模式instance)对象 一个程序中某个类只创建出一个实列对象——》不能创建多个对象 Java中的单列模式借助Java语法保证某个类只能创建出一个实列而不能new多次有些场景本身就是要求某个概念是单列的 在Java语法中如何做出单列模式的实现呢 Java中实现单列模式的有很多种写法起码有5/6种写法但是课堂上主要说两种 饿汉模式饥饿懒汉模式从容 饿汉吃完饭就立刻去洗碗 懒汉吃完饭之后先把碗放到一边等到下一顿吃的时候需要用到碗了再洗通常认为懒汉模式更好效率更高 比如中午吃饭用了4个碗 饿汉吃完就得把4个碗都洗了 懒汉晚上吃饭只用2个碗此时只需要洗2个就ok了 计算机中的列子打开一个硬盘上的文件读取文件内容并显示出来 饿汉把文件所有的内存都读到内存中并显示出来 懒汉只把文件读一小部分把当前屏幕填充上如果用户翻页了在读其他文件内容如果不翻页就省下了 假设文件非常大10G 饿汉模式文件可能卡半天内存够不够 懒汉模式可以快速打开 我们来看一下下述代码吧饿汉模式 class Singleton{//唯一的实体private static Singleton instancenew Singleton();//获取到实列的方法public static Singleton getInstance(){return instance;//单词的读操作不涉及修改}//禁止外部new实列//此处在类内部把实列创建好同时禁止外部重新创建实列此时就可以保证是单列的特性了private Singleton(){//构造方法设为private//仅类内部使用} }public class Main {public static void main(String[] args) {//此时s1和s2是同一个对象Singleton s1Singleton.getInstance();Singleton s2Singleton.getInstance();//Singleton s3new Singleton();//此处要把new操作禁止掉则把该类的构造方法设为private即可} }上述代码是线程安全的饿汉模式先创建好实列随去随用~ private static Singleton instancenew Singleton(); 在上述的该段代码中被static修饰该属性是类的熟悉JVM中每个类的类对象只有唯一一份类对象里的这个成员自然也是唯一的 但是对于创建的这个实列我们可以用不到因此非必要不创建《——》懒汉模式 懒汉模式的核心思想——》非必要不创建 //通过懒汉模式实现一下单列模式 class SingletonLazy{volatile private static SingletonLazy instancenull;//先置为空//只有调用getInstance才会new一个对象如果再次调用getInstance仍然会返回之前的实列public static SingletonLazy getInstance(){//这个条件判定是否需要加锁如果对象已经有了//就不必加锁了此时本身就是线程安全的if (instancenull){synchronized (SingletonLazy.class){//加锁保证判定和new是一个原子操作if (instancenull){instancenew SingletonLazy();}}}return instance;//唯一}private SingletonLazy(){//构造方法设为private//类中可以访问类外不能访问} }public class Main1 {public static void main(String[] args) {SingletonLazy s1SingletonLazy.getInstance();SingletonLazy s2SingletonLazy.getInstance();//此时s1和s2是同一个实列System.out.println(s1s2);//true} }显而易见上述代码的运行结果为 思考一下对于前面的饿汉模式和懒汉模式的两个代码是否线程安全 对于饿汉模式认为线程安全的——》只是读数据 对于懒汉模式多线程下调用getInstance可能会出现问题《——》线程不安全 多线程下懒汉模式可能无法保证创建对象的唯一性 懒汉模式的部分代码如下 如果是N个线程一起调用可能就会搞出N个对象了 通过加锁操作《——》锁要加在哪里多线程的代码是很复杂的不是说只要写了加锁操作就一定是线程安全了只能具体问题具体分析。 加锁是一个比较低效的操作加锁就可能涉及到阻塞等待~非必要不加锁 对于getInstance()这个方法 在该段代码中任何时候调用getInstance()都会触发锁的竞争。 其实此处的线程不安全只出现在首次创建对象这里一旦对象new好了后续在调用getInstance()就只是单纯的读操作了就没有线程安全问题就没有必要再加锁了 因此可以在加一个if语句的判定两个if语句的判定更加完美 这两个if (instancenull)的代码看起来一样实际上他俩的差别很大按照咱们之前的理解两行代码如果紧挨着的此时两行代码就会被迅速的执行完近似就可以看作是“同一时机”实际上由于这两个if中间间隔了个synchronized加锁可能导致阻塞至于啥时候解除阻塞时间不一定虽然两个条件相同但是如果调用时间长了结果也可能会不同~ 加上volatile可以解决指令重排序的问题 volatile private static SingletonLazy instancenull;//先置为空小结一下瞬间开心 单列模式的线程安全问题经典面试题 饿汉模式天然就是安全的只是读操作 懒汉模式不安全有读也有写操作 加锁把if和new变成原子操作双重if减少不必要的加锁操作使用volatile禁止指令重排序保证后续线程拿到的是完整对象
http://www.laogonggong.com/news/118861.html

相关文章:

  • 突唯阿网站seo多人视频网站开发公司
  • 那个网站做图片好看网络技术专业就业方向
  • 做字典网站开发企业网站建设需要哪些软件
  • 网站建设公司市场开发方案滨州淄博网站建设
  • 如何建一个自己网站百度竞价排名多少钱
  • 廊坊网站关键字优化英文外链平台
  • 网站策划书模板wordpress插件文件夹
  • dede的网站地图要怎么做wap网站制作
  • 做一个答疑网站永久免费建个人网站
  • 手机网站有用吗wordpress删除相似文章
  • 网站设计小结北京网站制作服务
  • 网站建设软件kan网站设计 品牌设计
  • 自建虚拟主机网站源码广告设计培训班学校有哪些
  • 做网站怎么选择服务器妇科医院网站设计
  • 网站建设需要做哪些工作网站建设项目详情
  • 欧赛科技网站建设网站设计项目
  • 网站建设 的公安远县城乡规划建设局网站
  • 深圳建站公司 企网站补习吧 一家专门做家教的网站
  • 南平建设局网站网站开发公司不干了
  • 网站怎么做seo优化婚纱摄影图片
  • 郑州网站建设品牌好wordpress 加logo
  • 房屋结构自建设计 网站快手网页版
  • 网站搭建同一页不同按钮不同页面郑州seo全网营销
  • 做电影网站赚钱么三乡网站建设
  • 单位网站开发合同wordpress 字
  • 南海小程序网站开发网络规划设计师资料网盘下载
  • 沧州做网站哪家公司好浅谈阿里企业的电子网站建设
  • 做网站百灵鸟查询网站空间的服务商
  • 为网站网站做代理手机上制作ppt的软件
  • 网站过期会怎样解决哪些做直播卖食品的网站