我的网站百度搜不到营销 推广 网站

news/2025/10/4 15:28:49/文章来源:
我的网站百度搜不到,营销 推广 网站,seo高手是怎样炼成的,钛钢饰品移动网站建设作者持续关注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/news/927276.shtml

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

相关文章

如何查网站备案号网站前端设计公司

目录 一、介绍二、强缓存三、协商缓存今天主要介绍 HTTP请求缓存中的强缓存和协商缓存。 一、介绍 浏览器每次发起请求时,会先在浏览器缓存中查找请求的缓存结果和缓存标识。 当浏览器第一次向服务器发起请求后,浏览器缓存肯定是没有对应缓存的,所以向服务器发起请求,服…

学习网站建设有前景没浙江住房和建设网站首页

yaml语法学习 1、配置文件 SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的 application.properties 语法结构 :keyvalue application.yml 语法结构 :key:空格 value 配置文件的作用:修改SpringBoot自动…

题解:P5504 [JSOI2011] 柠檬

题目: 下面给个经典的 DP 式子不多说了: \[f_i=f_j+s_iqz^2(s_i,i)+s_iqz^2(s_{j+1},j)-2s_iqz(s_i,i)qz(s_{j+1},j),s_{j+1}=s_i \]单调栈太阴了!下面有个 hack: 11 2 10 2 2 10 2 2 10 2 2 2 ans:128众所周知 \…

Thymeleaf教程

一 Thymeleaf是什么 Thymeleaf 是一款现代服务器端 Java 模板引擎,专为 Web 开发设计,尤其适合与 Spring Boot 框架搭配使用。它的核心目标是实现 “自然模板”(Natural Templates)—— 即模板文件本身可直接作为纯…

商务网站建设的流程图专注新乡网站建设

1. 聚量推客: “聚量推客”汇聚了众多市场上有的和没有的地推网推拉新接单项目,目前比较火热,我们做地推和网推从业者如果长期在这行业去做推广可以使用这个平台,价格高数据也好,大部分拉新项目也都是官签一手资源 一…

VMware虚拟机设置中处理器数量和内核内存再次探讨

VMware虚拟机设置中处理器数量和内核内存再次探讨, 如何设置性能较好.设置内核数量 1*8 根据VMWARE虚拟机的CPU分配(VMWARE14):处理器数量、核心数量分配验证 - imxiangzi - 博客园 VMware Workstation CPU如何设置…

VMware中Ubuntu迁移(复制)后进入紧急模式You are in emergency mode.

解决了VMware虚拟机迁移后报错You are in emergency mode.在复制或迁移虚拟机后, Ubuntu进入紧急模式, 可以看见Error -107 cannot open Connection 这是共享文件夹功能被禁用导致的! 开启后输入reboot -f重启即可. 解…

2025年全国大学生电子设计竞赛A题:能量回馈的变流器负载试验装置(国一方案分享+代码工程+仿真) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

太简单了!原来PS在线抠图可以这么玩,背景分离无压力

你是不是总被“抠图”困扰?想给图片换背景,却觉得下载安装Photoshop太费事?放心,这篇教程就是为你准备的!今天我来手把手教你用在线PS抠图工具,无需安装、打开网页就能轻松搞定背景分离,就算是零基础新手,也能…

深入解析:【Leetcode】随笔

深入解析:【Leetcode】随笔pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

DateStyle日期时间字符串序列化 - br

import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; import java.time.temporal.ChronoField;import static java.time.temporal.ChronoField.*;public class DataStyle …

如何用AI工具编写一个轻量化CRM系统(七):AI生成pytest测试脚本

如何用AI工具编写一个轻量化CRM系统(七):AI生成pytest测试脚本2025-10-04 15:12 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !im…

网站建设总结心得游戏运营备案官方网站

昨天一个客户要在RK3399 Linux开发板上面使用身份证读卡器,由于没有客户的开发板,故只能用本机ubuntu虚拟机来交叉编译,用客户发过来的交叉编译工具,已经编译好libusb然后编译libdonsee.so的时候提示找不到libusb,报错…

实用指南:Linux驱动之V4L2

实用指南:Linux驱动之V4L2pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", …

湖北省建设人力资源网站网页制作素材教学

目录 一、代入排除法 例题 练习 二、数字特性 例题 练习 整除特性 例题 倍数特性 普通倍数 因子倍数 比例倍数 例题 练习 三、方程法 例题 练习 四、 不定方程(组) 例题 练习 一、代入排除法 例题 素数&#xff1a…

儿童与青少年数据安全及体育发展新方向会议

本次会议聚焦儿童和青少年数据安全保护,探讨人工智能对隐私的影响及体育文化在教育中的作用,涵盖数据保护、AI隐私风险等关键技术议题。会议信息 时间:2025年10月10日 地点:克拉科夫布罗尼斯瓦夫捷克体育学院 组织…

做网站运营需要具备什么能力建站公司都有哪些

在Flutter中,异步编程是非常重要的一部分,特别是在处理用户输入、网络请求或其他涉及时间的操作时。Flutter提供了一种强大的工具,称为Stream,用于简化异步编程的过程。 什么是 Stream? Stream是一种用于处理异步数据…

网站等保建设上海好的设计公司

SV-7042T 30W网络对讲广播一体音柱 一、描述 SV-7042T是深圳锐科达电子有限公司的一款壁挂式网络有源音柱,具有10/100M以太网接口,可将网络音源通过自带的功放和喇叭输出播放,其采用防水设计,功率可以从20W到40W。SV-7042T作为网…

Embarcadero Dev-C++ 6.3 中文乱码问题 - 教程

Embarcadero Dev-C++ 6.3 中文乱码问题 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…