Tag: primitive

为什么赋值’int constant – > byte variable’有效,但’long constant – > int variable’不是?

我有这段代码: int i = 5l; // not valid (compile error) byte b = 5; // valid 你怎么看待这件事? 为什么?

java中的第三个布尔状态是什么?

虽然我知道根据定义,布尔值只包含两个状态,true或false。 我想知道布尔值在用这些状态之一初始化之前有什么值。

java:boolean instanceOf Boolean?

我有点困惑:我有一个函数,它以Object作为参数。 但是,如果我只传递一个原语甚至将布尔基元识别为布尔对象,编译器就不会抱怨。 为什么? public String test(Object value) { if (! (value instanceof Boolean) ) return “invalid”; if (((Boolean) value).booleanValue() == true ) return “yes”; if (((Boolean) value).booleanValue() == false ) return “no”; return “dunno”; } String result = test(true); // will result in “yes”

Java中盒装基元的存储成本是多少?

Java中的java.lang.Integer或java.lang.Character这样的盒装原语有多大(以字节为单位)? int是4个字节,典型的指针也是4个字节(如果没有被JVM压缩)。 因此,整数(没有缓存)的成本是4 bytes + 4 bytes = 8 bytes ? 盒子对象中是否还有其他隐藏字段或者对象产生的额外开销(即,我不知道对象的一般成本是多少?)。 我对缓存问题不感兴趣。 我知道JVM会缓存一定范围内的整数。 可以重新解释这个问题:用于盒装值与原始值的内存量相乘的最大因子是多少? 编辑:我明白存在JVM的多个实现。 典型的32位HotSpot实现的典型成本是多少?

Java Vector或ArrayList for Primitives

Java API中是否有一个可扩展的数组类,它等同于Vector或ArrayList类,可以与原语(int,char,double等)一起使用? 我需要一个快速,可扩展的整数数组,并且将它们包装在Integer类中以便将它们与Vector或ArrayList一起使用似乎很浪费。 我的google-fu让我失望了。