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

相关文章
|
13天前
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
|
30天前
|
数据采集 JSON Java
Java爬虫获取1688店铺所有商品接口数据实战指南
本文介绍如何使用Java爬虫技术高效获取1688店铺商品信息,涵盖环境搭建、API调用、签名生成及数据抓取全流程,并附完整代码示例,助力市场分析与选品决策。
|
1月前
|
数据采集 存储 前端开发
Java爬虫性能优化:多线程抓取JSP动态数据实践
Java爬虫性能优化:多线程抓取JSP动态数据实践
|
19天前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
51 16
|
6月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
96 13
|
5月前
|
自然语言处理 Java 关系型数据库
Java|小数据量场景的模糊搜索体验优化
在小数据量场景下,如何优化模糊搜索体验?本文分享一个简单实用的方案,虽然有点“土”,但效果还不错。
90 0
|
9月前
|
前端开发 JavaScript Java
java常用数据判空、比较和类型转换
本文介绍了Java开发中常见的数据处理技巧,包括数据判空、数据比较和类型转换。详细讲解了字符串、Integer、对象、List、Map、Set及数组的判空方法,推荐使用工具类如StringUtils、Objects等。同时,讨论了基本数据类型与引用数据类型的比较方法,以及自动类型转换和强制类型转换的规则。最后,提供了数值类型与字符串互相转换的具体示例。
454 3
|
传感器 分布式计算 安全
Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与分析技术(171)
本文围绕 Java 大数据在智能安防入侵检测系统中的应用展开,剖析系统现状与挑战,阐释多源数据融合及分析技术,结合案例与代码给出实操方案,提升入侵检测效能。
|
6月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
6月前
|
存储 传感器 缓存
java变量与数据类型:整型、浮点型与字符类型
### Java数据类型全景表简介 本文详细介绍了Java的基本数据类型和引用数据类型,涵盖每种类型的存储空间、默认值、取值范围及使用场景。特别强调了`byte`、`int`、`long`、`float`、`double`等基本类型在不同应用场景中的选择与优化,如文件流处理、金融计算等。引用数据类型部分则解析了`String`、数组、类对象、接口和枚举的内存分配机制。
182 15