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

[java八股文][Java基础面试篇]设计模式

volatile和sychronized如何实现单例模式

public class SingleTon {// volatile 关键字修饰变量 防止指令重排序private static volatile SingleTon instance = null;private SingleTon(){}public static  SingleTon getInstance(){if(instance == null){//同步代码块 只有在第一次获取对象的时候会执行到 ,第二次及以后访问时 instance变量均非null故不会往下执行了 直接返回啦synchronized(SingleTon.class){if(instance == null){instance = new SingleTon();}}}return instance;}
}

正确的双重检查锁定模式需要需要使用 volatile。volatile主要包含两个功能。

  • 保证可见性。使用 volatile 定义的变量,将会保证对所有线程的可见性。
  • 禁止指令重排序优化。

由于 volatile 禁止对象创建时指令之间重排序,所以其他线程不会访问到一个未初始化的对象,从而保证安全性。

代理模式和适配器模式有什么区别?

  • 目的不同:代理模式主要关注控制对对象的访问,而适配器模式则用于接口转换,使不兼容的类能够一起工作。
  • 结构不同:代理模式一般包含抽象主题、真实主题和代理三个角色,适配器模式包含目标接口、适配器和被适配者三个角色。
  • 应用场景不同:代理模式常用于添加额外功能或控制对对象的访问,适配器模式常用于让不兼容的接口协同工作。

相关文章:

  • 视频智能分析平台EasyCVR无线监控:全流程安装指南与功能应用解析
  • 单例模式:确保唯一实例的设计模式
  • Chrome/Edge浏览器使用多屏完美解决方案,http部署使用https部署的功能
  • 【Tools】Git常见操作
  • arm64适配系列文章-第一章-arm64环境上kubesphere和k8s的部署
  • 安裝nginx1.26.3
  • 【MCP】第二篇:IDE革命——用MCP构建下一代智能工具链
  • OCR之身份证识别
  • 第十五届蓝桥杯 2024 C/C++组 艺术与篮球
  • 批量将多个 Excel 表格中的某张图片替换为新的图片
  • 《解锁vLLM:大语言模型推理的加速密码》
  • 大语言模型的“模型量化”详解 - 01:原理、方法、依赖配置
  • python基础语法测试
  • 面向高可靠场景的RISC-V低功耗MCU硬件安全设计
  • 迭代器模式:统一数据遍历方式的设计模式
  • 系统重装——联想sharkbay主板电脑
  • JAVA设计模式——(四)门面模式
  • 系统架构师2025年论文《系统架构风格》
  • Python----深度学习(神经网络的过拟合解决方案)
  • 【无人机】无人机光流模块Optical Flow设置(三),光流测距一体传感器的配置。凌启科技的光流测距一体模块的测试。
  • “矿茅”国际化才刚开始?紫金矿业拟分拆境外黄金矿山资产于港交所上市
  • “名额5分钟抢完”,一场花费上万元:越野赛凭什么这么火?
  • 视频公开课上线之后,北大成为多少人未曾谋面的母校?
  • 美法官裁定特朗普援引战时法律驱逐黑帮违法,系首次永久性驳回
  • CMG亚太总站:没有邀请韩国偶像团体举办巡回演出
  • “五一”假期首日跨区域人员流动预计超3.4亿人次