本帖最后由 黑马-唐磊 于 2012-8-3 10:22 编辑
想必楼主还对单例设计模式没有弄清楚吧,使用单例模式可以确保某个类只会有一个实例被创建,不让类以外的任何事物创建对象的实例。非静态方法在创建实例对象时,因为属性的值对于每个对象都各不相同,因此在new一个实例时,会把这个实例属性在垃圾回收堆里拷贝一份,同时这个new出来的对象放在堆栈上,堆栈指针指向了刚才拷贝的那一份实例的内存地址上。而静态方法则不需要,因为静态方法里面的静态字段,就是保存在方法表里了,只有一份。因此静态方法和非静态方法,在调用速度上,静态方法速度一定会快点,因为非静态方法需要实例化,分配内存,但静态方法不用,但是这种速度上差异可以忽略不计,也就是静态的不需要被实例化,类一加载就存在了,所以最好得用上static
|