相关疑难解决方法(0)

643
推荐指数
15
解决办法
33万
查看次数

Java中的整数缓存

可能重复:
奇怪的Java拳击

最近我看到了一个演示文稿,其中有以下Java代码示例:

Integer a = 1000, b = 1000;  
System.out.println(a == b); // false  
Integer c = 100, d = 100;  
System.out.println(c == d); // true
Run Code Online (Sandbox Code Playgroud)

现在我有点困惑.我理解为什么在第一种情况下结果是"假" - 这是因为Integer是一个引用类型,而"a"和"b"的引用是不同的.

但为什么在第二种情况下结果是"真实的"?

我听说过一个观点,即JVM将对象的int值从-128缓存到127以进行某些优化.以这种方式,"c"和"d"的引用是相同的.

有人可以给我更多关于这种行为的信息吗?我想了解这种优化的目的.在什么情况下性能提高等等.参考这个问题的一些研究将是伟大的.

java optimization jvm

48
推荐指数
2
解决办法
2万
查看次数

如何将C联合翻译成Delphi?

typedef struct _FILE_OBJECTID_INFORMATION {
    LONGLONG FileReference;
    UCHAR ObjectId[16];
    union {
        struct {
            UCHAR BirthVolumeId[16];
            UCHAR BirthObjectId[16];
            UCHAR DomainId[16];
        } DUMMYSTRUCTNAME;
        UCHAR ExtendedInfo[48];
    } DUMMYUNIONNAME;
} FILE_OBJECTID_INFORMATION, *PFILE_OBJECTID_INFORMATION;
Run Code Online (Sandbox Code Playgroud)

如何将这样的联盟翻译成Delphi?

delphi

10
推荐指数
2
解决办法
5807
查看次数

标签 统计

.net ×1

class ×1

delphi ×1

java ×1

jvm ×1

optimization ×1

reference-type ×1

struct ×1

value-type ×1