日期:2014-05-20  浏览次数:20668 次

Java中关于静态方法的疑问
Java语法中规定,静态方法的访问方式为类名.方法名。
相对于普通方法而言,调用起来更加的方便,那么,我有这样的想法,把所有的方法都改写成静态的,那使用起来不就很方便了嘛,干嘛还要写成普通方法,每次必须new对象才能使用。

我这里指的所有方法,主要可以针对于系统里的dao层,即所有的业务逻辑处理的方法,比如各种数据的查询,把所有的这些业务逻辑处理的方法都改成静态的。

我觉得这样做应该是不好的,要不然早就这么做了,那么,静态方法是有什么缺陷吗?所以才不能这样做。

系统里很多的工具类的方法,一般都写成静态的,不也是为了使用方便吗?
为什么不能把逻辑处理的方法都改成静态的呢?

新手求解惑

------解决方案--------------------
主要是没有多态,多态众多设计模式必备的东西
------解决方案--------------------
占内存
没有访问控制权限

------解决方案--------------------
实例变量和实例方法只能在实例方法中使用,不能再静态方法中使用。
也就是是说,我一直使用静态方法,几乎整个程序都是静态变量了。
所以很占内存空间,我是这样认为的
------解决方案--------------------
静态方法是属于类的,内存必须为它分配内存空间,这个空间一直由静态方法占用,内存管理器不会由于静态方法没有被调用而将静态方法的存储空间收回,这样如果将所有的方法都声明为静态方法,就会占用大量的内存空间,最后是系统变慢。而普通的成员方法是由对象调用的,内存并不会一直为起分配内存,只有调用的时候才为其分配存储空间,而当其没有被调用时,存储空间就会被内存管理其收回,释放没有用的空间,提高的系统的运行速率!希望对楼主有帮助!