第六课 面向对象编程(四)

1.类的初始化过程:

     类的静态成员在类被加载的时候进行初始化!!

     数据成员初始化过程:

            1)在堆中分配空间

             2)给对性的属性赋默认值

                    boolean=false

                    基本类型=0

                    引用类型=null

              3)调用构造器

              4)进一步赋值

  2.main方法的执行过程

                 main中代码:

                 Student stu=new Student();

                 stu.study();

         1).先到方法区搜索Studentclass对象(此对象它描述了Student类的方法特

        征及静态成员等),如果搜索不到则去加载Student的字节码文件;

         2).通过classpath查找对应的Student字节码文件,找不到就返回错误:

        类找不到;

         3).将字节码文件的二进制数据转换为class对象放置于方法区,加载完成;

         4).验证字节码文件;

         5).在堆区划分空间,放置Student对象;

         6).在栈(stack)区放置引用类型变量stustu指向的Student对象的地址;

         7)Student对象存放class对象的地址;

         8).通过stu引用类型变量的值找到Student对象,通过Student对象存放

        class对象的地址找到对应的study方法,然后执行;

         9).释放资源,JVM运行结束。

3.变量的作用域:

    定义:变量生存的时间。

(1)变量的分类:

  类的成员变量

①类的静态成员变量

    ExampleStudent类的带static修饰的属性

    类的静态成员变量的生命周期:

        从类加载开始,到类被卸载结束。静态成员初始化以后放在方法区。

②类的实例成员变量

Student类的不带static修饰的属性。

变量初始化以后放在堆区。

实例变量的生命周期:

  A.从对象生成开始,到对象被回收时结束。

B.类的实例成员变量在对象初始化的时候,会赋默认值。

          基本类型number type0Booleanfalsecharacter type '/u0000'

          引用类型:null,如String

C.先按照B的规则赋给一个初始值,然后构造器的赋值过程会覆盖掉初始值。

 

          ( 2 )局部变量

    Definition:局部变量是方法或代码块中定义的变量。

     JVM中的某个线程调用方法的时候,将局部变量压入栈区开始,方法调用结束,(

           局部变量从栈区(stack)弹出结束。

           局部变量在使用前必须要赋值。

 3)方法的参数

            例如:for(int i=0;i<10;i++)add(int i1int i2)

 4)异常的参数

        例如:try...catch(Exception e)

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值