Arm*_*and 5 java system-properties
它们是否有任何潜在问题(安全性、性能)或与使用System.getProperty()/System.setProperty()在 Java 中存储应用程序范围的变量相关的普遍不良情绪?
是的,这是不好的做法,原因有很多:
性能:系统属性对象是引擎盖下的哈希表。获取和设置可能比普通的 getter 或 setter 方法慢 2 个数量级。
类型安全:除非你的变量都是字符串,否则你会遇到属性值可能类型错误的问题,从而导致运行时错误、复杂性等。
类型转换成本:例如,必须在每个 set 和 get 操作上转换整数值属性。不便宜。
可追溯性:找到对真实变量的引用比对命名系统属性更容易。
安全限制:对系统属性的访问由安全管理器控制。
当然,这是不必要的。如果你真的需要“全局”变量,static变量就可以很好地完成工作。如果您确实需要使用Properties对象来保存应用程序的(非系统)属性,请使用该Properties对象的单独实例。
| 归档时间: |
|
| 查看次数: |
5337 次 |
| 最近记录: |