java设计模式之单例设计模式
单例设计模式
- 保证一个类在使用过程中,只有一个实例。优势就是他的作用,这个类永远只有一个实例。
优势:这个类永远只有一个实例,占用内存少,有利于Java垃圾回收。
单例设计模式关键点
- 私有的构造方法。
- 提供一个外界能够访问的方法。
单例模式代码演示
- 懒汉模式(延迟加载)
package test;
//懒汉模式
public class Teacher {
private static Teacher tea=null;
private Teacher(){}//提供私有的构造方法
//提供外界能够访问的静态方法
public static Teacher getTeacher(){
if(tea==null){
tea=new Teacher();
}
return tea;
}
} - 饿汉模式(饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变。)
package test;
//懒汉模式
public class Teacher {
private static Teacher tea=null;
private Teacher(){}//提供私有的构造方法
//提供外界能够访问的静态方法
public static Teacher getTeacher(){
if(tea==null){
tea=new Teacher();
}
return tea;
}
} - 测试类:
package test; public class Test {
public static void main(String[] args) {
Student student = Student.getStudent();
System.out.println(student);
Teacher teacher = Teacher.getTeacher();
System.out.println(teacher);
}
}
java设计模式之单例设计模式的更多相关文章
- java软件设计模式只单例设计模式
概述 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计 ...
- Java学习笔记——单例设计模式Singleton
单例设计模式:singleton 解决的问题: 确保程序在运行过程中,某个类的实例instance只有一份. 特点: 1 构造函数私有化 2 自己内部声明自己 3 提供一个public方法,负责实例化 ...
- Java笔记(十一)……单例设计模式
设计模式 解决某一类问题最行之有效的方法 Java中有23中设计模式 单例设计模式 解决一个类在内存中只存在一个对象 思路 将构造函数私有化 在类中创建一个本类对象 提供一个方法可以获取到对象 两种方 ...
- Java中常用来处理时间的三个类:Date、Calendar、SimpleDateFormate,以及Java中的单例设计模式:懒汉式、饿汉式以及静态内部类式
(一)java.util.Date类 1.该类有一个long类型的属性:用来存放时间,是用毫秒数的形式表示,开始的日期是从1970年1月1号 00:00:00. 2.该类的很多方法都已经过时,不 ...
- java设计模式之单例设计模式和多例设计模式
单例设计模式:构造方法私有化,在类的内部定义static属性和方法,利用static方法来取得本类的实例化对象:无论外部产生多少个实例化对象,本质上只有一个实例化对象 饿汉式单例设计 class Si ...
- Java设计模式之单例设计模式 入门实例
一.基础概念 (1).单例设计模式:保证一个类在内存中的对象唯一性. (2).应用场景:数据都存储在配置文件的对象中,多个程序对同一个配置文件的对象进行操作.一个程序要基于另一个程序操作后的结果进行操 ...
- Java面向对象_单例设计模式
单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点 1.构造方法私有化 2.声明一个本类对象 3.给外部提供一个静态方法获取对象实例 两种实现方式:饿汉式和懒汉式 何种情况下使用呢?当 ...
- Java设计模式之单例设计模式总结
package singleton; /**单例设计模式 饿汉式 * * @author gx *这种方式基于classloder机制避免了多线程的同步问题,不过,instance在类装载时就实例化, ...
- 二·、spring成长之路——委派设计模式和单例设计模式
3.委派设计模式 设计思想:就是多个类去完成一项的工作,其中一个类去分发任务,其他类做具体的任务,而具体表现是这个委派类的工作,具体过程是被委派类来操作的 [ITask.java]定义工作的统一标准 ...
随机推荐
- matlab max函数
>> a=[1,6,3;7,5,6] a = 1 6 3 7 5 6 >> [q,p]=max(a,[],2) 返回每行最大值,q是结果.p是索引 q = 6 7 p = 2 ...
- HDU 5666 Segment
Segment Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- POJ3376 Finding Palindromes —— 扩展KMP + Trie树
题目链接:https://vjudge.net/problem/POJ-3376 Finding Palindromes Time Limit: 10000MS Memory Limit: 262 ...
- YTU 2392: 求各位数字之和
2392: 求各位数字之和 时间限制: 1 Sec 内存限制: 128 MB 提交: 1253 解决: 292 题目描述 编写一个程序,计算任意输入的正整数的各位数字之和.(输入的位数不要超过10 ...
- MAC 开发 stm32 程序
资料:http://www.cnblogs.com/humaoxiao 大神技术.
- codeforces A. Kitahara Haruki's Gift 解题报告
题目链接:http://codeforces.com/problemset/problem/433/A 题目意思:给定 n 个只由100和200组成的数,问能不能分成均等的两份. 题目其实不难,要考虑 ...
- nyoj--86--找球号(一)(hash&&set&&二分)
找球号(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数编号i(0<=i<=10 ...
- 编译含有Servlet的java文件
直接在命令行方式下用javac HelloWorld.java编译HellowWorld Servlet是不行的,因为Java SE JDK不含Servlet类库. 解决方法:在环境变量CLASSPA ...
- Watir: 应用Watir-Webdriver 访问需要证书的网站情况
#Suppose we will access an SVN net require 'watir-webdriver' b = Watir::Browser.new :chrome b.goto ' ...
- 移动web开发------公用css----自己总结
@charset "utf-8"; html, body { background: #fff; color: #505050; font-size: 10px; -moz-use ...