【JavaSE专栏7】Java 常量、变量及其作用域

2023-08-01 14:50:55 浏览数 (1)

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。热爱技术、专注业务、开放合作、乐于分享,期待你我共同成长! 主打方向:Vue、SpringBoot、微信小程序

一、Java 常量

在 Java 中,常量就是在程序执行过程中不会变化的量,有两种实现方式,分别为:

  1. 字面量:如 abc123 等。
  2. 通过 final 关键字修饰的,有名称的常量。

1.1 字面量

请看以下代码块:

代码语言:javascript复制
public class Main {

    public static void main(String[] args) {

        System.out.println(123);
    }
}

代码中的 123 就是常量,它不能被更改。


1.2 Final 修饰

Final 修饰的常量定义的语法为 private static final 类型 名称,请看以下代码块:

代码语言:javascript复制
public class Main {

    private static final int MAX_SIZE = 10;
    public static void main(String[] args) {

        for(int i = 0; i < MAX_SIZE; i   ) {
            System.out.println(i);
        }
    }
}

提示:其中 static 为静态修饰关键字,将在后续章节中讲解。

代码中的 MAX_SIZE,就是一个常量,它也一样不能被改变。

如果开发者尝试去改变常量,则无法通过编译,如下图所示。

提示:在实际开发中,建议为常量赋初始值,如果不赋予初始值也有默认值,具体可见《【JavaSE专栏5】Java 基本数据类型和取值范围》的 2.2 小节。


二、Java 变量

在 Java 中,变量就是在程序执行过程中,其值可以发生变化的量,在实际开发中很常见。

2.1 变量定义

在 Java 中,一般通过基本数据类型来定义基本变量,比如:

  • int a;
  • double b;
  • float c;

此时在变量中存放的就是一个具体的基本数据类型的值。

在实际开发中,更多的是定义类、数组、引用类型的变量,比如:

  • String d = “str”;
  • User e = new User();
  • int [] arr = null;

此时在变量中存放的是一个内存地址。

变量的定义方式为:

  • 类型名 变量名;
  • 类型名 变量名1,变量名2,变量名3, … ;
代码语言:javascript复制
public class Main {

    public static void main(String[] args) {

        int a;
        double b;
        float c,d;
        boolean e;
        String f;
        int[] g = new int[10];
    }
}

2.2 变量属性

Java 变量有四个属性,分别是变量名称、变量类型、变量当前值和变量地址。

  1. 变量名称:程序中用来标识此变量的名称。
  2. 变量类型:定义此变量时指定的类型。
  3. 变量当前值:在任何时刻次变量存储的具体的值。
  4. 变量地址:变量在内存中的开始地址。

变量类型的存在有两个作用,已是指明此变量在内存中所占的字节数;再是可以限制此变量可以参与的运算。 变量当前值可以存放实际的值,也可以存放引用变量的内存地址,可以是对象的开始地址或数组的开始地址。


三、变量的作用域

变量的作用域指的是它的存在范围,只有在这个范围内使用它才是有效的。

其次,作用域决定了变量的生命周期。

变量的生命周期是指从一个变量被创建并分配内存空间开始,到这个变量被销毁、清除内存空间的过程。

当一个变量被定义时,它的作用域就被确定了,分为以下几种类型。

  1. 成员变量:可细分为类层次成员变量、对象层次成员变量。类层次成员变量由 static 关键词修饰,被所有对象共享,直到类被卸载才消失;对象层次成员变量在对象毁灭时即消失。
  2. 局部变量:在方法内部或一个代码块内部定义,也是最常用的变量,只有在此方法内部或此代码块内部才有效。
  3. 方法参数:局部变量的一个分支,方法执行时存在,方法执行完毕后消失。
  4. 异常处理参数:也是局部变量的一个分支,只在对应的异常语句块中有效。

参考代码如下所示:

代码语言:javascript复制
public class Main {

    private static final int MAX_SIZE = 10;
    public static void main(String[] args) {

        int a;
    }

    public static int add(int x,int y) {
        try {
            return x   y;
        } catch (Exception e) {
            System.out.println("异常了!");
            return 0;
        }
    }
}

图解说明如下图所示:


四、课时小结

在本节课时中,讲解了 Java 中常量的定义,涉及到字面量和 Final 关键字修饰,接着学习变量的使用和作用域范围。在下节课时中将讲解 Java 的运算符、表达式和语句。

0 人点赞