JVM CHeapObj的一个疑问

在看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 {

 public:

  void* operator new(size_t size);

  void  operator delete(void* p);

  void* new_array(size_t size);

};

差不多吧?

这两个都有用到么? 有什么区别?

 

猜你喜欢

转载自lobin.iteye.com/blog/2327864