【发布时间】:2014-11-02 08:33:48
【问题描述】:
有一个枚举结构,但是我不明白这个枚举中'0xDEAD - 2'的含义。
enum TerminatedTypes {
_not_terminated = 0xDEAD - 2,
_thread_exiting,
_thread_terminated,
_vm_exited
};
从上面的代码,我能得到什么样的好处?
上面的代码在openjdk8的'hotspot/src/share/vm/runtime/thread.hpp'中。
我正在研究jdk的源代码,请帮助我。
【问题讨论】:
-
这只是一个选定的哨兵值,因为它的十六进制表示看起来很酷。
-
这是magic number 的一个例子。另一个是
0xCAFEBABE。 -
_thread_terminated 表示已死而 _not_terminated 已死 - 2. 我想将单词 dead 与十六进制数字 0xDEAD 匹配是程序员的技巧。也许更有意义和可读性!
标签: enums magic-numbers sentinel