黑马程序员技术交流社区

标题: Java的变量 [打印本页]

作者: 百里青山    时间: 2016-4-5 12:30
标题: Java的变量
本帖最后由 百里青山 于 2016-4-5 12:32 编辑

Java变量中有成员变量和局部变量
    例子
public class AAA{
    {
        int i = 0;                         // 代码块中的局部变量开始存在
    }// 代码块中的局部变量销毁
     
    public static int a = 4;                // 类Field
    public int        b = 5;                // 实例Field
     
    public void print(int c,int d){        // 形参的局部变量开始存在
        int kk = 0;                        // 函数中的局部变量开始存在
        System.out.println(c + "" + d);    //
    }// 函数中的局部变量和形参被销毁
}

public class Test{
    publci static void main(String[] args){//类Field开始存在
         
         
        AAA aaa = new AAA();              // 实例Field开始存在
         
         
        System.out.println(AAA.a);        // 类可以访问静态成员变量
        System.out.println(AAA.b);        // 类不能访问非静态成员变量
        System.out.println(aaa.a);        // 实例可以访问静态成员变量
        System.out.println(aaa.b);        // 实例可以访问非静态成员变量
         
         
        aaa = null;                       
        System.gc();                      // 垃圾资源回收,实例被销毁,实例Field也被销毁
     
    }// main函数调用完毕,类被销毁,类Field也被销毁
}



    成员变量
分为类Field和实例Field。

    成员变量的定义和初始化
        类Field   :定义时有static修饰的类成员变量,系统会为类Field默认初始化,不必显式初始。
        实例Field:定义时没有static修饰的变量,系统会为实例Field默认初始化,不必显式初始化。

    成员变量的访问范围
        类Field   :可以被类和实例访问。
        实例Field:可以被实例访问,但不能被类访问。

    成员变量的生命周期
        类Field   :从类的准备阶段开始存在,直至系统完全销毁这个类。
        实例Field:从实例被创建后开始存在,直至系统完全销毁这个实例。

    局部变量
        分为代码块的局部变量,函数中的局部变量,函数形参

    局部变量的定义和初始化
        代码块局部变量   :在代码块中定义,必须显示初始化值。系统不会对它进行默认初始化。
        函数中局部变量   :在函数中定义,必须显示初始化值。系统不会对它进行默认初始化。
        函数形参局部变量:在函数形参中定义,不必显示初始化。


    局部变量的生命周期   
        代码块局部变量   :在代码块中定义时开始存在,当执行完代码块中的代码后,被系统销毁。
        函数中局部变量   :在函数中定义时开始存在,当函数体执行完毕后,被系统销毁。
        函数形参局部变量:和函数中局部变量一样。

    成员变量和局部变量的内存分配
        成员变量:一般存在堆中。
        局部变量:总是保存在其所在函数或代码块的栈内存中。

作者: Lee♥晓蕾    时间: 2016-4-5 14:01
笔记吗?




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