当前位置: 技术问答>java相关
java中堆的隐式创建是什么
来源: 互联网 发布时间:2015-10-21
本文导语: Thinking in java中文版 p190 堆对象可以“隐式”创建(默认产生),也可“显式”创建(new方式)。 class Weeble(); Weeble[] a;//这是堆的隐式创建?还是栈上创建的? Weeble[] b= new Weeble(15);//这个是堆的“显式”创建 请问堆的...
Thinking in java中文版 p190
堆对象可以“隐式”创建(默认产生),也可“显式”创建(new方式)。
class Weeble();
Weeble[] a;//这是堆的隐式创建?还是栈上创建的?
Weeble[] b= new Weeble(15);//这个是堆的“显式”创建
请问堆的隐式创建是什么。
堆对象可以“隐式”创建(默认产生),也可“显式”创建(new方式)。
class Weeble();
Weeble[] a;//这是堆的隐式创建?还是栈上创建的?
Weeble[] b= new Weeble(15);//这个是堆的“显式”创建
请问堆的隐式创建是什么。
|
在栈上分配了引用a的空间,但没有分配a所指向的数组对象的空间
如果是C++, 就是分配了指针p的空间,但是个wild pointer, 没指向
任何东西,没有在heap上创建所指的对象
如果是C++, 就是分配了指针p的空间,但是个wild pointer, 没指向
任何东西,没有在heap上创建所指的对象
|
java里只有静态的,或是变量的引用(相当于c中的指针)是在栈中创建,
其它的都是在堆中创建的!
例如:
Weeble[] b= new Weeble(15);
中 b 本身是在栈中,而他所指向内存空间是在堆中创建的!
这是本人愚见!请大家多多发表
其它的都是在堆中创建的!
例如:
Weeble[] b= new Weeble(15);
中 b 本身是在栈中,而他所指向内存空间是在堆中创建的!
这是本人愚见!请大家多多发表