在Java语言中,堆和栈都是内存中存放数据的地方。变量分为基本数据类型和引用类型,基本数据类型的变量以及对象的引用变量,其内存分配在栈上,变量出了作用域就会自动释放。引用类型的变量,其内存分配在堆上或是常量池(常量<字符串常量和基本数据类型常量>)中,需要通过new等方式进行创建。
简言之:
栈内存主要用来存放基本数据类型和引用变量。
堆内存主要用来存放运行时创建的对象(new关键字创建的对象)。
在Java语言中,堆和栈都是内存中存放数据的地方。变量分为基本数据类型和引用类型,基本数据类型的变量以及对象的引用变量,其内存分配在栈上,变量出了作用域就会自动释放。引用类型的变量,其内存分配在堆上或是常量池(常量<字符串常量和基本数据类型常量>)中,需要通过new等方式进行创建。