java---内存分配

it2025-11-09  9

/* * 内存分配 * 1.凡是在栈区存放的,只能在一函数中使用,不能跨函数使用 * 2.一个函数中动态分配的空间,可以跨函数使用,如:mallc(),new出来的 * 3.每new 一个对象,在堆中就有一块空间被分配出来。 */ class A { int i; int j; } public class hello { public static void main(String[] args) { A aa=new A();//相当于A aa=(A*)malloc(sizeof(A));A是数据类型,或者方法、类 //new A();在堆中动态分配了一块区域,被当做了A的对象 //aa本身的的内存是在栈中分配的,堆中的内存的地址赋给了aa //aa指向堆中的内存,aa代表了堆中的内存; //aa是静态分配的,因为是以数据类型 变量名的方式定义的,而new A()是动态的内存分配 //aa.i代表:aa这个静态指针变量所指向的动态内存中的A对象的i这个成员 aa.i=10;//aa本身没有i这个成员,aa保存的是A这个对象的首地址,指向了A aa.j=20; System.out.printf("%d %d\n",aa.i,aa.j); } }
最新回复(0)