Java常量与变量

Java常量与变量

在程序执行过程中,其值不能被改变的量称为常量其值能被改变的量称为变量

Java关键字

|---------------------|----------------------------|--------------------------|--------------------------------|----------------------------------------------------------------------|
| int | public (公有的,可跨包) | new | finally | throw (抛出一个异常对象) |
| continue | float | long | short | extends (继承,用于类继承类) |
| return | break | for | static (用于声明静态成员,被类的所有实例对象共享) | do (运行,常与while连用) |
| if | goto | default | byte | protected (受保护的,当前包内可用) |
| strictfp (严格精准) | package (用于定义包) | super (调用父类的方法) | void | final (最终的不可被改变的, final修饰的类不能被继承, final修饰的方法不能被子类重写,final修饰的属性就是常量 ) |
| else | catch | implements (实现,用于类或接口实现) | private (限定访问权限为私有,当前类可用) | instanceof (用于检查对象是否是特定类型的实例) |
| extends (继承,用于类继承类) | volatile (用于声明变量在多线程环境中可见) | while | synchronized (用于同步方法或代码块,线程同步) | this (当前类的父类的对象,调用当前类中的方法) |
| try | import | transient (用于声明字段不被序列化) | boolean | abstract (声明抽象) |
| interface (用于定义接口) | case (返回开关里的结果) | switch (用于多重选择语句) | class | enum (枚举,代表一组常用常量,可用来代表一类相同类型的常量) |
| null (空值) | char | native (用于声明本地方法) | double | throws (在执行这个方法的时候,可能产生一个异常,如果产生异常了,那么谁调用了这个方法,就抛给谁) |
[Java关键字]

1 常量

程序运行过程中一直不会改变的量称为【常量(constant)】,也被称作【final变量】,常量在整个程序中只能被赋值一次。

Java声明一个常量除了要指定数据类型,还需通过【final】关键字进行限定,标准语法:

final 数据类型 常量名称=值

java 复制代码
//声明常量
final double PI = 3.141592D;    //声明double型常量并赋值
final boolean BOOL = false;     //声明boolean型常量并赋值

当定义的final常量是成员变量/全局变量时,必须在定义时就赋值初始值,否则编译会报错。

java 复制代码
public class Part {
    static final double PI = 3.1415d;    //声明常量PI为成员变量,如果这里不赋值,会错误提示
    static int age = 6;                 //声明int型并赋值变量

    public static void main(String[] args) {
        final int number;               //声明int型常量number
        number = 1225;                  //对常量进行赋值
        age = 31;                       //再次对变量age进行赋值
        //number = 1236;                //错误代码,因为number为常量,常量只能进行一次赋值
        System.out.println("常量PI的值为:" + PI);
        System.out.println("赋值后number的值为:" + number);
        System.out.println("int型变量age的值为:" + age);
    }

}

输出:
常量PI的值为:3.1415
赋值后number的值为:1225
int型变量age的值为:31

2 变量

2.1 成员变量

在类体中所定义的变量称为【成员变量/全局变量】,成员变量的作用域为整个类,类的成员变量又分为【静态变量】和【实例变量】

2.1.1 静态变量
2.1.2 实例变量
java 复制代码
class Var{
    int x = 45;            //x为实例变量
    static int y = 90;     //y为静态变量/类变量
}

示例中,x为实例变量,y为静态变量(也称作类变量),如果在成员变量的前面加上关键字static,这样的成员变量就称为静态变量。静态变量的有效范围可以跨类,甚至可以到达整个应用程序内,静态变量既能在定义它的类中访问使用,也能直接以【类名.静态变量名】的方式在其他类中访问使用

2.2 局部变量

类的方法体中定义的变量(包括方法的参数)称为【局部变量】,局部变量只在当前方法代码块中有效。

局部变量的生命周期取决于方法被调用,方法被调用时JVM为方法中的局部变量分配内存空间,当该方法调用结束后,就会释方法中放局部变量占用的内存空间。

局部变量可与成员变量(全局变量)同名,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效。

变量的作用域

java 复制代码
public class Val {
    static int times = 3;           //定义成员变量

    public static void main(String[] args) {
        int times = 4;              //定义局部变量
        System.out.println("times的值为:" + times);
    }
}

输出:
times的值为:4
相关推荐
圆山猫1 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
微学AI2 小时前
一根针指向所有方向:挂谷猜想对 LLM Agent 技能-记忆架构的启示
开发语言·人工智能·架构·挂谷猜想
城管不管2 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨2 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
豆瓣鸡3 小时前
算法日记 - Day3
java·开发语言·算法
萧瑟余晖3 小时前
Java深入解析篇九之NIO详解
java·网络·nio
韭菜炒鸡肝天3 小时前
VTK开发笔记(一):VTK介绍,Qt..+VSx+VTK.编译
开发语言·笔记·qt
The Chosen One9853 小时前
高进度算法模板速记(待完善)
java·前端·算法
Aaron - Wistron4 小时前
Web API C# (Furion版)带 单元测试
开发语言·后端·c#
Dxy12393102165 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python