java 静态方法很多,静态方法是存储在哪个代里?

我问题是这样的:

关于java的静态方法,是存在常量代吧?
如果静态方法很多会对内存有多大影响?
最近发现项目里dao,manger那一次,全部写成静态方法的方式调用方式,这样推荐嘛?

或者这样说吧,
静态类,变量或方法 是相对于编程语言(JAVA)这一层面说的,
单例等是相对于软件工程的设计模式这一层面说的
只是在JAVA里的单例是通过静态变量等手段实现,用来保证只有一个实例对像.

当然你可以直接声明静态方法或类直接调用
就像你完全可以不用什么STRUTS,SPRING,HIBERNATE,自己把所有东西放到一个MAIN函数里.也能实现业务上的功能 .

还有静态变量 你就得考虑同步的问题,不然一个人开发时测试不出什么问题,当高并发时,就容易 出现这个静态变量 被其他线程修改的问题(因为你的一个静态变量在内存里只有一个值)
同单例模式 一样,单例拿到的对像也是要考虑线程同步的问题,以前的STRUTS1.X就是一个单例问题引起的线程不安全问题

再有就是静态变量是不会被 JVM内存回收的,虽然只加载一次,再用内存少,不像那些NEW出来的对像,NEW 多少次会加载多次那样占内存.但是这静态东西用多了,就会造成无法GC,内存不够等 问题,

正因为如此,不是说想用静态就不加限制的用的

DAO,MANAGER写成静态的是实现 单例,那样才更省内存。。。

从JVM内存管理的角度谈谈静态方法和静态属性
[url]http://blog.csdn.net/wind5shy/archive/2009/01/14/3776931.aspx[/url]
[url]http://hupy.iteye.com/blog/796265[/url]

[quote]我想问的是这样对于java的gc的内存占用的不同?
我现在存在问题就是:既然静态方法只是类加载的时候加载一次,在内存里也是一次,那还用单例的干啥呢?关键是单例的也是只加载一次啊?
而且方法都是存储在类类常量区。这样也没什么影响啊? [/quote]

静态方法是只加载一次,但是,如果不是单例,那这个方法的发起对象可能是另一个实例。单例是针对对象,在整个jvm只有一份。

[quote]但是静态方法也是只有一次,静态方法的发起者是直接这个类本身啊,也说不通啊?
我直接用静态方法得了。 [/quote]
是可以这样用。