关于JSP使用静态static方法的问题
我写了一个自己的类,里面有一个静态的方法:
private static FileInputStream pfile;
public static String getColor(String key){
if(pfile == null){
pfile = new FileInputStream("111.property");
.....
....
...
}
}
运行环境是WebSphere,具体的配置搞不清=_=!!
我理解就是这个class放在那个web-inf/class 什么目录里面就能调用了
因为是静态的可以直接使用: XXXXX.getColor("red_1022")
我想问的就是那个static FileInputStream pfile 这个变量
是不是正常情况下,第一次在使用getColor的时候这个变量就读到文件,然后就不为null值,以后就不读了
那么pfile 这个变量保存在什么地方?
------解决方案--------------------保存在服务器端的堆或者栈里面,具体不记得了。
第一次访问的时候判断是否为空,为空才去读,以后就不读了。
------解决方案--------------------印象是中栈中
------解决方案--------------------我觉得,pfile保存在哪里不重要,因为它是静态变量,在java中变量一旦被定义成static,那么在你的web项目里的jsp页面、java类中这个变量是共用的;
建议把private static FileInputStream pfile; => private static FileInputStream pfile=null;
------解决方案--------------------对象在堆里,引用在栈里