bao231 2011-05-06 18:14
浏览 316
已采纳

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

我问题是这样的:

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

  • 写回答

5条回答 默认 最新

  • suziwen 2011-05-08 16:52
    关注

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

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

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

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮