其实,你现在如果刚入门,就不要研究的那么深入,很多知识不是一下子就能都学进去的,是需要日积月累,融会贯通的。等你学的多了,你自然会有需求了解这方面的知识的。当然,如果你特别想知道,特别想了解关于内存的知识,你可以看看这篇文章,是比较详细的:http://www.iteye.com/topic/802573
简单来说:
java内存分配有如下五个区域:栈内存,堆内存,方法区,寄存器,本地方法区。
1、栈内存:存放引用数据类型和基本数据类型。引用数据类型的值基本都是堆内存中的地址值(这涉及到赋值操作)。
2、堆内存:存放创建的数组和对象的数据,存放的是那些实例。特殊的是,数组的引用也存放在这里(多维数组),可以看看关于数组的知识。
3、方法区:有静态方法区(static修饰的方法),非静态方法区(this、super都在这里),常量池(constant pool,含有字符串池StringPool等等)--存放常量(final修饰的数据),等等。
4、寄存器:在cpu内部,由编译器管理,开发人员无法控制。
5、本地方法区:java通过java本地接口JNI(java Native Interface)来调用其它语言编写的程序,在java里面用native修饰符来描述一个方法是本地方法,这个了解下就好了。
6、非RAM存储:至于这个,我觉得不是java分配的(个人理解,不知对否),是存放永久数据的,在磁盘上。 |