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]);
}
}
}