**前言:我们项目运行过程中,肯定会有查询数据库这步操作,无论你是MySQL还是Oracle。那么这种情况就必须搞清楚,从数据库里查询得到的数据默认存储到哪了,为什么一次查询过多的数据会发生内存溢出?
一.临时数据是存储在哪里的?内存?缓存?
首先,在JAVA中,查询数据库的临时数据通常是存储在内存中的。当您执行SQL查询时,
会将数据从数据库中检索到JAVA应用程序中,然后将其存储在内存中进行处理。通常,在内存
中存储数据可以提高查询性能,因为内存访问速度比磁盘访问速度更快。但这也意味着,如果
您的应用程序需要处理大量数据,那么它可能会占用大量的内存空间。因此,您需要注意
内存使用情况,以确保您的应用程序不会因为内存限制而崩溃。
二.存储在内存的哪个区域里?堆,栈?
在JAVA中,当您执行SQL查询时,查询数据通常存储在称为JVM堆的内存区域中。JVM堆是JAVA虚
拟机(JVM) 分配内存的地方,它是一个运行时数据区域,用于存储对象实例和数组。JVM堆被划分为
几个不同的部分,其中包括新生代和老年代。在查询期间,临时数据可能会存储在新生代的EDEN空
间中,或者如果它们需要更长的生命周期,能会移动到老年代。无论是在哪个部分,JVM是JAVA应用
程序中存储临时数据的主要内存区域。