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

网站如何分页设计网站可能遇到的问题

网站如何分页,设计网站可能遇到的问题,百度关键词流量查询,简单网站后台目录 单例模式的含义 饿汉模式 注意事项 懒汉模式 单线程版本 多线程版本 多线程改进版本(推荐) 注意事项 单例模式的含义 解析这个名词: 单例中的单,指的是单个,一个的意思 而例,是实例的意思,实例也就是通常所说的对象. 合起来就是,只能有一个实例\对象的模式. 当…目录 单例模式的含义 饿汉模式 注意事项 懒汉模式 单线程版本 多线程版本 多线程改进版本(推荐) 注意事项 单例模式的含义 解析这个名词: 单例中的单,指的是单个,一个的意思 而例,是实例的意思,实例也就是通常所说的对象. 合起来就是,只能有一个实例\对象的模式. 当然这是对于某一个类来说的. 在使用了这个模式后,我们就不能一直new一直new来创建多个对象了.会被这个模式下的java语法所限制,从而达到某个类只能含有一个类的情况. 单例模式的具体实现方法,对应的也分成饿汉模式与懒汉模式和其他方法,这里着重介绍这两种. 饿汉模式 在创建类的时候顺手就把实例创建好(特点),并且把构造方法使用private修饰使用户在类外无法创建实例.达到有且只有一个实例的效果. public static class Singleton{private static Singleton instance new Singleton();//private修饰的且staticprivate Singleton(){};public static Singleton getInstance(){//返回的类型为自定义类型return instance;}} 注意事项 ①类中创建的实例需要使用类名修饰,是一个自定义类型. ②使用InputContext类下的类方法getInstance方法返回类中唯一的实例,使其可以在类外使用 ③唯一的实例是需要被static修饰,原因是: 当在类外调用类方法的时候,可以通过创建一个新的实例通过这个新的实例调用其中的类方法.或者直接调用这个类的类方法(即静态方法).这一来就规定了,getInstance方法只有通过被static修饰在类外直接调用的这种方法. 而静态的方法,即类方法.是不可以访问非静态的实例或者变量的.这时候就需要我们把实例再加上static关键字,使其能够被返回 ④还要注意的是,为了达到唯一这个关键点.我们需要将其构造方法挂上private关键字来修饰,使其不能被在类外调用. ⑤饿汉模式的特点为,在创建类的时候就已经把实例创建好了.不管后面的程序有没有使用到这个实例. ⑥在多线程的模式下,是线程安全的.因为饿汉模式中只有读指令 懒汉模式 在getInstance方法中判断实例有无创建,如果第一个实例还没有创建则创建第一个实例. 能够放置后续代码没有使用这个实例,而却先前创建出来.浪费了空间资源 单线程版本 public static class Singleton1{private static Singleton1 instance null;private Singleton1(){};public static Singleton1 getInstance(){if(instance null){//在调用的时候才创建实例instance new Singleton1();}return instance;}} 多线程版本 只是在单线程的基础上,加上synchronized关键字,对getinstance方法上锁 对getInstance方法上锁,防止多线程的环境下可能创建出多个实例的情况. public static class Singleton2{private static Singleton2 instance null;private Singleton2(){};public static synchronized Singleton2 getInstance(){//上锁if(instance null){instance new Singleton2();}return instance;}} 多线程改进版本(推荐) 在上面的基础上,将锁放到了内部. 对于单例模式的多线程下,会出现线程安全问题的只有实例需要被创建但还没创建出的情况. 将锁放到getinstance方法外面,再每次调用getinstance方法的时候都会进行上锁和销毁锁的操作. 可是锁的创建与销毁也是需要一定的开销的. 为了尽量避免这种开销,我们可以将锁放到里面.使用两个if语句来判断.外面的if通常适用于,实例已经创建后的状况下会使用次数比较多.而对于第二个if语句,只会在第一次创建实例的时候进入, 但在内部上锁,就会出现线程的内存可见性的问题,所以需要volatile关键字来修饰实例. public static class Singleton3{private static volatile Singleton3 instance null;private Singleton3(){};public static Singleton3 getInstance(){if(instance null){synchronized (Singleton3.class){if(instance null){instance new Singleton3();}}}return instance;}} 注意事项 ①只有在类外调用getInstance方法的时候才创建实例,在一定程度上避免了资源的浪费 ②在多线程环境下,饿汉模式并非天然就是线程安全的.因为其包含了读操作也包含有写操作. ③在多线程的环境下,使用饿汉模式最好使用改进后的版本.在合适的位置使用synchronized关键字上锁,并且使用volatile修饰实例.减少了上锁与销毁锁的次数,节约了资源,也有更高效的效率.
http://www.sadfv.cn/news/490180/

相关文章:

  • 彩票网站建设古大学谷歌浏览器手机版官网下载
  • 五莲网站建设报价网站布局设计分析特点
  • 做网站推广可行吗微商来分销系统
  • 伊春住房和城乡建设局网站网站建设公司怎么做业务
  • 无锡找厂网站做网站要会哪些技术
  • 大连网站开发选领超科技免费网站建设制作
  • 怎样做网站发帖清远市发布
  • 什么网站做展板的多上海人才网最新招聘信息
  • 浙江平台网站建设设计WordPress添加在线商店
  • 乐清做网站公司哪家好深圳网站建设公司推荐乐云seo
  • 企业网站建设原则是四川省建设部网站
  • 网站开发资金规模wordpress 修改页面内容
  • 南平摩托车罚款建设网站缴费用什么程序做网站最好优化
  • 京东网站建设流程渭南网站建设哪里便宜
  • 模块化网站开发thinkphp wordpress
  • 社交媒体 网站wordpress改论坛
  • ai建站工具公司已有网站 如何自己做推广
  • 有哪些站内推广的方式wordpress 显示全部分类
  • 网站方案书数据分析师考试科目
  • 做网站后期都用什么软件邢台做网站推广的地方
  • 做ppt好的网站有哪些游戏网站建设策划书
  • 网站一般做多大的wordpress 坏图片
  • 泰安有口碑的网站建设深圳网页设计培训机构
  • 中国建设投资集团 网站首页珠海门户网站建设报价
  • 重庆企业网站优化全案品牌设计公司
  • 图片墙网站源码大连网站排名系统
  • 网站怎么产品做推广张雪峰谈网络工程专业
  • 网站建设优劣势分析安卓app下载
  • 自己怎样建设网站首页WordPress企业响应式主题
  • 东莞品牌网站建设多少钱做局域网站数据库