java设置属性的取值范围是多少_jvm-Java系统属性的范围
系统属性的范围
至少从阅读Properties方法的API规范后,我无法获得关于是否由JVM的所有实例共享系统属性的答案。
为了找出答案,我编写了两个快速程序,这些程序将使用相同的键但不同的值通过Properties设置系统属性:
class T1 {
public static void main(String[] s) {
System.setProperty("dummy.property", "42");
// Keep printing value of "dummy.property" forever.
while (true) {
System.out.println(System.getProperty("dummy.property"));
try {
Thread.sleep(500);
} catch (Exception e) {}
}
}
}
class T2 {
public static void main(String[] s) {
System.setProperty("dummy.property", "52");
// Keep printing value of "dummy.property" forever.
while (true) {
System.out.println(System.getProperty("dummy.property"));
try {
Thread.sleep(500);
} catch (Exception e) {}
}
}
}
(请注意,运行上面的两个程序将使它们陷入无限循环!)
事实证明,使用两个单独的Properties进程运行两个程序时,在一个JVM进程中设置的属性值不会影响另一个JVM进程的值。
我应该补充一点,这是使用Sun的JRE 1.6.0_12的结果,并且至少在API规范中没有定义此行为(或者我找不到它),行为可能会有所不同。
是否有任何工具可以监视运行时更改
据我所知。 但是,如果确实需要检查系统属性是否有更改,则可以一次保存Properties的副本,并将其与另一个对System.getProperties的调用进行比较-毕竟Properties是Properties的子类, 因此比较将以类似方式执行。
下面的程序演示了一种检查系统属性是否已更改的方法。 可能不是一个优雅的方法,但是它似乎可以完成它的工作:
import java.util.*;
class CheckChanges {
private static boolean isDifferent(Properties p1, Properties p2) {
Set> p1EntrySet = p1.entrySet();
Set> p2EntrySet = p2.entrySet();
// Check that the key/value pairs are the same in the entry sets
// obtained from the two Properties.
// If there is an difference, return true.
for (Map.Entry e : p1EntrySet) {
if (!p2EntrySet.contains(e))
return true;
}
for (Map.Entry e : p2EntrySet) {
if (!p1EntrySet.contains(e))
return true;
}
return false;
}
public static void main(String[] s)
{
// System properties prior to modification.
Properties p = (Properties)System.getProperties().clone();
// Modification of system properties.
System.setProperty("dummy.property", "42");
// See if there was modification. The output is "false"
System.out.println(isDifferent(p, System.getProperties()));
}
}
属性不是线程安全的吗?
Properties是线程安全的,因此我期望Properties也是这样,事实上,Properties类的API规范证实了这一点:
此类是线程安全的: 线程可以共享一个Properties 不需要外部物体 同步。,序列化表格
java设置属性的取值范围是多少_jvm-Java系统属性的范围相关推荐
- select html默认选中的值,HTML/jquery中的select标签设置默认选中取值
一.jQuery中的select标签设置默认选中取值 每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了. 比如 1.设置value为pxx的项选中 $(" ...
- Java|Java中int的取值范围是多少
Java 中 int 的取值范围是:-2^31 ~ 2^31-1 大致想一下,int 占 4字节,也就是 32 位,int 是有符号的,最高位为符号位.所以剩下31个位置. 那么我们大胆猜测一下,最大 ...
- Java中int的取值范围
先上代码,通过下面代码的执行结果观察 public class Test {public static void main(String[] args) {// 2的31次方int j = (int) ...
- Java的byte类型取值范围为什么是负128到正127呢
Java的byte类型取值范围是-128~127为什么负数是128正数到127呢 概念:java中用补码表示二进制数,补码的最高位是符号位,最高位为"0"表示正数,最高位为&quo ...
- java中random方法取值范围_Java中的Random()函数
今天在做Java练习的时候注意到了Java里面的一个随机函数--Random,刚开始只是知道这个函数具有随机取值的作用,于是上网搜索了资料一番,做了一下一些关于Random函数的总结: Java中存在 ...
- HTML标记fort属性最大取值,CSS(2)---css字体、文本样式属性
css字体.文本样式属性 这篇主要讲CSS文本属性中的:字体样式属性 和 文本样式属性. 一.字体样式属性 CSS 字体属性主要包括:字体设置(font-family).字号大小(font-size) ...
- Java中数据类型的取值范围
整数数据类型的取值范围 我们都知道计算机的底层是二进制,也知道不同的整数类型存储值的范围不同,可这些数值在计算机底层是怎样存储的呢?数值范围又是怎么计算出来的呢? 下面以java来进行举例: byte ...
- 第四天 Java数据类型,数据取值范围
首先我们来先了解Java数据类型.数据类型分为两大类:基础数据类型(普通的值) 引用数据类型(内存地址).那么我们来看,最典型的一个int,这个是×××,属于基础数据类型中的数值型.典型的class, ...
- java中random方法取值范围_java中最值的求法,你可能忽略了这种方法了!
对一批数据进行排序,然后找出其中的最大值或最小值,这是基本的数据结构知识.在Java中我们可以通过编写算法的方式,也可以通过数组先排序再取值的方式来实现.下面以求最大值为例,解释一下多种算法. 自行实 ...
最新文章
- css:z-index
- hdu 1174:爆头(计算几何,三维叉积求点到线的距离)
- Java设计模式学习之工厂模式
- 成功解决利用pandas的read_csv函数读取csv文件的时候出现中文乱码问题
- LeetCode 456. 132模式(逆序遍历+单调栈)
- 性能进阶:使用JMeter进行websocket测试
- [bzoj 1452] [JSOI2009]Count
- Node.js:Webpack
- noip2013day1模拟赛
- 中国大学生学习与发展追踪研究(2007年至今)与中国综合社会调查(2003-2017年)与中国社会状况综合调查(2006-2019年)
- Tomcat 开启APR运行模式
- WebIM项目的架构设计以及实现
- 基于OpenCV的在图片上画刻度尺坐标、分划版、侧微尺、十字双边带刻度
- One Pixel Attack(对抗攻击) —— 使用差分进化算法寻找最优解
- Caffe:图像数据转换成ldb(leveldb/lmdb)文件
- L1-034. 点赞 团体程序设计天梯赛GPLT
- reflect存在的意义和使用api
- 百战RHCE(第十五战:Linux进阶命令十二-主机名和域名解析极简管理)
- 算法学习笔记之滑动平均滤波算法
- 二维码生成软件qrencode的安装与试用
热门文章
- c语言中指,浅析C语言中指与数组.doc
- python 创建子类_python创建子类的方法分析
- 解决Out of memory error (version 1.2-rc4 ‘Carnac‘ (298900 ... by android-jack-team@google.com)).
- android 使用adb远程调试
- mysql online ddl和pt_MySQL变更之:Online DDL 和 PT-OSC 该选谁?
- mysql 后10条_Mysql 保留最新的10条数据
- java服务器内存问题_java内存泄漏5种情况总结
- 软件工程--软件危机-生命周期-软件过程
- XML--XML从入门到精通 Part 1 认识XML
- (1)stm32开发之标准库的介绍