学习笔记之单例设计模式(2015,10,15)

public class LOL {
    /*
     * 懒汉式
     */
    private String name;
    //private static LOL lol = null;
    private static LOL lol = new LOL();
    
    private LOL(){
    }
    
    /*public synchronized static LOL getLol(String argName){
        if(lol == null){
            lol = new LOL(argName);
        }
        return lol;
    }*/
    
    /*
     * 饿汉式
     */
    public static LOL getLol(String name){
        lol.setName(name);
        return lol;
    }
    
    public void setName(String name){
        this.name = name;
    }
    
    public String getName(){
        return this.name;
    }
}

今天初次接触单例设计模式:该类对象在系统中最多只能产生一个。

通过生活中的观察,好像LOL就是单例的,所以就写个LOL纯粹为了好玩。

有懒汉式和饿汉式两种,其中懒汉式是在通过调用getLol方法时在生成对象,比较懒。

饿汉式是在编译过程中的时候就初始化完成了,比较积极(饥渴)

下面的测试的案例

public class TestLOL {

    /**
     * @param args
     */
    public static void main(String[] args) {
        LOL s = LOL.getLol("东少K");
        System.out.println(s.getName());
        LOL k = LOL.getLol("东少咔");
        System.out.println(k.getName());
        System.out.println(s == k);
        s.setName("");
    }

}

打印的结果:

然后就是main方法:

为什么要写main方法?我们都知道,main方法是程序的入口,这个方法是给JVM调用的,想到这里,自然就可以解释为什么要用public static 修饰了

因为在JVM调用main方法的时候,由于JAVA的语法规定public的使用范围最广(如果设置为private或其他的,JVM要调用

main就违背语法了),什么也没有(没有实例),JVM只能通过类名+成员名访问,这样才方便调用main方法。

之后就是(String[] args)这个基本上用不到,可以通过运行时 java 类名 args    给args赋值。

原文地址:https://www.cnblogs.com/hnzyyTl/p/4883600.html