class Singleton
{
private static Singleton instance;
private Singleton(){System.out.println("执行了!");}
public static Singleton getInstance()//static方法
{
if(instance==null)
{
instance =new Singleton();//这里执行构造器了,但是构造器没有用static修饰啊?
}
return instance;
}}
{
private static Singleton instance;
private Singleton(){System.out.println("执行了!");}
public static Singleton getInstance()//static方法
{
if(instance==null)
{
instance =new Singleton();//这里执行构造器了,但是构造器没有用static修饰啊?
}
return instance;
}}
他是 new Singleton() ; 何必要 staticpublic static Singleton getInstance()//static方法
你外部通过 Singleton.getInstance() 就得到你的
private static Singleton instance; 定义的instance了 ;不明白你为什么问 {这里执行构造器了,但是构造器没有用static修饰啊?}
他是 new Singleton() ; 何必要 staticnew一个对象时不是默认执行构造器吗?
private Singleton(){System.out.println("执行了!");}//构造方法!!!
static指的是在引用类的时候就自动为相应的变量和函数申请了相应的内存。
instance需要自己来分配内存。自己来为参照类型来分配内存的时候,会调用到
构造函数。可不可以使用本质上就是所指向的内存是否是有效的。
static不能修饰构造方法吗?为什么?
能不能详细一点? private Singleton(){System.out.println("执行了!");}
这句可不可以写: private static Singleton(){System.out.println("执行了!");}
比如你这个class中有个static的方法function()
你可以直接写 instance=function()
如果是非静态的function()
你只能写instance=new singleton.function()
你能理解这个差别吗?