堆和栈,值类型与引用类型

首先理清楚什么是堆,什么是栈
堆和栈都是内存中存储数据的区域,

  • 栈上存储的一般是生命周期短的临时数据,LIFO(后进先出),值类型以及引用类型的引用一般存储在栈上
  • 堆上存储的一般是引用类型的值,堆上存储的数据没有特定的顺序,当系统判断没有引用指向某个数据后,就会触发GC清理掉该数据
    但是上面的说法也不是一定正确的,因为一个引用对象的所有数据,按上面的规则应该都存在堆上,那么如果这个引用对象的数据中包括值类型,那么这个值类型就会因此被存在堆中而不是栈中,同理,这个引用对象的数据如果包括引用类型,那么这个引用类型的引用也不会存在栈上,而是存在堆中,只有这个引用对象的引用会存在栈上。
posted @ 2026-05-31 14:14  丢蛋机  阅读(13)  评论(0)    收藏  举报