系统有一个常量类,用来保存一些公用的不可变信息,所有常量都被声明为 public static final,但其中一个常量,用于保存系统的绝对路径(WebRoot),这个常量需要在Servlet启动后加载,所以目前就不能把改常量声明为final,但这存在一个非常大的隐患,就是如果某程序员不小心(或恶意)在代码中修改了改常量,将会导致整个系统无法正常运行(因为系统的配置信息文件都保存在该常量指定的路径中)。
这里有两个问题:
1.这种情况,请问有什么比较好的解决方案;
2.对于常量类,他没有公有的构造方法,没有任何静态或非静态方法,只有static成员变量,请问该常量类在内存中会否存在实例,而它的所有成员变量,究竟是在什么时候被实例化到系统的内存当中?是当Web系统被容器加载的时候吗?还是在该常量被第一次调用的时候才延迟加载?
这里有两个问题:
1.这种情况,请问有什么比较好的解决方案;
2.对于常量类,他没有公有的构造方法,没有任何静态或非静态方法,只有static成员变量,请问该常量类在内存中会否存在实例,而它的所有成员变量,究竟是在什么时候被实例化到系统的内存当中?是当Web系统被容器加载的时候吗?还是在该常量被第一次调用的时候才延迟加载?