java基础——单例设计模式(懒汉式)

 1 public class Test7 {
 2     // 主函数
 3     public static void main(String[] args) {
 4         Test7.getInstance().function(9, 81);
 5     }
 6
 7     // 私有成员变量
 8     private String name;
 9     private int age;
10     private static Test7 test7;
11
12     private Test7() {
13     }
14
15     public static Test7 getInstance() {
16         if (test7 == null) {// 此行主要为了提高效率
17             synchronized (Test7.class) {
18                 if (test7 == null) {
19                     test7 = new Test7();
20                 }
21             }
22         }
23         return test7;
24     }
25
26     private void function(int num1, int num2) {
27         System.out.println(num1 - num2);
28     }
29
30     public String getName() {
31         return name;
32     }
33
34     public void setName(String name) {
35         this.name = name;
36     }
37
38     public int getAge() {
39         return age;
40     }
41
42     public void setAge(int age) {
43         this.age = age;
44     }
45 }

以上代码中有一个getInstance()方法;

此方法体现了懒汉式的一个重要特征,

即:实例的产生 是在调用者调用它的时候,默认初始化(private static Test7 test7;)为空.

注意:在getInstance()方法中第16行if()条件语句作用仅仅是为了提高代码的效率而设置,

去掉此行代码依然可以运行,但是对于好多实例对象来调用getInstance()方法时,加上if语句明显可以提高执行速度

时间: 2024-10-08 17:02:28

java基础——单例设计模式(懒汉式)的相关文章

java的单例设计模式(对象的延时加载)考试专用

java的单例设计模式(对象的延时加载) ,称为:懒汉式    考试专用例:package day6; public class Single2 {  //考试专用  ,对象的延时加载 ,外号:赖汉式        private static Single2 s=null;        private Single2(){            }        public static synchronized Single2 getInstance(){  //synchronized

单例设计模式懒汉式和恶汉式

一,单例设计模式懒汉式和恶汉式 懒汉式在类加载时不初始化,延迟加载.(配置文件) 饿汉式在类加载时初始化,加载慢,获取对象快. 饿汉式是线程安全的, 懒汉式需要加synchronized,否则不安全. 二,饿汉式 1 public class Singletonehan { 2 private static Singletonehan singleton=new Singletonehan(); 3 private Singletonehan() { 4 } 5 public static Si

黑马程序员——Java基础---单例

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流!                                         单例 设计模式:解决问题最行之有效的方法,让问题简单化,Java中有23种. 单例:解决一个类在内存,只有一个对象 想要保证对象唯一: 1,为了避免其他程序过多建立该类对象,

单例设计模式---懒汉式+饿汉式

package com.Thread; /** * 单例设计模式:确保一个类只有一个对象 */ public class Synchronized_Singleton { public static void main(String[] args) { JvmThread jvm1= new JvmThread(100); JvmThread jvm2= new JvmThread(100); jvm1.start(); jvm2.start(); } } /** * 懒汉式(饿汉式:在声明静态

Spring -11 -单例设计模式 -懒汉式/饿汉式(idea默认的)

单例设计模式 作用: 在应用程序有保证最多只能有一个实例. 好处: 2.1 提升运行效率. 2.2 实现数据共享. 案例:application 对象 懒汉式 3.1 对象只有被调用时才去创建. 3.2  示例代码 3.3由于添加了锁,所以导致效率低. public class lazySingleton { //懒汉式,单例模式! //由于对象需要被静态方法调用,把方法设置为static //由于对象是static,必须要设置访问权限修饰符为private , //如果是public 可以直接

Java之单例设计模式

/*1.单例设计模式: 所谓的单例设计模式:就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例2.如何实现 1.饿汉式 2.懒汉式 3.如何区分 饿汉式: 坏处:对象加载时间过长 好处:饿汉式是线程安全的 懒汉式: 好处:延迟对象的创建 目前的写法坏处:线程不安全. */ public class 单例设计模式 { public static void main(String[] args) {// Bank.getB1(); Order o1 = Order.getInst

java的单例设计模式

/* 单例设计模式解决的问题:可以保证一个类在内存中对象唯性一性(数据实现了共享). 如何保证对象唯一性呢?1,不允许其他程序用 ,2,在该类创建一个本实例.3,对外提供一个方法让其他程序可以获取该象.步骤:1,私有化该类构造函数. 2.通过 new 在本类中创建一个对象. 3,定义一个公有的方法,将创建对象返回.*/ public class Test1 { public static void main(String[] args) { // TODO 自动生成的方法存根 Test5 t1=

单例设计模式懒汉式的缺陷

http://icyfenix.iteye.com/blog/575052 IcyFenix 探索设计模式之六——单例模式 设计模式Spring应用服务器多线程JVM 6.单例模式(Singleton Pattern) 前面说提到的五种创建模式,主要解决的问题是如何创建对象,获得产品.而单例模式最要关心的则是对象创建的次数以及何时被创建. Singleton模式可以是很简单的,它的全部只需要一个类就可以完成(看看这章可怜的UML图).但是如果在“对象创建的次数以及何时被创建”这两点上较真起来,S

设计模式课程 设计模式精讲 8-2 单例设计模式-懒汉式及多线程Debug实战

1 主要内容 1.1 核心功能点 2 代码演练 2.1 单线程调用 2.2 多线程调用 1 主要内容 1.1 核心功能点 2 代码演练 2.1 单线程调用 测试类: package com.geely.design.pattern.creational.singleton; public class Test { public static void main(String [] args){ //这样写异常,因为构造方法私有 // LazySingleton lazySingleton = n