java怎么给 定义,#在Java中定义

注释空间太小,因此这里有一些有关的更多信息static final。正如我在对Andrzej的回答的评论中所说的那样,只有原始和String直接作为文字直接编译到代码中。为了证明这一点,请尝试以下操作:

通过创建三个类(在单独的文件中),可以看到实际的效果:

public class DisplayValue {

private String value;

public DisplayValue(String value) {

this.value = value;

}

public String toString() {

return value;

}

}

public class Constants {

public static final int INT_VALUE = 0;

public static final DisplayValue VALUE = new DisplayValue("A");

}

public class Test {

public static void main(String[] args) {

System.out.println("Int   = " + Constants.INT_VALUE);

System.out.println("Value = " + Constants.VALUE);

}

}

编译这些文件并运行Test,它将输出:

Int    = 0

Value  = A

现在,Constants对每个类进行更改以具有不同的值,并且仅编译类Constants。Test再次执行(不重新编译类文件)时,它仍会打印的旧值,INT_VALUE但不会打印VALUE。例如:

public class Constants {

public static final int INT_VALUE = 2;

public static final DisplayValue VALUE = new DisplayValue("X");

}

运行测试而无需重新编译Test.java:

Int    = 0

Value  = X

请注意,与一起使用的任何其他类型static final都保留为参考。

与C / C ++ #if/ 类似,在常规Java 条件下使用#endif常量常量或static final使用原语定义的常量常量,if并求值false会导致编译器剥离该if块内语句的字节码(不会生成)。

private static final boolean DEBUG = false;

if (DEBUG) {

...code here...

}

“ ...此处的代码...”中的代码不会被编译为字节码。但是,如果您更改DEBUG为true,它将变为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值