黑马程序员技术交流社区

标题: 对象初始化内存加载顺序; [打印本页]

作者: 华行天下    时间: 2013-8-15 14:01
标题: 对象初始化内存加载顺序;
对象初始化内存加载顺序;希望能够详细的说一下,谢谢;
作者: 吃阁子的猫    时间: 2013-8-15 15:52
这个老师给我们做过重点讲解,我分点给你写写
1,静态加载进内存
2,在栈中开辟main空间,创建变量
3,在对内存中开辟空间,分配地址
4,默认初始化
5,显示初始化
6,构造代码块初始化
7,构造函数初始化
8,将内存地址赋给变量,变量指向堆内存实体

作者: 黄文军    时间: 2013-8-15 19:16
本帖最后由 黄文军 于 2013-8-15 19:23 编辑
  1. /**

  2. 对象初始化内存加载顺序;希望能够详细的说一下

  3. 可以下毕向东老师讲的教程,讲的很详细,还画的有图

  4. .1)静态加载进代码内存  如果有静态代码块, 先把静态代码块加载进代码内存  并执行静态代码块,静态代码块不管创建几个对象都只执行一次;
  5. .2)在堆内存创建对象,开辟空间,对象初始化,    有构造代码块先执行构造代码块,再执行构造函数。  构造代码块与构造函数,每创建一个对象就运行一次;
  6. .3)把堆内存创建对象的地址空间赋值给st1,st1指向堆内存创建的实体

  7. */


  8. class  Test01
  9. {
  10.         public static void main(String[] args)
  11.         {        
  12.                 Student st1 = new Student(13,"zhang");//创建对象st1

  13.                 Student st2 = new Student(14,"li");//创建对象st1

  14.                 st1.print();//调用函数
  15.                
  16.                 System.out.println();

  17.                 st2.print();//调用函数
  18.         }
  19. }


  20. class Student
  21. {        

  22.         int age;
  23.         String name;
  24.         private static String school;
  25.         
  26.         //静态代码块  是自动执行的,最先执行,一般用以初始化共有数据
  27.         static
  28.         {        
  29.                 school = "itheima";
  30.                 System.out.println("静态代码块");
  31.         }
  32.         

  33.         //构造代码块  用以初始化变量
  34.         {        

  35.                 System.out.println("构造代码块");
  36.         }
  37.         


  38.         //定义构造函数  初始化对象
  39.         Student(int age,String name){
  40.                 this.age= age;
  41.                 this.name = name;
  42.                 System.out.println("构造函数");
  43.         }
  44.         
  45.         //用以打印输出学生信息
  46.         void print(){
  47.                 System.out.println("name"+name+"\nage"+age+"\nschool"+school);
  48.         }
  49. }
复制代码

作者: 张俊生    时间: 2013-8-15 23:59
亲,如问题已解决请将分类的未解决改为已解决。

以后的问题贴也要及时更改分类哦~

保持队形,谢谢合作




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2