关于单例和static

从事JavaEE开发都一年多了,猛一回头,发现还有不少问题,现在一个问题一直没弄明白,希望高手们不吝赐教,
就是关于单例模式和static 的区别比较。
比如对于一个UserManager类,若用单例的方式来实现:
class UserManager {
private static UserManager instance = new UserManager();
private UserManager() {}
public static UserManager getInstance() {
return instance;
}
public void addUser(User user) {...}
public void delUser(int id) {...}
}
如果把它的方法都定义为static的:
class UserManager {
private UserManager() {}
public static void addUser(User user) {...}
public static void delUser(int id) {...}
}

请问各位,这两种方法到底有什么异同,用哪个比较好?非常感谢!

单例模式,明明白白就是创建一个类的实例嘛,

static方式,不会创建任何实例,只是把类加载到内存就行了,

如果你只是想提供一个通用公共接口方法的话,就好比一些以Utils结尾的类,
那就用这种方式比较好,

如果有更多事要做的话,比如管理一些状态,对象等,就用单例模式

没有 static 的方法需要对象实例化,有的就不用实例化对象,直接使用就可以了.

[quote]class UserManager {
private static UserManager instance = new UserManager();
private UserManager() {}
public static UserManager getInstance() {
return instance;
}
public void addUser(User user) {...}
public void delUser(int id) {...}
} [/quote]
这个是单例,单例就是构造方法是私有的,这里通过调用getInstance返回UserManager的实例,而static就是不创建任何对象前提下,仅通过类本身调用static方法.跟对象扯不上关系.
[quote]
class UserManager {
private UserManager() {}
public static void addUser(User user) {...}
public static void delUser(int id) {...}
} [/quote]
这个跟单例扯不上关系..只是把构造方法么有而己..另外多了两个static方法..