简述建设电子商务网站步骤写软文怎么接单子

news/2025/9/22 16:28:51/文章来源:
简述建设电子商务网站步骤,写软文怎么接单子,网站建设所用软件,seo优化排名是什么目录 今日良言#xff1a;关关难过关关过#xff0c;步步难行步步行 一、单例模式 1.饿汉模式 2.懒汉模式 二、工厂模式 今日良言#xff1a;关关难过关关过#xff0c;步步难行步步行 一、单例模式 首先来解释一下#xff0c;什么是单例模式。 单例模式也就是单个…目录 今日良言关关难过关关过步步难行步步行 一、单例模式 1.饿汉模式 2.懒汉模式 二、工厂模式 今日良言关关难过关关过步步难行步步行 一、单例模式 首先来解释一下什么是单例模式。 单例模式也就是单个实例(对象)。在有些场景中只能创建出一个实例不应该创建多个实例。 单例模式就是针对上述的需求场景进行了个更强制的保证通过巧用 java 现有的语法达成了某个类 只能被创建出一个实例这样的效果.(当程序猿不小心创建了多个实例就会编译报错)。 单例模式最常见的两种就是饿汉模式和懒汉模式。 1.饿汉模式 代码如下: class Singleton{// 在此处就把实例给创建出来了private static Singleton instance new Singleton();// 如果需要使用这个唯一的实例统一通过这个方法获取public static Singleton getInstance() {return instance;}// 为了避免Singleton 类不小心被赋值出多份将构造方法设置成private.// 此时就无法通过new 的方式来创建这个Singleton 实例了。private Singleton(){} } public class Exercise {public static void main(String[] args) {Singleton s1 Singleton.getInstance();Singleton s2 Singleton.getInstance();System.out.println(s1 s2);} } 在类加载阶段就将实例创建好了这种效果就给人一种“特别急切”的感觉。 被static修饰表示这个属性和实例无关而是和类相关。 Java 代码中的每个类都会在编译完成后得到.class 文件JVM 运行时就会加载这个.class文件读取其中的二进制指令并且在内存中构造出对应过的类对象(形如Singleton.class)具体的类加载可以阅读博主之前写的博客 深度剖析JVM三个面试常考知识点_程序猿小马的博客-CSDN博客 由于 类对象在一个 Java 进程中是唯一的因此这个类对象的内部的类属性也是唯一的。 static 在这里的作用有两个 1static 保证这个实例唯一。 2static 保证这个实例确实在一定的时机被创建出来。 static 属于这个实现方式中的灵魂角色。 2.懒汉模式 代码实现: class SingletonLazy {private static SingletonLazy instance null;public static SingletonLazy getInstance() {if (instance null) {instance new SingletonLazy();}return instance;}// 构造方法设置成私有的private SingletonLazy(){} } public class Exercise {public static void main(String[] args) {SingletonLazy s1 SingletonLazy.getInstance();SingletonLazy s2 SingletonLazy.getInstance();System.out.println(s1 s2);} } 这个实例并非是类加载阶段创建而是真正第一次使用的时候才去创建 如果不用就不创建了。 上述写的饿汉模式和懒汉模式是在单线程情况下的代码如果在多线程下调用getInstance 是否是线程安全的呢? 答案是一个是线程安全的一个是线程不安全的。 饿汉模式是线程安全的因为饿汉模式的 getInstance 方法只涉及到“读操作”。 懒汉模式是线程不安全的因为懒汉模式的 getInstance 方法既有读操作又有写操作。 线程安全问题的详细解释博主在之前的博客中有提到 线程安全问题_程序猿小马的博客-CSDN博客 这里如果在多线程情况下调用懒汉模式的 getInstance 方法会发生多次 new 操作显然就不是单例了。 那么如何让上述懒汉模式能够成为线程安全的呢 加锁 上述线程安全问题本质上是 修改操作不是原子的因此需要保证这个修改操作是原子的。 修改代码如下: 此时把锁加到外面保证了读操作和修改操作是一个整体。 但是代码写到这里还有问题上述这种写法就导致了每次 getInstance 都需要加锁加锁操作都是有开销的仔细考虑一下这里真的需要每次都加锁吗 显然不是这里的加锁只是在new出对象之前加上是有必要的一旦对象 new 完以后后续调用 getInstance 此时 instance 一定是非空的因此会直接 return。 基于上述讨论就可以给刚才的代码加上一个判定 如果对象还没创建才加锁如果对象已经创建过了就不加锁了。 修改代码如下: 此时这里就不再是无脑加锁了而是满足了特定条件之后才真正加锁。  注意 这两个if 的作用不一样第一个if 判断是否要加锁第二个if 判断是否要创建对象。 加锁操作可能会引起线程阻塞当执行到锁结束之后执行到第二个 if 的时候第二个 if 和第一个 if 之间可能已经隔了很久的时间了instance 变量可能已经被别的线程给修改过了所以需要第二次 if 判断当前线程是否需要创建对象。 上述代码其实还存在问题: 内存可见性问题以及指令重排序 关于这个问题博主之前的博客也有详细介绍 线程安全问题_程序猿小马的博客-CSDN博客  内存可见性问题 假设有很多线程都去进行 getInstance 这个时候可能会存在被优化的风险(只有第一次读的时候才真正的读了内存后续都是读寄存器) 指令重排序 instance new SingletonLazy();   这个操作可以拆分为三个步骤 1申请内存空间。 2调用构造方法把这个内存空间初始化成一个合理的对象。 3把内存空间的地址赋值给 instance 引用。 正常情况下是按照 1 2 3 这个顺序执行代码但是编译器存在指令重排序问题编译器为了提高程序效率会调整代码执行顺序 1 2 3 可能就变成了 1 3  2 如果是单线程下1 2 3 和 1 3 2 没有本质区别但是多线程下就会出现问题了。  假设线程 t1 是 按照 1 3 2 的步骤执行的t1 执行到 1 3 之后执行 2 之前被切除 cpu 此时 t2执行当 t1 执行完 3 之后t2 看起来此处的引用就非空了此时此刻t2 就相当于直接返回了 instance 引用并且可能会尝试使用引用中的属性但是由于 t1 中的 2 操作还没执行完呢t2 拿到的是非法的对象还没构造完成的不完整的对象。 因此需要解决上述问题使用 volatile  修改代码如下 懒汉模式完整代码如下: class SingletonLazy {private volatile static SingletonLazy instance null;public static SingletonLazy getInstance() {if (instance null) {synchronized (SingletonLazy.class) {if (instance null) {instance new SingletonLazy();}}}return instance;}// 构造方法设置成私有的private SingletonLazy(){} } public class Exercise {public static void main(String[] args) {SingletonLazy s1 SingletonLazy.getInstance();SingletonLazy s2 SingletonLazy.getInstance();System.out.println(s1 s2);} } 二、工厂模式 先来解释一下什么是工厂模式。 工程模式用一句话概括使用普通的方法来代替构造方法创建对象。 为什么要代替呢 这是因为构造方法有坑坑就体现在如果只构造一种对象好办如果要构造多种不同的情况就不好办了。 举个例子 假设现在有一个类表示平面上的一个点 上述构造方法表示使用笛卡尔坐标系提供的坐标来构造点。 如果这里假设再使用极坐标来构造点代码如下 很明显这个代码存在问题正常来说多个构造方法是通过“重载”的方式来提供的重载要求的是 方法名相同参数的个数或者类型不同。 为了解决这个问题就可以使用工厂模式 普通方法的方法名没有限制因此有多种方式构造使用不同的方法名即可。 以上就是单例模式和工厂模式的介绍。

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

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

相关文章

搭建自己的博客网站做网站推广书范法吗

思路&#xff1a;将以桥为分界的所有连通分支进行缩点&#xff0c;得到一颗树&#xff0c;求出树的直径。再用树上的点减去直径&#xff0c;再减一 #pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #incl…

学校微网站模板工信部网站黑名单

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中图像文本检索技术。此技术把自然语言处理和图像处理进行了融合。 参考 2024年&#xff08;第12届&#xff09;“泰迪杯”数据挖掘挑战赛 图像特征提取&#xff08;VGG和Resnet特征提取卷积过程详解&…

番禺网站建设公司有哪些天津网约车

本文通过一个例子来介绍利用maven来构建一个多模块的jave项目。开发工具&#xff1a;intellij idea。 一、项目结构 multi-module-project是主工程&#xff0c;里面包含两个模块&#xff08;Module&#xff09;&#xff1a; web-app是应用层&#xff0c;用于界面展示&#xff…

承德建设企业网站国外著名的网站设计公司

Spring Boot 是由 Pivotal 团队提供的全新框架&#xff0c;其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。我这里会分享一些学习Spring Boot的方法和干货&#xff0c;包括…

网站建设的快乐学编程的好处

随着信息技术与制造业的深度协调&#xff0c;作为企业发展的趋势&#xff0c;大中型制造企业需要拥抱信息化建设。通过运用信息技术和数字化运营&#xff0c;大中型制造企业的生产、设计、经营、管理、后续服务等都实现自动化、智能化。大中型制造企业信息化建设解决方案&#…

ProcessPoolExecutor VS ThreadPoolExecutor 进程池对比线程池

ProcessPoolExecutor VS ThreadPoolExecutor 进程池对比线程池 示例一: I/O 场景——10 个网页并发下载 + 实时进度 结果 多线程: 100%|██████████| 10/10 [00:07<00:00, 1.41it/s] 【多线程】I/O 并发…

深入解析MS12-020关键漏洞CVE-2012-0002:远程桌面协议的安全风险与缓解方案

本文详细分析了微软远程桌面协议(RDP)中的高危漏洞CVE-2012-0002,该漏洞允许未经认证的远程代码执行,影响所有Windows版本。文章提供了启用网络级认证(NLA)的临时缓解方案,并讨论了终端服务网关和RemoteFX场景的风险…

模板网站可以自己买空间吗吗企业官网策划

2022年第十一届数学建模国际赛小美赛 D题 野生动物贸易是否应长期禁止 原题再现&#xff1a; 野生动物市场被怀疑是此次疫情和2002年SARS疫情的源头&#xff0c;食用野生肉类被认为是非洲埃博拉病毒的一个来源。在冠状病毒爆发后&#xff0c;中国最高立法机构永久性地加强了野…

课程网站建设方案提高seo排名

随着金九银十逐渐进入尾声&#xff0c;还在观望机会的朋友们已经开始焦躁&#xff1a;“为什么我投的简历还没有回音&#xff1f;要不要趁现在裸辞好好找工作&#xff1f;” “金九银十”作为人们常说的传统“升职加薪”的黄金季节&#xff0c;也是许多人跳槽的理想时机。然而…

电商网站规划论文快速搭建网站前端

UISlide 的不同效果展现&#xff1a;运行代码 本文转自懒得安分博客园博客&#xff0c;原文链接&#xff1a;XXXXXXXX&#xff0c;如需转载请自行联系原作者

高端定制网站开发设计建站流程登封市城乡建设路网站

1 简介 1.1 横向联邦学习 横向联邦学习也称为按样本划分的联邦学习&#xff0c;主要应用于各个参与方的数据集有相同的特征空间和不同的样本空间的场景&#xff0c;例如两个地区的城市商业银行可能在各自的地区拥有非常不同的客户群体&#xff0c;所以他们的客户交集非常小&a…

网站老域名跳转到新域名阿里巴巴招聘官网

上一讲主要介绍了看板方法以及如何使用看板方法来解决软件研发过程中出现的团队过载、工作不均、任务延期等问题。通过学习前面几个课时介绍的知识&#xff0c;你的团队开始源源不断地交付用户价值。用户对交付的功能非常满意&#xff0c;但等到系统上线后经常出现服务不可用的…

美食网站 原型 html 下载网站咨询弹窗是怎么做的

前言: 爬虫哪家强,当然是python 我是属于啥语言都用,都懂点,不精通,实际工作中能能够顶上就可以。去年写的抓取bing每日的壁纸&#xff0c;保存到本地&#xff0c;并上传到阿里云oss&#xff0c;如果只是本地壁纸切换&#xff0c;存下来就行&#xff0c;一直想做个壁纸站点&…

网站怎么做扫码微信支付接口代理网址怎么用

之前了解了&#xff1a; 创建Django项目 数据库 模板 表格提交 admin管理页面 上面的功能模块允许我们做出一个具有互动性的站点&#xff0c;但无法验证用户的身份。我们这次了解用户验证部分。通过用户验证&#xff0c;我们可以根据用户的身份&#xff0c;提供不同的服务。 …

宁阳移动网站制作免费做背景调查的网站

内核生命周期uboot 打印完 Starting kernel . . .&#xff0c;就完成了自己的使命&#xff0c;控制权便交给了 kernel 的第一条指令&#xff0c;也就是下面这个函数init/main.casmlinkage __visible void __init start_kernel(void){...rest_init();}start_kernel 相当于内核的…

鸿蒙项目实战(九):get请求参数的处理

get请求将键值对数据拼接到url后面,并且进行编码处理(编码空格(转为%20)和中文字符等非保留字符)static async get<T>(url: string, params?: HashMap<string,object>): Promise<T> {if (params…

20250806_信安一把梭_test

流量分析, 应急响应, Webshell, 信安一把梭Tags:流量分析, 应急响应, Webshell, 信安一把梭 0x00. 题目 流量包描述:可恶的黑客,在我的电脑上传了几个奇怪的文件,老师教了我排查但是我没学会,但是我认识大佬你,请…

专业 RAW 图像处理利器!DxO PhotoLab 让你的照片质感飙升

对于摄影爱好者、专业摄影师以及图像后期从业者而言,一款能精准挖掘 RAW 文件潜力、兼顾操作效率与专业功能的图像处理软件,是提升作品质感的核心工具。DxO PhotoLab 作为专业级 RAW 图像处理软件,凭借强大的智能校…

mysql时间转字符串,自定义格式将日期时间值转换为字符串

在 MySQL 中,将时间 / 日期类型转换为字符串可以使用 DATE_FORMAT() 函数,该函数允许你根据自定义格式将日期时间值转换为字符串。 基本语法 sql DATE_FORMAT(date, format) date:要转换的日期 / 时间字段或值(可以…