单例包装其他类 java_第三次学JAVA再学不好就吃翔(part117)--单例设计模式

第三次学JAVA再学不好就吃翔(part117)--单例设计模式

第三次学JAVA再学不好就吃翔(part117)--单例设计模式

学习笔记,仅供参考,有错必纠

文章目录

多线程

单例设计模式

饿汉式

懒汉式

第三种格式

Timer类

线程的五种状态

单例设计模式

单例设计模式,即保证类在内存中只有一个对象,如何保证类在内存中只有一个对象呢:

控制类的创建,不让其他类来创建本类的对象;

在本类中定义一个本类的对象;

提供本类对象的公共访问方式。

饿汉式

class Singleton {

//1,私有构造方法,其他类不能访问该构造方法了

private Singleton(){}

//2,创建本类对象

private static Singleton s = new Singleton();

//3,对外提供公共的访问方法

public static Singleton getInstance() {//获取实例

return s;

}

}

懒汉式

class Singleton {

//1,私有构造方法,其他类不能访问该构造方法了

private Singleton(){}

//2,声明一个引用

private static Singleton s ;

//3,对外提供公共的访问方法

public static Singleton getInstance() {//获取实例

if(s == null) {

//线程1等待,线程2等待

s = new Singleton();

}

return s;

}

}

第三种格式

class Singleton {

//1,私有构造方法,其他类不能访问该构造方法了

private Singleton(){}

//2,声明一个引用

public static final Singleton s = new Singleton();

}

举个例子

单例设计模式:

package com.guiyang.restudy3;

public class D5GetThreadObject {

public static void main(String[] args) {

Singleton s1 = Singleton.s;

Singleton s2 = Singleton.s;

System.out.println(s1 == s2);

}

}

class Singleton {

//1,私有构造方法,其他类不能访问该构造方法了

private Singleton(){}

//2,声明一个引用

public static final Singleton s = new Singleton();

}

控制台输出:

true

Timer类

Timer类是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。

构造方法

public Timer()

创建一个新计时器,相关的线程不作为守护程序运行。

方法

public void schedule(TimerTask task, Date time)

安排在指定时间执行指定任务。如果此时间已过去,则安排立即执行该任务。

public void schedule(TimerTask task, Date firstTime, long period)

安排指定任务在指定时间开始进行重复的固定延迟执行。以近似固定的时间间隔(由指定的周期分隔)进行后续执行。

举个例子

JAVA代码:

package com.guiyang.restudy3;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;

public class D5GetThreadObject {

public static void main(String[] args) throws InterruptedException {

Timer t = new Timer();

//在指定时间安排指定任务

//第一个参数,是安排的任务,第二个参数是执行的时间,第三个参数是过多长时间再重复执行

t.schedule(new MyTimerTask(), new Date(120, 8, 26, 10, 13, 0), 3000);

while(true) {

Thread.sleep(1000);

System.out.println(new Date());

}

}

}

/*public Date(int year,

int month,

int day)已过时。 使用构造方法 Date(long date) 替代

构造一个使用给定 year、month 和 day 初始化的 Date 对象。

如果给定参数超出范围,则结果是不确定的。

参数:

year - year 减去 1900,它必须是 0 到 8099 之间的数。(注意,8099 是由 9999 减去 1900 得到的。)

month - 0 到 11 之间的数

day - 1 到 31 之间的数

hrs - 0-23之间的小时数

min - 0-59之间的分钟数

sed - 0-59之间的秒数*/

class MyTimerTask extends TimerTask {

@Override

public void run() {

System.out.println("背6级单词!!!");

}

}

线程的五种状态

c099269113670a89493f51089bea57f1.png

第三次学JAVA再学不好就吃翔(part117)--单例设计模式相关教程

java的数组

java的数组 java的数组 数组 java内存分析 三种初始化 静态初始化:具体的集合进行赋值的初始化 动态初始化:创建容量,然后对容量里面的具体值进行赋值 数组的四个基本特点 数组边界 二维数组 数组 数组是相同类型的数据的有序集合。{ , ,} 首先必须声明数

基于java实现的宿舍管理系统jsp+MySQL+servlet学生宿舍管理系统

基于java实现的宿舍管理系统,jsp+MySQL+servlet学生宿舍管理系统 基于java实现的宿舍管理系统,jsp+MySQL+servlet学生宿舍管理系统 感兴趣的朋友可以家 3070830895 概况 包括视频教学 第二讲:实现登录页面设计。 第三讲:验证码实现及登录功能设计。 第四

Java为什么需要包装类

Java为什么需要包装类? Java为什么需要包装类? Java是面向对象的语言,但并不是“纯面向对象”的,因为我们经常用到的基本数据类型就不是对象。但是我们在实际应用中经常需要将基本数据转化成对象,以便于操作。比如:将基本数据类型存储到Object[]数组或

java基础--JDK安装环境变量配置工具开发第一个程序数据类型运算

java基础--JDK安装、环境变量配置、工具开发第一个程序、数据类型、运算符 **-----Java基础大纲-----** **-----本章节-----** 1.Java语言的历史、特点及工作原理 2.JRE和JDK的介绍 3.Java运行环境和开发工具 4.Java基础语法 **-----下一章节-----** 5.条件语

JavaSE学习笔记(八)(collection..)

JavaSE学习笔记(八)(collection..) 1 .数组长度是固定的,集合长度是可以改变的 2 .数组存储的是同一类型的元素,可以存储基本数据类型,也可以存储对象, 集合只能存储对象。对象类型可以不一致。 int[] arr = new int[10]; Student [] arr = new Studen

【Java】java JMX之ObjectName

【Java】java JMX之ObjectName 1.概述 转载:https://blog.csdn.net/yunlong34574/article/details/46563187 ObjectName 就是存储了一个 domain(域) 下的一些属性,属性的存储采取 key-value 的方式来存储,这个类的一个精华所在就是 domian 及属性(key或者v

java构建聚合项目

java构建聚合项目 一、创建taotao-parent 此工程不会写任何代码,仅仅用来管理整个项目的依赖版本和插件信息(会配置pom),并不是主工程 project xmlns=http://maven.apache.org/POM/4.0.0 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instancexsi:schemaLo

《javascript语言精粹》读书笔记(四)

《javascript语言精粹》读书笔记(四) 为什么80%的码农都做不了架构师? 本篇对这本书的附录进行摘要。 附录A:糟粕 A.1全局变量 全局变量是javascript所有糟糕特性中最糟糕的。 全局变量是在所有作用域中均可见的变量。如果某些全局变量碰巧和子程序中的变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值