阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

手机号码,快捷登录

老司机
查看: 810|回复: 0

[转帖] Java中静态变量的适用场景

[复制链接]
  • TA的每日心情
    郁闷
    2012-3-7 10:18
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2012-1-5 10:50:22 | 显示全部楼层 |阅读模式
    Java类中的静态变量在程序运转期间,其内存空间对所有该类的对象实例而言是共享的,有些时分可以以为是全局变量。因此在某些时分为了节省系统内存开销、共享资源,可以将类中的一些变量声明为静态变量,经过下面的例子,你可以发现合理运用静态变量带来的益处:  Java代码  publicclassWeekA{   staticclassData{   privateintweek;   privateStringname;   Data(inti,Strings){   week=i;   name=s;   }   }   Dataweeks[]={   newData(1,"Monday"),newData(2,"Tuesay"),newData(3,"Wednesday"),newData(4,"Thursday"),newData(5,"Friday"),newData(6,"Saturday"),newData(7,"Sunday")   };   publicstaticvoidmain(Stringargs[]){   finalintN=10000;   WeekAweekinstance;   for(inti=1;i=N;i++){   weekinstance=newWeekA();   }   }   }   publicclassWeekA{   staticclassData{   privateintweek;   privateStringname;   Data(inti,lStrings){   week=i;   name=s;   }   }   Dataweeks[]={   newData(1,"Monday"),newData(2,"Tuesay"),newData(3,"Wednesday"),newData(4,"Thursday"),newData(5,"Friday"),newData(6,"Saturday"),newData(7,"Sunday")   };   publicstaticvoidmain(Stringargs[]){   finalintN=10000;   WeekAweekinstance;   for(inti=1;i=N;i++){   weekinstance=newWeekA();   }   }   }  在上面这段代码中,没有将Data weeks声明为静态变量,因此当创建WeekA对象时将会得到10 000个weeks对象的正本,这些对象被保管在内存中,但是weeks对象中的数据却从来没有被更改正,而且十分波动。因此,假如能使所有对象共享该数据对象是个不错的处理办法,请看下面的代码:
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表