草庐IT

Primitive

全部标签

java - 如何在 Java 中使用 double to int cast

我是Java新手,想知道doubletointcast是如何工作的?我知道通过取低32位来long到int很简单,但是double(64位)到int(32位)呢?二进制中double的那些64位是double浮点格式(尾数),那么它如何在内部转换为int呢? 最佳答案 全部记录在section5.1.3中JLS.Inthefirststep,thefloating-pointnumberisconvertedeithertoalong,ifTislong,ortoanint,ifTisbyte,short,char,orint,as

Java:为什么我需要初始化一个原始局部变量?

publicclassFoo{publicstaticvoidmain(String[]args){floatf;System.out.println(f);}}打印语句导致以下编译时错误,Thelocalvariablefmaynothavebeeninitialized如果Java中的原语已经有defaultvalue(float=0.0f),为什么要我定义一个?编辑:所以,这行得通publicclassFoo{floatf;publicstaticvoidmain(String[]args){System.out.println(newFoo().f);}}谢谢大家!

Java:为什么我需要初始化一个原始局部变量?

publicclassFoo{publicstaticvoidmain(String[]args){floatf;System.out.println(f);}}打印语句导致以下编译时错误,Thelocalvariablefmaynothavebeeninitialized如果Java中的原语已经有defaultvalue(float=0.0f),为什么要我定义一个?编辑:所以,这行得通publicclassFoo{floatf;publicstaticvoidmain(String[]args){System.out.println(newFoo().f);}}谢谢大家!

java - java中的第三个 boolean 状态是什么?

虽然我知道根据定义,boolean值仅包含两种状态,真或假。我想知道boolean值在使用这些状态之一初始化之前有什么值。 最佳答案 Itdefaultstofalse.编辑:应大众需求:unlessyou'reusingthewrappedBoolean,whichdefaultstonull.–sudhir.j 关于java-java中的第三个boolean状态是什么?,我们在StackOverflow上找到一个类似的问题: https://stackov

java - java中的第三个 boolean 状态是什么?

虽然我知道根据定义,boolean值仅包含两种状态,真或假。我想知道boolean值在使用这些状态之一初始化之前有什么值。 最佳答案 Itdefaultstofalse.编辑:应大众需求:unlessyou'reusingthewrappedBoolean,whichdefaultstonull.–sudhir.j 关于java-java中的第三个boolean状态是什么?,我们在StackOverflow上找到一个类似的问题: https://stackov

java - 在java中将原始类型数组转换为对象数组

为什么我不能在java中做到这一点?Object[]o=(Object[])(newint[]{0,1,2,3.14,4});我有一个方法,它接收一个对象,然后将其表示为一个字符串,但取决于他的类型(原始、原始包装器、数组等)。当我创建单元测试时,我将一个数组作为Object传递,这很好,但是当我将该对象转换为Object[]时,我得到ClassCastException。这仅发生在原始类型数组中。有什么办法可以避免这种行为?如果没有,有人可以解释一下Java虚拟机上出现这种行为的原因是什么。非常感谢任何帮助。 最佳答案 这是一个简

java - 在java中将原始类型数组转换为对象数组

为什么我不能在java中做到这一点?Object[]o=(Object[])(newint[]{0,1,2,3.14,4});我有一个方法,它接收一个对象,然后将其表示为一个字符串,但取决于他的类型(原始、原始包装器、数组等)。当我创建单元测试时,我将一个数组作为Object传递,这很好,但是当我将该对象转换为Object[]时,我得到ClassCastException。这仅发生在原始类型数组中。有什么办法可以避免这种行为?如果没有,有人可以解释一下Java虚拟机上出现这种行为的原因是什么。非常感谢任何帮助。 最佳答案 这是一个简

java - 使用 int 作为 java.util.Dictionary 的类型参数

当我尝试这样声明字典时:privateDictionarymap;编译器给我以下错误:Syntaxerrorontoken"int",Dimensionsexpectedafterthistoken但它适用于Integer。我隐约知道Java对待int/Integer的方式不同(我来自.NET背景),但我希望有人能给我一个完整的解释为什么我不能在字典中使用原语 最佳答案 在Java中,原语不是对象,因此您不能使用它们来代替对象。然而,Java会自动将原语(又名autoboxing)装箱/拆箱到对象中,因此您可以执行以下操作:List

java - 使用 int 作为 java.util.Dictionary 的类型参数

当我尝试这样声明字典时:privateDictionarymap;编译器给我以下错误:Syntaxerrorontoken"int",Dimensionsexpectedafterthistoken但它适用于Integer。我隐约知道Java对待int/Integer的方式不同(我来自.NET背景),但我希望有人能给我一个完整的解释为什么我不能在字典中使用原语 最佳答案 在Java中,原语不是对象,因此您不能使用它们来代替对象。然而,Java会自动将原语(又名autoboxing)装箱/拆箱到对象中,因此您可以执行以下操作:List

java - Java原语是不可变的吗?

如果一个方法有一个局部变量i:inti=10;然后我分配一个新值:i=11;这会分配一个新的内存位置吗?还是直接替换原来的值?这是否意味着原语是不可变的? 最佳答案 Willthisallocateanewmemorylocation?Orjustreplacetheoriginalvalue?Java并没有真正保证变量将对应于内存位置。例如,您的方法可能会以i存储在寄存器中的方式进行优化-或者甚至可能根本不存储,如果编译器可以看到您从未实际使用它的值,或者如果它可以通过代码跟踪并直接使用适当的值。但把它放在一边。..如果我们在这里