首先要说下java中内存分配的常识
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.
2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)
3. 堆:存放所有new出来的对象。
4. 静态域 :存放静态成员(static定义的)
5. 常量池 :存放字符串常量和基本类型常量(public static final)。
6. 非RAM存储:硬盘等永久存储空间
类中包含基本数据类型、变量数据、静态成员、基本类型常量.....而这些元素是类中的某一部分 你能说类放在内存中的具体哪个地方吗,
而我们运行某个程序(java编辑器)时是要加载到内存上的,我们定义一个类说明我们正在通过编辑器操作操作它,它当然就在内存当中了
当我们编写完某个程序时通过javac命令编辑生成.class文件。当我们不使用时它是保存在硬盘上的。
再想使用它时就要通过java中有个叫类加载器的东西把它加载到内存当中使用
有点啰嗦,应该讲清楚了吧{:soso_e113:} |