在看JVM相关资料的时候,看到CHeapObj,发现有两个声明之处,第一处声明在hotspot\src\share\vm\memory目录下的allocation.hpp;第二处声明在hotspot\src\share\vm\adlc目录下的arena.hpp。这两个头文件的内容有些相似,这两处地方都声明了这个类,除了CHeapObj,还有些其他的类声明也是类似的。
第一处声明:
class CHeapObj ALLOCATION_SUPER_CLASS_SPEC { public: void* operator new(size_t size); void* operator new (size_t size, const std::nothrow_t& nothrow_constant); void operator delete(void* p); void* new_array(size_t size); }; |
第二处声明:
class CHeapObj {
扫描二维码关注公众号,回复:
572069 查看本文章
public: void* operator new(size_t size); void operator delete(void* p); void* new_array(size_t size); }; |
差不多吧?
这两个都有用到么? 有什么区别?