java基础:内存分配机制
在任何编程语言中,无论是基本类型还是引用类型,不论其作用域如何,都必须为其分配一定的内存空间,Java语言也不例外
Java 的数据类型可以分为两种:基本类型(变量持有数据本身的值)和引用类型(是某个对象的引用,而并非是对象本身);
基本类型包括:boolean、float、double、int、long、short、byte以及char;在Java编程语言中除基本类型以外其余都是引用类型如:类类型、数组类型等。
在计算机内存中主要来自四个地方:heap segment(堆区)、stack segment(栈区)、codesegment(代码区)、data segment(数据区);不同的地方存放不同数据:其中堆区主要存放Java程序运行时创建的所有引用类型都放在其中;栈区主要存放Java程序运行时所需的局部变量、方法的参数、对象的引用以及中间运算结果等数据;代码区主要存放Java的代码;数据区主要存放静态变量及全局变量;以下结合实例来探讨其具体机制。
举个例子:
- public class Student {
- private String name;
- private int age;
- public Student(String name,int age){
- this.name = name;
- this.age = age;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- }
- public class Test {
- static int i = 10;
- public static void main(String[] args) {
- Student s1 = new Student("feng", 21);
- }
- }
当该程序运行起来后,其计算机内存分布大致如下:


浙公网安备 33010602011771号