我的网站百度搜不到唯品会网站推广策略

web/2025/9/26 18:33:57/文章来源:
我的网站百度搜不到,唯品会网站推广策略,台州网站设计哪家好,可以做超大海报的网站作者持续关注WPS二次开发专题系列#xff0c;持续为大家带来更多有价值的WPS开发技术细节#xff0c;如果能够帮助到您#xff0c;请帮忙来个一键三连#xff0c;更多问题请联系我#xff08;WPS二次开发QQ群:250325397#xff09;#xff0c;摸鱼吹牛嗨起来#xff01…  作者持续关注WPS二次开发专题系列持续为大家带来更多有价值的WPS开发技术细节如果能够帮助到您请帮忙来个一键三连更多问题请联系我WPS二次开发QQ群:250325397摸鱼吹牛嗨起来 定义 单例Singleton模式的定义指一个类只有一个实例且该类能自行创建这个实例的一种模式。 特点 单例类只有一个实例对象该单例对象必须由单例类自行创建单例类对外提供一个访问该单例的全局访问点。 使用场景 单例模式可以保证在一个 JVM 中只存在单一实例。单例模式的应用场景主要有以下几个方面。 需要频繁创建的一些类使用单例可以降低系统的内存压力减少 GC。某类只要求生成一个对象的时候如一个班中的班长、每个人的身份证号等。某些类创建实例时占用资源较多或实例化耗时较长且经常使用。某类需要频繁实例化而创建的对象又频繁被销毁的时候如多线程的线程池、网络连接池等。频繁访问数据库或文件的对象。对于一些控制硬件级别的操作或者从系统上来讲应当是单一控制逻辑的操作如果有多个实例则系统会完全乱套。当对象需要被共享的场合。由于单例模式只允许创建一个对象共享该对象可以节省内存并加快对象访问速度。如 Web 中的配置对象、数据库的连接池等。 模式结构 单例模式的主要角色如下。 单例类包含一个实例且能自行创建这个实例的类。访问类使用单例的类。 具体实现 (1) 饿汉式--线程安全实用 /*** 单例模式--单例模式的饿汉式线程安全可用* pre* (1)私有化该类的构造函数* (2)通过new在本类中创建一个本类对象* (3)定义一个公有的方法将在该类中所创建的对象返回* 优点从它的实现中我们可以看到这种方式的实现比较简单在类加载的时候就完成了实例化避免了线程的同步问题。* 缺点由于在类加载的时候就实例化了所以没有达到Lazy Loading(懒加载)的效果也就是说可能我没有用到这个实例但是它* 也会加载会造成内存的浪费(但是这个浪费可以忽略所以这种方式也是推荐使用的)。* pre*/ public class SingletonEHan {private static final SingletonEHan instance new SingletonEHan();private SingletonEHan() {}private static SingletonEHan getInstance() {return instance;} } (2) 懒汉式--线程安全可用效率稍低 /*** 单例模式--懒汉式线程安全的:线程安全效率低不推荐使用* pre* 缺点效率太低了每个线程在想获得类的实例时候执行getInstance()方法都要进行同步。* 而其实这个方法只执行一次实例化代码就够了* 后面的想获得该类实例直接return就行了。方法进行同步效率太低要改进。* /pre*/ public class SingletonLanHan {private static SingletonLanHan instance null;private SingletonLanHan() {}public static synchronized SingletonLanHan getInstance() {if (instance null) {instance new SingletonLanHan();}return instance;} } (3) 懒汉式--双重校验锁线程安全, 推荐 /*** 单例模式--单例模式懒汉式双重校验锁线程安全, 推荐* pre* 懒汉式变种,属于懒汉式的最好写法,保证了:延迟加载和线程安全* /pre*/ public class SingletonDoubleCheck {private static volatile SingletonDoubleCheck instance null; //关键点0声明单例对象是静态的private SingletonDoubleCheck() { //关键点1构造函数是私有的}public static SingletonDoubleCheck getInstance() { //通过静态方法来构造对象if (instance null) { //关键点2判断单例对象是否已经被构造synchronized (SingletonDoubleCheck.class) { //关键点3加线程锁if (instance null) { //关键点4二次判断单例是否已经被构造instance new SingletonDoubleCheck();}}}return instance;} } 注instance加了volatile关键字来修饰既然synchronized已经起到了多线程下原子性、有序性、可见性的作用为什么还要加 volatile呢主要原因如下 a. 防止指令重排序 具体可见 单例模式与双重检测 - 设计模式 - Java - ITeye论坛 疑问为什么instance要加volatile关键字来修饰? 解答 instance new SingletonDoubleCheck();分三步执行 ①给 instance 分配内存 ②调用 Singleton 的构造函数来初始化成员变量 ③将instance对象指向分配的内存空间执行完这步 instance 就为非 null 了。 但是在 JVM 的即时编译器中存在指令重排序的优化。也就是说上面的第二步和第三步的顺序是不能保证的最终的执行顺序可能是 ①-②-③ 也可能是 ①-③-②。如果是后者则在 ③ 执行完毕、② 未执行之前被线程二抢占了这时 instance 已经是非 null 了但却没有初始化所以线程二会直接返回 instance然后使用然后顺理成章地报错。 由于 JVM 具有指令重排的特性有可能执行顺序变为了 ①③②具体如下 public class SingletonDoubleCheck {private static SingletonDoubleCheck instance null;private SingletonDoubleCheck() {}public static SingletonDoubleCheck getInstance() {if (instance null) { // B线程检测到instance不为空synchronized (SingletonDoubleCheck.class) {if (instance null) {instance new SingletonDoubleCheck(); // A线程被指令重排了刚好先赋值了但还没执行完构造函数。}}}return instance; // 后面B线程执行时将引发对象尚未初始化错误。} } 使用 volatile 的主要原因是其另一个特性禁止指令重排序优化。也就是说在 volatile 变量的赋值操作后面会有一个内存屏障生成的汇编代码上读操作不会被重排序到内存屏障之前。比如上面的例子取操作必须在执行完 ①-②-③ 之后或者 ①-③-② 之后不存在执行到 ①-③ 然后取到值的情况。 (4) 静态内部类--线程安全推荐 /*** 单例模式--内部类线程安全推荐* pre* 这种方式跟饿汉式方式采用的机制类似但又有不同。* 两者都是采用了类装载的机制来保证初始化实例时只有一个线程。* 不同的地方:* 在饿汉式方式是只要Singleton类被装载就会实例化,* 内部类是在需要实例化时调用getInstance方法才会装载SingletonHolder类* 优点避免了线程不安全延迟加载效率高。* pre*/ public class SingletonLazy {private SingletonLazy() {}private static class SingletonHolder {private static final SingletonLazy INSTANCE new SingletonLazy();}public static SingletonLazy getInstance() {return SingletonHolder.INSTANCE;} } (5) 枚举--线程安全推荐 /*** 单例模式--枚举线程安全可用* pre* 这里SingletonEnum.instance* 这里的instance即为SingletonEnum类型的引用所以得到它就可以调用枚举中的方法了。* 借助JDK1.5中添加的枚举来实现单例模式。不仅能避免多线程同步问题而且还能防止反序列化重新创建新的对象* /pre*/ public enum SingletonEnum {INSTANCE;public static void main(String[] args) {SingletonEnum obj SingletonEnum.INSTANCE;System.out.println(obj);} }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免费特效素材网站引流推广网站平台

管理员账户 在控制面板的用户账户中,点击更改账户类型,可以看到目前的账户是“管理员账户”还是“标准账户”。 管理员身份 在快捷方式上右击,可以看到,可以选择以管理员身份运行该软件。 如何查看某个应用是否以管理员身份…

个体工商户网站备案重庆简易注销在什么网站做

JWT 单点登录探析:原理、用途与安全实践 什么是 JWT? JWT (JSON Web Token) 是目前最流行的跨域认证解决方案,是一种基于 Token 的认证授权机制。 从 JWT 的全称可以看出,JWT 本身也是 Token&#xff0c…

哪个网站做logo好硬件开发文档模板

C语言中文本文件与二进制文件的区别 一、文本文件与二进制文件的定义 大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。 简单来说,文本文件是基于字符…

郑州招聘网站有哪些wordpress 内存溢出

使用spawn创建一个新进程,其第一个参数是模块名、第二个参数是函数名、第三个参数是参数列表。spawn会返回一个进程标识符,通常叫做PID。 defmodule Spawn1 dodef greet doreceive do{sender, msg} ->send sender, { :ok, "Hello #{msg}" }…

佛山专业网站营销seo是指什么职位

现在很多手机都配备指纹解锁功能,大家平时用惯了指纹解锁,有时候在需要输入锁屏密码的时候反倒记不清密码是什么了。像是手机重启后就需要输入密码解锁,iPhone锁屏密码忘了怎么办?多次输入错误密码还可能导致手机被停用&#xff0…

小学网站asp火车头采集器 wordpress论坛发布

文章目录 Selenium Java环境搭建配置系统环境变量PATH验证环境是否搭建成功常见问题&解决办法 Selenium Java环境搭建 Java版本最低要求为8,这里默认大家都下载好了Java。😆 下载chrome浏览器(点我下载) 观察chrome版本。…

wordpress 网站地图类深圳招聘网站大全

给初学者之一:浅谈java及应用 学java不知不觉也已经三年了 从不知java为何物到现在一个小小的j2ee项目经理 虽说不上此道高手,大概也算有点斤两了吧 每次上网,泡bbs逛论坛,没少去java相关的版面 总体感觉初学者多&#xff0c…

南京网站开发xuan南京乐识公司建站有哪些优势

Coding源码学习第四部分(Masonry介绍与使用(三))接上篇继续进行Masonry 的学习. (12)tableViewCell 布局 #import "TableViewController.h" #import "Tes ...python 线性回归示例说明:此文的第一部分参考了这里 用python进…

陕西网站建设公司排名网站建设 开发 模板

1、个人网盘场景说明 个人网盘架构 使用ECS安装Cloudreve提供网盘服务,OSS提供存储服务。当用户使用个人网盘时,访问部署Cloudreve ECS的公网IP地址即可完成文件上传、下载、删除、分享等服务。 什么是Cloudreve Cloudreve可帮助您即刻构建出兼备自用…

备案添加网站请概述网站建设的一般步骤

频率分辨率是描述频谱分析能力的一个重要指标。它指的是频谱分析仪在频率轴上的最小可区分的频率间隔。 更具体地说: 频率分辨率描述了频谱分析中能够分辨出的最小频率差。例如,如果频率分辨率为1 Hz,就意味着该分析仪能够将相隔1 Hz的两个频率成分区分开来。 频率分辨率受到…

搭建网站详细步骤中智软件开发有限公司

Linux系统的简介与安装 Linux简介 计算机是由硬件和软件所组成 硬件:计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称软件:是用户和计算机硬件之间的接口和桥梁,用户通过软件与计算机进行交流(操作系统) 操作系统作为用户和…

支持asp的免费空间 适合钓鱼网站电商网站的支付模块怎么做

XML语法规则介绍及总结-CSDN博客 TinyXML-2 是一个简单轻量级的 C XML 解析库,它提供了一种快速、高效地解析 XML 文档的方式。 1. 下载地址 Gitee 极速下载/tinyxml2 2. 基本用法 下面将详细介绍 TinyXML-2 的主要使用方法: 2.1. 引入头文件和命名空间 #i…

做服装有哪些好的网站有哪些网络营销专业专升本

转载自 MySQL sum()函数 MySQL SUM()函数介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下: SUM(DISTINCT expression)SUM()函数是如何工作的? 如果在没有返回匹配行SELECT语句中使用SUM函数,则SUM函数返回…

html教学江门排名优化公司

作者:李晓辉联系方式: Xiaohui_lifoxmail.com环境介绍类型控制节点和计算节点等在一起,形成all-in-one内存8G硬盘200G网卡2块计算服务概览使用OpenStack计算服务来托管和管理云计算系统。OpenStack计算服务是基础设施即服务(IaaS)系统的主要部分&#xf…

购物网站开发视频教程汕头高端网站建设

我正在开发一个简单的应用程序,它只是应该连接到websocket服务器并发送简单的文本消息。我使用nv-websocket-client作为websocket的库。我似乎无法连接到服务器。我使用wireshark来确定设备没有收到数据,也没有数据通过我使用过的任何端口进入&#xff0…

扶余手机网站开发建设工程造价管理基础知识

目录 源代码: 输出结果如下: 使用QT完成一个简单的时钟图形化界面,功能是完成了时分秒指针能够跟随系统时间移动 设计思路: 1、首先将时钟的边框绘制出来 2、定义出一个定时器t1,将定时器连接到update_slot槽内&#…

邢台网站建设厂家网站开发找哪家

题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums [1,3,-1,-3,5,3,6,…

网站登录入口大全赣州企业网

本文结构: a、简介 b、一些插件名称及简要介绍 a、之前我一篇文章说了在vim中安装了一个可以自动补全")",">"等符号的插件autopairs,里面也有详细的安装及配置步骤。基于有些小伙伴想要了解些别的vim插件和自己有时候可能会有些灵感想要写…

重庆网站布局信息公司网站推广的软件

在Vue中使用 xlsx 库将表格数据导出为CSV文件,你需要按照以下步骤操作: 安装 xlsx 库 如果你的项目中还没有安装xlsx库,可以使用npm或yarn来安装它。 npm install xlsx # 或者 yarn add xlsx在Vue组件中导入xlsx库: 在需要处理…

超酷html5效果的工作室网站程序泰安程序开发

对于光伏发电许多人都不是很了解,今天小编整理了10个光伏方面的冷知识分享。 1.光伏是如何诞生的? 1839年,19岁的法国贝克勒尔做物理实验时,发现在导电液中的两种金属电极用光照射时电流会加强,从而发现了“光生伏打…