Object obj=new Object();

 

一句很简单的代码,但是这里却涉及Java栈Java堆Java方法区三个最重要的内存区域之间的关联。

 

假设这句代码出现在方法体中:

  1. Object obj将反映到Java栈的本地变量表,这是一个本地变量的定义。是一个引用类型。

  1. new Object()将会反映在Java堆中。存储了Object类型的所有实例数据值(次内存是不固定大小的,因为谁也无法确定这是对象的大小)。

  1. 程序运行,类型信息已经加载到内存里,这些数据就在Java方法区中,包括:类型的父类型,实现的接口、包含的方法等类型信息。new Object(),根据这些信息建立对象。可以看到这些信息是线程共享的。

相关文章:

  • 2021-12-24
  • 2021-11-25
  • 2021-11-28
  • 2022-12-23
  • 2022-12-23
  • 2021-12-12
  • 2022-12-23
  • 2021-06-10
猜你喜欢
  • 2021-10-19
  • 2021-11-05
  • 2021-07-31
  • 2021-06-19
相关资源
相似解决方案