java基础:内存分配机制

在任何编程语言中,无论是基本类型还是引用类型,不论其作用域如何,都必须为其分配一定的内存空间,Java语言也不例外

           Java 的数据类型可以分为两种:基本类型(变量持有数据本身的值)和引用类型(是某个对象的引用,而并非是对象本身);

           基本类型包括:boolean、float、double、int、long、short、byte以及char;在Java编程语言中除基本类型以外其余都是引用类型如:类类型、数组类型等。

        在计算机内存中主要来自四个地方:heap segment(堆区)、stack segment(栈区)、codesegment(代码区)、data segment(数据区);不同的地方存放不同数据:其中堆区主要存放Java程序运行时创建的所有引用类型都放在其中;栈区主要存放Java程序运行时所需的局部变量、方法的参数、对象的引用以及中间运算结果等数据;代码区主要存放Java的代码;数据区主要存放静态变量及全局变量;以下结合实例来探讨其具体机制。

 

 

举个例子:

 

[java] view plain copy
 
  1. public class Student {  
  2.     private String name;  
  3.     private int age;  
  4.     public Student(String name,int age){  
  5.         this.name = name;  
  6.         this.age = age;  
  7.     }  
  8.     public String getName() {  
  9.         return name;  
  10.     }  
  11.     public void setName(String name) {  
  12.         this.name = name;  
  13.     }  
  14.     public int getAge() {  
  15.         return age;  
  16.     }  
  17.     public void setAge(int age) {  
  18.         this.age = age;  
  19.     }  
  20.       
  21.       
  22.   
  23. }  

 

[java] view plain copy
 
  1. public class Test {  
  2.     static int i = 10;  
  3.     public static void main(String[] args) {  
  4.         Student s1 = new Student("feng", 21);  
  5.     }  
  6. }  



 

                           当该程序运行起来后,其计算机内存分布大致如下:

posted @ 2016-12-02 21:47  天涯海角路  阅读(103)  评论(0)    收藏  举报