Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?

简介: 在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。

什么是变量?

在Java里,变量就是一个“可变的小盒子”,你可以随时改变它里面的数据。就像你有一个存钱罐,可以随时往里面放钱、取钱,今天装100块,明天变成200块,完全没问题。

变量的定义: 当你要定义一个变量时,你要告诉Java两个信息:

  1. 这个“盒子”是用来装什么类型的数据(也就是数据类型)。
  2. 给这个盒子起一个名字,这样你以后可以随时用这个名字来操作它。

ini

代码解读

复制代码

int age = 25; // 定义了一个int类型的变量,名字叫age,装了25这个数据

在这个例子中:

  • int表示这个变量是用来装整数的。
  • age是变量的名字,也就是这个“盒子”的标签。
  • 25是给这个变量赋的初值,也就是最开始放进去的数据。

变量的特点:

  • 变量的数据是可以变的,你可以随时更改它。

ini

代码解读

复制代码

age = 30; // 现在把age的值改成30

这就像你一开始告诉程序“我的年龄是25”,后来又告诉它“其实我现在30岁了”,程序会根据你最新的数据继续运行。

什么是常量?

常量就是一个“不可变的铁盒子”,一旦你把数据放进去了,就再也不能改动了。就像你把一张纸条锁进一个防撬的保险箱,想改也没法改。

常量的定义: 在Java中,如果你不希望某个值被改动,你可以使用final关键字来定义常量。final告诉程序:“这个盒子里面的东西是固定的,不能再改了!”

arduino

代码解读

复制代码

final int MAX_SPEED = 120; // 定义了一个常量,叫MAX_SPEED,值是120

在这个例子中:

  • final表示这个变量是常量,不能再被修改。
  • int表示这个常量是用来装整数的。
  • MAX_SPEED是常量的名字,一般常量名用大写字母,方便区分。
  • 120是常量的值,一旦赋值,就不能再变。

常量的特点:

  • 常量的数据一旦确定,就不能再修改。

ini

代码解读

复制代码

MAX_SPEED = 150; // 错误!你不能修改一个常量的值

如果你试图修改一个常量,Java会报错,告诉你这个值是不能变的。

常量和变量的区别:

  1. 变量的数据可以变,常量的数据一旦确定就不能改。
  2. 变量没有final修饰,而常量必须用final来修饰。
  3. 常量的名字通常用大写字母命名,以示区别,变量名一般用小写或驼峰命名。

为什么需要常量?

你可能会想:“为什么我要用常量?为什么不用变量就好了?”

常量的作用在于:

  1. 防止意外修改:如果有一些值在程序里不该被改动,比如某个程序的最大运行速度,你就可以用常量来锁定它,避免程序员不小心改了它。
  2. 提高代码可读性:当别人看到MAX_SPEED,会一眼就知道这个值代表的是“最大速度”,而不是一个随便的数字。
  3. 便于修改:如果某些常量值需要调整,比如某个税率,一旦你在程序里设定为常量,你只需要改一个地方,程序里所有用到这个常量的地方都会自动更新。

小结:

  • 变量:可以随时修改,像一个可以反复打开的小盒子。
  • 常量:值是固定的,像一个锁死了的铁盒子,定义时用final修饰。

通过理解变量和常量,你就能轻松掌握如何在程序中处理“可变”和“不可变”的数据了!


转载来源:https://juejin.cn/post/7426319406358609955

相关文章
|
21天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
35 6
|
20天前
|
存储 Java API
深入剖析Java Map:不只是存储数据,更是设计艺术的体现!
【10月更文挑战第17天】在Java编程中,Map是一种重要的数据结构,用于存储键值对,并展现了设计艺术的精髓。本文深入剖析了Map的设计原理和使用技巧,包括基本概念、设计艺术(如哈希表与红黑树的空间时间权衡)、以及使用技巧(如选择合适的实现类、避免空指针异常等),帮助读者更好地理解和应用Map。
60 3
|
9天前
|
Java 编译器
Java重复定义变量详解
这段对话讨论了Java中变量作用域和重复定义的问题。学生提问为何不能重复定义变量导致编译错误,老师通过多个示例解释了编译器如何区分不同作用域内的变量,包括局部变量、成员变量和静态变量,并说明了使用`this`关键字和类名来区分变量的方法。最终,学生理解了编译器在逻辑层面检查变量定义的问题。
Java重复定义变量详解
|
1天前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
7 2
|
1天前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
7 2
|
6天前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
23 2
|
12天前
|
SQL Java OLAP
java实现“数据平滑升级”
java实现“数据平滑升级”
31 2
|
16天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
17天前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
19天前
|
安全 Java
java BigDecimal 的赋值一个常量
在 Java 中,`BigDecimal` 是一个用于精确计算的类,特别适合处理需要高精度和小数点运算的场景。如果你需要给 `BigDecimal` 赋值一个常量,可以使用其静态方法 `valueOf` 或者直接通过字符串构造函数。 以下是几种常见的方法来给 `BigDecimal` 赋值一个常量: ### 使用 `BigDecimal.valueOf` 这是推荐的方式,因为它可以避免潜在的精度问题。 ```java import java.math.BigDecimal; public class BigDecimalExample { public static void
下一篇
无影云桌面