Java入门 16 3\23

Java入门 16 3\23

单例(Singleton)设计模式

二十三种设计模式

  • 定义:采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。

    做法:

      1. 将类的构造器访问权限设置为private。
      2. 只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中静态成员变量。
      3. 指向内部类产生的该类对象的变量也必须定义成静态的.
    

饿汉式

public class EHanShi
{
    public static void main(String[] args)
    {
        Bank instance = Bank.getInstance();
    }
}

class Bank{
    //1. 私有化类的构造器。
    private Bank()
    {
    }
    //2. 内部创建类的对象。
    //4. 要求此对象也必须声明为静态的 (因为静态方法只能调用静态对象)
    private static Bank instance = new Bank();
    
    //3. 提供公共的静态的方法,返回类的对象。
    public static Bank getInstance()
    {
        return instance;
    }
}

懒汉式

public class LanHanShi
{
    
}

class Bank
{
 	//1.私有化类的构造器。
    private Bank()
    {
        
    }
    
    //2.声明当前类对象,没有初始化。
    //4.此对象也必须声明为static的。
    private static Bank instance = null
        
    //3.声明public、static的  返回当前类对象  的方法。
    public Bank getInstance()
    {
        // instance = new Bank();   不对,方法的每次调用都会有新的对象,并不是唯一一个。
        if(instance == null)   //如果时null,则没有被创建过。
        {
            instance = new Bank();
        }
        return instance;
    }
}

懒汉式和饿汉式的对比

直接区分法

饿汉式: 直接new了一个对象,不一定用不用,在内存时间比较长。

懒汉式: 只有在调用方法的时候才去new一个对象,只有需要的时候才会创建。

饿汉式:

​ 坏处: 对象加载时间过长。

​ 好处: 是线程安全的。

懒汉式:

​ 好处: 延迟对象的创建。

​ 坏处:目前的写法,线程不安全。 -------->到多线程内容时,再修改。

单例设计模式的优点

  • 单例设计模式的优点:只生成一个实例,减少了系统性能的开销

main()方法的语法

  • main()方法作为程序的入口。
  • main()方法也是一个普通的静态方法。
public class MainTest()
{
	public static void main(String[] args)   /入口
	{
		Main.main(args);   (静态不用调对象,只有非静态需要调对象,用对象调用静态方法)
	}
}

class Main
{
    	public static void main (String[] args)   //静态方法   
        {
            args = new String[100];
            for(int i = 0; i < args.length; i++)
            {
                args[i] = "args_" + i;
                System.out.println(args[i]);
            }
        }
}
  • main()方法可以作为我们与控制台交互的方式。(此前,使用Scanner)
public class Main Demo
{
    public static void main(String[] args)
    {
        for(int i= 0; i < argsx.length; i++)
        {
            System.out.println("************" + args[i]);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值