java 第12天 单例 接口

一.设计模式之单例模式

*饿汉式/醉汉式  步骤:

  1. 创建私有化构造方法
  2. 私有的 静态的 属于本类类型的对象
  3. 公共的 静态的返回本类对象的方法
// 醉汉式/饿汉式
class Moon{// 1 私有化构造方法private Moon(){}// 2 创建一个私有的静态的属于本类类型的对象private static Moon only = new Moon();// 3 提供一个公共的 静态的 返回本类对象的方法public static Moon getOnly(){return only;}
}

 *懒汉式 尚不完善 需要枷锁

.synchronized 枷锁

public class TestSingle2{public static void main(String[] args){}
}
// 懒汉式-
class Moon{private Moon(){}private static Moon only;// 0xA// 一个资源 getOnly()// 张三Moon.getOnly() 0xA 时间片 3ms// 李四Moon.getOnly()0xA 时间片 5ms// 张三 李四 李四 张三public static synchronized Moon getOnly(){if(only == null){// 时间片耗尽 张三====only = new Moon();// 0xA}return only;// 0xA}
}

二.java中的四大类型

1.class类

2.enum 枚举类

3.interface 接口类

4.@interface 注释类

四大类型都能产生对应的.class文件

三.接口类 interface

接口中注意的点

接口中的注意点
1. 接口中的属性默认有 public static final 修饰
2. 接口中的方法默认有 public abstract 修饰
3. 接口不能直接创建对象?不可以。防止调用抽象方法
接口可以间接创建对象【创建的同时 + 所有抽象方法全部实现】 
interface USB{
void connect();
}
// USB uu = new USB(); // 报错
main():
// 匿名类
// 一次性
USB uu = new USB(){
@Override
public void connect(){}
};

面试题:接口和抽象类的区别

1 类型不同
接口 interface
抽象类 class
2 属性不同
接口中的属性默认有 public static final 修饰
抽象类中的属性都是普通属性
3 方法不同
接口中的方法都是抽象方法
jdk8 . 0 之后接口中允许出现普通方法 但是前面必须有 static / default
jdk9 . 0 之后接口中允许出现私有方法
抽象类中既可以出现普通方法也可以出现抽象方法
4 继承关系不同
接口:多实现 多继承
抽象类:单根继承

注意点

 class class => extends

class interface => implements
interface interface => extends

接口简单使用代码

public class Exec1{public static void main(String[] args){插座 cc = new 插座();洗衣机 xx = new 洗衣机();cc.通电(xx);}
}
/**电器和插座的关系1 制定规范 【电器的规范】属性:220v方法:open() close()2 找到类型实现上面的规范 洗衣机 冰箱3 找到类型使用上面的规范 插座-供电(电器)
*/
interface 电器{// public static finalint v = 220;// public abstractvoid open();void close();
}class 洗衣机 implements 电器{@Overridepublic void open(){System.out.println("打开洗衣机");}@Overridepublic void close(){System.out.println("关闭洗衣机");}
}class 插座{public void 通电(电器 dd){dd.open();System.out.println("插座通电");dd.close();}
}

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

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

相关文章

YOLOv11改进策略【卷积层】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块

一、本文介绍 本文记录的是基于FasterNet的YOLOv11轻量化改进方法研究。FasterNet的网络结构借鉴 CNN 的设计理念,通过提出的PConv减少推理时的计算和内存成本,同时减少通道数并增加部分比例,降低延迟,并通过后续的PWConv来弥补特征信息可能缺失的问题,提高了准确性。本文…

如何在 MySQL 中处理大量的 DELETE 操作??

全文目录: 开篇语前言摘要简介概述DELETE 操作的基本概念常用的 DELETE 方法 核心源码解读简单 DELETE 语句批量 DELETE 示例 案例分析案例1:使用简单 DELETE 删除用户数据案例2:使用分批 DELETE 应用场景演示场景1:用户管理系统场…

linux系统之jar启动脚本

编辑linux启动脚本 执行 vi run_blog 按i 进入编辑,复制以下代码,并根据当前环境修改三个参数。以下是详细完整脚本代码: #!/bin/bash# 配置部分 JAR_PATH"/path/to/your/app.jar" # 替换为你的 JAR 文件的实际路径 L…

Gin框架操作指南07:路由与中间件

官方文档地址(中文):https://gin-gonic.com/zh-cn/docs/ 注:本教程采用工作区机制,所以一个项目下载了Gin框架,其余项目就无需重复下载,想了解的读者可阅读第一节:Gin操作指南&#…

【JVM】内存模型

文章目录 内存模型的基本概念案例 程序计数器栈Java虚拟机栈局部变量表栈帧中局部变量表的实际状态栈帧中存放的数据有哪些 操作数栈帧数据 本地方法栈 堆堆空间是如何进行管理的? 方法区静态变量存储 直接内存直接内存的作用 内存模型的基本概念 在前面的学习中,我们知道了字…

Java 8 Stream API:从基础到高级,掌握流处理的艺术

一、Stream(流)基本介绍 Java 8 API 添加了一个新的抽象称为Stream(流),可以让你以一种声明的方式处理数据,这种风格将要处理的元素集合看做一种流,元素流在管道中传输,并在管道中间…

云黑系统全解无后门 +搭建教程

这套系统呢是玖逸之前南逸写的一套云黑系统,功能带有卡密生成和添加黑名单等,源码放在我的网盘里已经两年之久,由于玖逸现在已经跑路了所以现在发出来分享给大家,需要的可以自己拿去而开,反正功能也不是很多具体的自己…

电脑视频剪辑大比拼,谁更胜一筹?

随着短视频的火爆,越来越多的人开始尝试自己动手制作视频,无论是记录生活点滴还是创作个性短片,一款好用的视频剪辑软件是必不可少的。今天,我们就从短视频运营的角度,来聊聊几款热门的电脑视频剪辑软件,看…

docker配置加速器

阿里云 控制台》容器镜像服务》镜像工具》镜像加速器 复制地址:https://ywtoq7bz.mirror.aliyuncs.com 到:etc/docker下:vi daemon.json 格式: { "registry-mirrors": ["加速器地址"] } 注&#xff1…

JavaScript:闭包、防抖与节流

一,闭包 1,什么是闭包 闭包是指一个函数和其周围的词法环境(lexical environment)的组合。 换句话说,闭包允许一个函数访问并操作函数外部的变量。 闭包的核心特性: 函数内部可以访问外部函数的变量即使外部函数已经返回,内部…

Centos7 安装部署Zookeeper

官网地址:https://zookeeper.apache.org/ 1. Zookeeper 介绍 Apache ZooKeeper是一个开源的分布式协调服务,它用于维护配置信息、命名、提供分布式同步以及提供组服务等。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&#x…

一款新开源跨平台的.NET Word(docx)模版导出引擎,完美支持Linux和Mac操作系统(附源码)

前言 在数字化办公日益盛行的今天,文档处理成为了我们日常工作不可或缺的一部分。然而,许多传统的文档处理工具都依赖于特定的操作系统和复杂的组件安装,这无疑给跨平台办公带来了诸多不便。为了解决这一问题,我们找到了一个新的…

【MR开发】在Pico设备上接入MRTK3(一)——在Unity工程中导入MRTK3依赖

写在前面的话 在Pico上接入MRTK3,目前已有大佬开源。 https://github.com/Phantomxm2021/PicoMRTK3 也有值得推荐的文章。 MRTK3在PICO4上的使用小结 但由于在MacOS上使用MRTK3,无法通过Mixed Reality Feature Tool工具管理MRTK3安装包。 故记录一下…

◇【论文_20151120_20160405v3】Dueling Network 决斗〔Google DeepMind〕

整理代码:Dueling_DQN__Pendulum_v1.ipynb https://arxiv.org/abs/1511.06581 Dueling Network Architectures for Deep Reinforcement Learning 文章目录 摘要1. 引言1.1. 相关工作 2. 背景2.1. Deep Q-networks 【DQN】2.2. Double Deep Q-networks 【DDQN】2.3…

OpenCV高级图形用户界面(13)选择图像中的一个矩形区域的函数selectROI()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 允许用户在给定的图像上选择一个感兴趣区域(ROI)。 该功能创建一个窗口,并允许用户使用鼠标来选择一个 ROI。…

Apache Cordova学习计划

Apache Cordova(之前称为 PhoneGap): 1. PhoneGap的起源:2008年8月,PhoneGap在旧金山的iPhoneDevCamp上首次亮相,由Nitobe公司开发,目的是“为跨越Web技术和iPhone之间的鸿沟牵线搭桥”。 2. Ph…

其他css的用途

1.animation-fill-mode: backwards; //避免了在动画开始前元素的突然显现,动画必要。 2.用rem响应式字体大小,可以在html样式定义font-size?(例10px,62.5%(100%是16px))。然后样式就可以用rem代替px。 3.color: transparent;: 这行代码将文…

UDP协议和TCP协议

UDP协议: 是一种无连接的、简单的传输层通信协议,它在IP协议(网络层)之上提供服务。 特点: 无连接:在数据传输前,发送方和接收方之间不需要建立连接,可以直接发送数据。 简单&…

计算生物学与生物信息学漫谈-2-测序深度/读长质量和Fasta处理

上一篇文章中我们介绍了测序技术的由来与发展,那么在介绍第三代测序的时候,我们提到了关于测序深度和读长的问题,那么本篇文章就详解介绍一下。 计算生物学与生物信息学漫谈-1-测序一路走来-CSDN博客 目录 1.测序深度SEQUENCING DEPTH &…

《AI生成式工具使用》之:自助生成视频

目录 背景说明及目标: 实现过程: 1、有问题找度娘 2、利用剪映AI生成视频具体步骤 剪映AI感受 3、利用万彩AI生成视频具体步骤 万彩AI感受 4、利用腾讯云剪生成视频具体步骤 腾讯云剪感受 最终结论: 关注我,躺不平就一起…