内存的概念
内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的(来源于百度百科)。
说白了内存就是用来存放CPU的临时运算数据。内存往细了分又有:堆、栈等,任何优秀程序中都有良好内存的划分。
内存泄漏
内存泄漏是指在申请内存后,无法释放已申请的内存,在Java中内存泄漏的范围不会很大,因为Java有垃圾回收器(Garbage Collection, GC),gc它会回收程序在运行中产生的无用且不可达的的对象。在Java中造成内存泄漏的是无用却有指向的对象,这些对象不会被gc所回收,而且它还在占用着内存。一次内存泄漏看似不会造成太大的影响,但是堆积下来就会造成内存溢出,内存溢出包括内存泄漏。
内存溢出
当程序申请内存,但是没有足够的内存分配给申请者时,程序就会停止运行并且报错,这就是程序溢出了,或许现在还比较模糊那让我们来写一些能让内存溢出的程序。
栈溢出
Java中我们知道栈中存放了对象的引用,但是靠这个来使栈溢出是件不容易的事,有没有更容易的方法呢?其实Java中方法内存的分配也是在栈中实现的.那么我们可不可以用递归使它溢出呢?
下面是一个简单的死递归&