Object obj=new Object()的内存引用

Object obj=new Object();

 

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

 

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

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

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

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

posted @ 2016-04-11 22:20  MageByte  阅读(1691)  评论(0编辑  收藏  举报