Java内存学习

2014-11-24 03:11:24 · 作者: · 浏览: 0

Java的内存主要包含4块,即heap(堆内存)、stack(栈内存)、datasegment(静态变量或是常量存放区)、codesegment(方法区)

栈:存取速度快,存放一些基本类型的变量或对象的引用变量。主要用来执行程序的。

堆: 存取速度慢,通过New()方法来创建的对象或数组。主要用来存放对象的。

静态常量区:存放的是静态变量(类变量)或是常量

方法区:存放的是对象的方法。因此即使new出多个对象也是只是存在一个方法。

vc+jujwvcD4KPHA+ICAgttHW99Kq08PT2rTmt8W21M/zo6zVu9b30qrKx9PDwLTWtNDQs8zQ8qGjPC9wPgo8cD4gICAgICAg1bu1xNPFysajurTmyKHL2bbIsci20dKqv+yjrL32tM7T2rzEtObG96Os1bvK/b7dv8nS1Lmyz+2ho8ixtePKx6OstObU2tW71tC1xMr9vt2089Ch0+vJ+rTmxtqx2NDrysfIt7aotcSjrMixt6bB6bvu0NSho9W71tDW99KqtOa3xdK70Km7+bG+wODQzbXEseTBv7rNttTP877ksfqho9DeuMTVu9a41eu+zb/J0tSw0dW71tC1xMTayN3P+rvZo6zV4tH5xKPKvcvZtsjX7r/soaO1q8rH0OjSqtei0uKjrLfWxeS/1bzkyrGjrNOmysLPyNaqtcDV4rj2yv2+3cf4tcS089ChoaM8L3A+CjxwPiA8L3A+CjxwPiAgICAgICAgICAgttHKx9PJwKy7+LvYytXAtLi61PC1xKOsttG1xNPFysbKx7/J0tS2r8ystdi31sXkxNq05rTz0KGjrMn6tObG2tKysrux2MrCz8i45svfseDS68b3o6zS8s6qy/zKx9Ta1MvQ0Mqxtq/MrLfWxeTE2rTmtcSjrEphdmG1xMCsu/jK1byvxve74dfUtq/K1dff1eLQqbK71NnKudPDtcTK/b7doaPTydPattHKx7avzKy1xLfWxeSjrLHg0uvG97K70OjSqtaqtcC007bRwO+31sXktuDJ2b/VvOS78tXfysfK/b7d0qrNo8H0tuCzpMqxvOSjrNLytMvTw7bRsaO05sr9vt3B6bvu0NS4/LTzoaPIsbXjysejrNPJ09rSqtTa1MvQ0Mqxtq/MrLfWxeTE2rTmo6zU2rfWxeS6zc/6u9nKsba80qrVvNPDyrG85KOs0vK0y9Cnwsq3x7Ojtc2hozwvcD4KPHA+IDwvcD4KPHA+wP3X06O6PC9wPgo8cD4gICAgPC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">public class Testshuzu{ //主程序 public static void main(String[] args){ //定义数组 Date[] days; days = new Date[3]; for(int i = 0; i < 3;i++){ days[i] = new Date(2004,4,i+1); } } } //定义Date有三个变量 class Date{ int year; int month ; int day; Date(int y, int m,int d){ year = y; month = m; day = d; } }

内存图:

总结:

通过了解,学习这些内存的运行情况,更容易理解程序的运行情况,从而从更高效的角度去写程序,优化程序。