关于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;
[解决办法]
对象在堆里,引用在栈里