Java_变量类型

目录

主要是为了复习java相关知识,本文主要内容来自于 http://www.runoob.com/java

一、局部变量

  • 局部变量声明在方法、构造方法或语句块中
  • 在方法、构造方法、语句块被执行的时候创建,执行完后,变量将会被销毁
  • 访问修饰符不能用于局部变量
  • 局部变量只在声明它的方法、构造方法或语句块中可见
  • 局部变量在栈上分配的
  • 局部变量没有默认值,所以声明后必须初始化才可使用。

二、实例变量

  • 实例变量声明在一个类中
  • 当一个对象被实例化之后,每个实例变量的值就确定了
  • 实例变量在对象创建的时候创建,对象被销毁的时候销毁
  • 实例变量的值应该至少被一个方法、构造方法或语句块引用,使得外部能够通过这些方式获取实例变量信息
  • 实例变量可以声明在使用前或使用后
  • 访问修饰符可以修饰实例变量
  • 实例变量对于类中的方法、构造方法或语句块是可见的
  • 实例变量具有默认值。数值型默认为0,布尔为false,引用变量为null
  • 实例变量可以直接通过变量名访问。

三、类变量(静态变量)

  • 类变量也称为静态变量,在类中以==static==关键字声明,但必须在方法、构造方法和语句块之外
  • 无论一个列创建了多少个对象,类只拥有类变量的一份拷贝
  • 静态变量除了被声明为常量外很少使用。常量是指声明为==public/private, final/static==类型的变量。常量初始化后不可改变
  • 静态变量存储在静态存储区,经常被声明为常量,很少单独使用static声明
  • 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型

实例:

 * 静态变量和实例变量的区别?
 * 1.静态变量需要使用 static 修饰符修饰.
 * 2.实例变量属于某个对象的属性,必须创建了实例对象,才会分配空间。
 *   静态变量不属于某个对象,而属于类,当类加载时就会被分配空间。
 */
public class Test003 {
    private static int sTest; // 静态变量
    private int nTest ; // 实例变量
    private Test003(){
        //int jTest = sTest; //局部变量 0,1,2
        //int jTest = nTest; //局部变量 0,0,0
        //int jTest = ++nTest; //局部变量 1,1,1 ; nTest 的值为:2,2,2
        //int jTest = nTest++; //局部变量 0,0,0 ; nTest 的值为:2,2,2  nTest先赋值给jTest,然后再自加
        sTest ++;
        nTest ++;
        System.out.println("sTest:"+ sTest + ", nTest:"+ nTest /*+ ", jTest:"+ jTest*/);
    }

    public static void main(String [] args){
        Test003 t = new Test003();
        Test003 t1 = new Test003();
        Test003 t2 = new Test003();

        System.out.println(Test003.sTest); // 通过类名.静态变量来访问
        System.out.println(t.nTest); //通过实例对象.实例变量来访问

        // 无论创建多少个实例对象,永远都只为静态变量分配一次内存,其生命周期取决于类的生命周期;
        // 实例变量生命周期取决于实例的生命周期。每创建一个实例,就会分配一次内存

        /*打印结果为:
        sTest:1, nTest:1
        sTest:2, nTest:1
        sTest:3, nTest:1*/
    }
}

July 9, 2018 9:31 PM

猜你喜欢

转载自www.cnblogs.com/zeo-to-one/p/9348360.html