Java 语言基础——变量的定义

380 阅读4分钟

这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战

作为一名测试人员,在进阶的过程中需要学习一些必备的开发知识,比如对于 Java 基础知识,Python 自动化知识等的了解。这些都是从功能测试进阶到测试开发的必要过程,所以后续会针对一些开发语言进行学习。

1. Java 中变量的定义

什么是变量呢?变量就是程序中的内存空间,内存中的一块存储区域,该区域有自己的名称(变量名)和类型(数据类型)。所以对于一个变量来说,它需要具备:数据类型和名称。

由于程序的内存对于程序员来说是很复杂的,所以在开发时,我们就通过变量的名称来去操作对应的内存空间。只要在申请空间的时候,给这个空间起一个名字就可以了,使用变量的时候,通过变量名就可以找到变量的值了。

变量定义格式:

type name = value;

通过上面的格式可以看到,变量的定义包含:

  • 数据类型:能存放的数据类型;
  • 变量名:通过标识符可以访问内存空间里的值。
  • 值:存储的内容。 示例如下:
public class HelloWorld {

    public static void main(String[] args) {
        boolean isExist = true;
        String desc = "This is a String";
    }
}

2. 变量的分类

在 Java 中,通常按照变量定义的位置和对应的生命周期,可以将变量进行分类,分类如下:

  • 局部变量:通常是在方法的参数或方法中定义的变量,见名思意,局部就是生命周期也比较短的意思;
  • 实例变量:独立于方法之外的变量,通常也叫成员变量,属于某个具体的 class 类,但是不被 static 修饰;
  • 类变量:即用 static 修饰的实例变量,我们称之为类变量,它的生命周期很长,伴随着类的创建而存在。

2.1 局部变量

局部就是生命周期也比较短的意思,所以通常定义在方法内部。常见的位置有:

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

    public static void main(String[] args) {
        sumNumber();
    }

    public static void sumNumber(){
        int a = 0;
        a = a + 10;
        System.out.println("结果是: " + a);
    }
}

2.2 实例变量

实例变量声明在一个类中,通常是在类的成员变量位置上,不在具体的方法内部。所以实例变量的特点是:

  • 当一个对象被实例化之后,每个实例变量的值就被确定了;
  • 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
  • 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
  • 实例变量可以声明在使用前或者使用后;
public class HelloWorld {
    // 实例变量
    public String TAG = "HelloWorld";
    public int type = 1;
    
    public static void main(String[] args) {
        sumNumber();
    }

    public static void sumNumber(){
        int a = 0;
        a = a + 10;
        System.out.println("结果是: " + a);
    }
}

2.3 类变量

类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。所以它的生命周期特别长,伴随着类第一次创建而创建,程序结束而销毁。

public class HelloWorld {
    // 静态实例变量
    public static String TAG = "HelloWorld";
    public static int type = 1;

    public static void main(String[] args) {
        sumNumber();
    }

    public static void sumNumber(){
        int a = 0;
        a = a + 10;
        System.out.println("结果是: " + a);
    }
}

总结

变量的定义是程序开发中很重要的基本概念,任何的开发语言都需要变量。