草庐IT

final_value

全部标签

java - 为什么 Java 原始类型的修饰符是 public、abstract 和 final?

在对Java类型进行一些反射(reflection)的过程中,我遇到了一个我不理解的奇怪现象。检查int的修饰符会返回public、abstract和final。我了解public和final,但是对于原始类型,abstract的存在对我来说并不明显。为什么会这样?编辑:我不是在反射(reflect)Integer而是在int:importjava.lang.reflect.Modifier;publicclassIntegerReflection{publicstaticvoidmain(finalString[]args){System.out.println(String.for

java - 断言 Optional 具有一定的值(value)

我有一个返回Optional的Java方法。.我想为它写一个易于阅读的单元测试来断言返回的Optional有一个值(即Optional不为空)并且返回值等于预期值。假设我测试的方法是OptionaltestedMethod(){returnOptional.of("actualvalue");} 最佳答案 您也可以使用AssertJ流畅的断言@TestpublicvoidtestThatOptionalIsNotEmpty(){assertThat(testedMethod()).isNotEmpty();}@Testpublicv

java - 断言 Optional 具有一定的值(value)

我有一个返回Optional的Java方法。.我想为它写一个易于阅读的单元测试来断言返回的Optional有一个值(即Optional不为空)并且返回值等于预期值。假设我测试的方法是OptionaltestedMethod(){returnOptional.of("actualvalue");} 最佳答案 您也可以使用AssertJ流畅的断言@TestpublicvoidtestThatOptionalIsNotEmpty(){assertThat(testedMethod()).isNotEmpty();}@Testpublicv

java - 性能:从 HashMap.values() 创建一个 ArrayList

问题是从HashMap.values()集合创建ArrayList需要多少成本?还是单独创建值集合?假设Map.size()>100k。对象也可以一直保存在ArrayList(而不是HashMap)中,这对其他部分有影响(元素的修改,很容易按键)。ArrayList用于迭代每个第n个元素。(这就是为什么不能直接使用values集合的原因)。迭代期间不进行任何修改。 最佳答案 HashMap.values()不返回值的ArrayList而是一个Values集合。来源:publicCollectionvalues(){Collectio

java - 性能:从 HashMap.values() 创建一个 ArrayList

问题是从HashMap.values()集合创建ArrayList需要多少成本?还是单独创建值集合?假设Map.size()>100k。对象也可以一直保存在ArrayList(而不是HashMap)中,这对其他部分有影响(元素的修改,很容易按键)。ArrayList用于迭代每个第n个元素。(这就是为什么不能直接使用values集合的原因)。迭代期间不进行任何修改。 最佳答案 HashMap.values()不返回值的ArrayList而是一个Values集合。来源:publicCollectionvalues(){Collectio

java - Java 'final' 关键字是否真的提高了安全性?

虽然有manyreasonstousethe'final'keywordinJava,我一遍又一遍地听到的其中一个是它使您的代码更安全。虽然在这个微不足道的情况下这似乎是有道理的:publicclassPassword{publicfinalStringpasswordHash;...}使用final关键字,您会认为没有恶意代码能够更改变量passwordHash。但是,usingreflection可以更改passwordHash字段的final修饰符。那么“最终”是否提供任何真正的安全性,还是只是安慰剂?编辑:有一些非常有趣的讨论,我希望我能接受多个答案。感谢大家的意见。

java - Java 'final' 关键字是否真的提高了安全性?

虽然有manyreasonstousethe'final'keywordinJava,我一遍又一遍地听到的其中一个是它使您的代码更安全。虽然在这个微不足道的情况下这似乎是有道理的:publicclassPassword{publicfinalStringpasswordHash;...}使用final关键字,您会认为没有恶意代码能够更改变量passwordHash。但是,usingreflection可以更改passwordHash字段的final修饰符。那么“最终”是否提供任何真正的安全性,还是只是安慰剂?编辑:有一些非常有趣的讨论,我希望我能接受多个答案。感谢大家的意见。

java - Eclipse调试HashMap : Logical Structure using Key and Value's toString() method

在使用IntelliJ几年后,我最近开始使用Eclipse。使用IntelliJ调试Map时,如果键或对象实现toString(),则会显示一个很好的键值字符串表示列表。在Eclipse中,当我选择显示逻辑结构时,我看到如下内容:此View的问题是您需要展开每个条目才能看到实际的键和值。如果你需要在超过10个元素的map中查找某些东西,那就变得非常繁琐了。我知道您可以使自定义逻辑结构和map的默认值看起来像这样:returnentrySet().toArray();有没有什么办法,无论是通过自定义逻辑结构还是插件来查看比map条目更有用的ConcurrentHashMap$WriteT

java - Eclipse调试HashMap : Logical Structure using Key and Value's toString() method

在使用IntelliJ几年后,我最近开始使用Eclipse。使用IntelliJ调试Map时,如果键或对象实现toString(),则会显示一个很好的键值字符串表示列表。在Eclipse中,当我选择显示逻辑结构时,我看到如下内容:此View的问题是您需要展开每个条目才能看到实际的键和值。如果你需要在超过10个元素的map中查找某些东西,那就变得非常繁琐了。我知道您可以使自定义逻辑结构和map的默认值看起来像这样:returnentrySet().toArray();有没有什么办法,无论是通过自定义逻辑结构还是插件来查看比map条目更有用的ConcurrentHashMap$WriteT

java - 为什么 "final static int"可以用作开关的大小写常数,但不能用作 "final static <your enum>"

为什么这个int开关有效:publicclassFoo{privatefinalstaticintONE=1;privatefinalstaticintTWO=2;publicstaticvoidmain(String[]args){intvalue=1;switch(value){caseONE:break;caseTWO:break;}}}虽然这个枚举开关不是:importjava.lang.annotation.RetentionPolicy;publicclassFoo{privatefinalstaticRetentionPolicyRT=RetentionPolicy.RU