java栈stack和堆heap的工作原理,用途及区别?
java堆和栈的区别【新手可忽略不影响继续学习】
Java中内存分成两种:一种是栈stack,一种是堆heap。
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
函数中的一些基本类型的变量(int, float)和对象的引用变量(reference)都在函数的栈中,如int a = 5,有个地方先存5,之后再让a指向那个地方。w=new Window(),是w指向Window的首地址。马克-to-win,存取速度快,稍逊于寄存器, 比堆快,
函数执行完后,Java会自动释放掉为函数里变量开辟的栈内存空间,该内存空间可以立即被另作他用。
堆heap内存用来存放由new创建的对象和数组。堆内存,负责运行时(runtime, 执行生成的class文件时)数据,由JVM的自动管理。缺点是,存取速度较慢。
栈中的引用变量指向堆中的对象或数组。