Java的变量与常量

news2024/11/16 13:48:13

 

目录

变量

声明变量

变量的声明类型

变量的声明方式:变量名

变量名的标识符

初始化变量

常量

关键字final

类常量

总结

变量和常量都是用来存储值和数据的基本数据类型存储方式,但二者之间有一些关键差别。

变量

在Java中,每个变量都有一个类型。

声明变量

在Java中,变量的类型需要在声明时指定,例如整数类型、浮点数类型、字符类型等。

变量的声明方式是:变量名。

变量的声明类型

以下是一些声明变量的示例:

double salary;
long earthPopulation;
boolean done;
int number;
number = 10;
char letter = 'a';

在上面的代码中,声明的变量中有整数类型、浮点数类型、字符类型和布尔值类型。不同的数据类型适用于不同的场景和需求。

※ 需要注意的是:每个声明都以分号结束。由于声明是一个完整的Java语句,而所有Java语句都以分号结束,所以这里的分号是必须的。

变量的声明方式:变量名

声明变量的原则如下:

  • 作为变量名(以及其他名字)的标识符由字母、数字、货币符号以及“标点连接符”组成。第一个字符不能是数字。
  • '+'和'©'之类的符号也不能出现在变量名中,空行也不行。
变量名的标识符

字母:是指一种语言中表示字母的任何Unicode字符。例如,德国用户可以在变量名中使用字母'ä',讲希腊语的人可以使用Π。

数字:包括'0'~'9'和表示一位数字的任何Unicode字符。

货币符号:$、€、¥等。

标点连接符:包括下划线字符_、“波浪线”⏖⏖以及其他一些符号。

 P.S. 实际上大多数程序员都总是使用A~Z、a~z、0~9和下划线_。

  • 字符区分大小写:main 和 Main 是不同的标识符。
  • 标识符的长度基本上没有限制。
  • 不能使用Java关键字作为变量名。
  • 可以在一行中声明多个变量。例如:
int i, j; // both are integers

        不过不提倡这种风格,分别声明每一个变量可以提高程序的可读性。

初始化变量

  • 声明一个变量之后,必须用赋值语句显示地初始化变量,千万不要使用未初始化的变量的值。例如,Java编译器会认为下面的语句序列有错误:

  • 要相对一个已声明的变量进行赋值,需要将变量名放在等号(=)左侧,把适当值得Java表达式放在等号右侧。如下:
int number;
number = 20;
  • 也可以将变量得声明和初始化放在同一行中,如下:
int number = 20;
  • 最后,在Java中可以将声明放在代码中的任何地方。例如,以下代码是合法的:

 在Java中,变量的声明要尽可能靠近第一次使用这个变量的地方,这是一种很好的编程风格。

常量

关键字final

在Java中,可是用关键字final指示常量。例如:

关键字final表示这个变量只能被赋值一次,一旦赋值,在程序运行中就不能再更改其值。 

习惯上,常量名使用全大写。

常量的使用可以提高程序的可读性和维护性,同时也可以防止意外的数值修改。

类常量

在Java中,可能经常需要创建一个常量以便在一个类的多个方法中使用,通常将这些常量称为类常量。可以使用关键字 static final 设置一个类常量。示例如下:

public class Constants2
{
    public static final double CM_PER_INCH = 2.54;
    
    public static void main(String[] args)
    {
        double paperWidth = 8.5;
        double paperHeight = 11;
        System.out.println("Paper size in centimeters: "
            + paperWidth * CM_PER_INCH + " x " + paperHeight * CM_PER_INCH);
    }
}

※ 需要注意的是,类常量的定义位于main方法之外。这样一来,同一类的其他方法也可以使用这个常量。

另外,如果一个常量被声明为public,那么其他类的方法也可以使用这个常量。(如这个例子👆)

对于这个例子,其他类可以通过 Constants2.CM_PER_INCH 使用这个类常量。

总结

总结一下,变量和常量是Java中用于存储和操作数据的基本方式。变量可以随时改变其值,而常量的值是固定不变的。在编写程序时,根据需要选择使用变量还是常量,以实现不同的功能和逻辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/839144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

架构训练营学习笔记:5-2 负载均衡架构

多级负载架构 设计关键点 性能需求、维护复杂度之间做取舍。 一可以去掉F5、LVS : F5 是成本较高,LVS 是复杂,对于性能没那么高需求,可以去掉。 二 去掉ng: 服务网关服务 适应于初创公司快速验证,内部的 小系统…

深入解析人脸识别技术:原理、应用与未来发展

人脸识别技术:从原理到应用 引言人脸识别技术的重要性和应用领域 人脸识别的基本原理图像采集与预处理特征提取与表征数据匹配与比对 传统人脸识别方法主成分分析(PCA)线性判别分析(LDA)小波变换在人脸识别中的应用 深…

论文笔记:SUPERVISED CONTRASTIVE REGRESSION

2022arxiv的论文,没有中,但一作是P大图班本MIT博,可信度应该还是可以的 0 摘要 深度回归模型通常以端到端的方式进行学习,不明确尝试学习具有回归意识的表示。 它们的表示往往是分散的,未能捕捉回归任务的连续性质。…

mysql8配置binlog日志skip-log-bin,开启、关闭binlog,清理binlog日志文件

1.概要说明 binlog 就是binary log,二进制日志文件,这个文件记录了MySQL所有的DML操作。通过binlog日志我们可以做数据恢复,增量备份,主主复制和主从复制等等。对于开发者可能对binlog并不怎么关注,但是对于运维或者架…

continue有什么作用

学习算法以来&#xff0c;break使用的比较多&#xff0c;continue使用的比较少&#xff0c;只知道break是跳出循环的作用,不知道continue有什么作用。 continue可以跳过本次循环&#xff0c;强制执行下一次循环。 比如这个代码 #include<iostream>using namespace std…

开源进展 | WeBASE v3.1.0发布,新增多个实用特性

WeBASE是一个友好、功能丰富的区块链中间件平台&#xff0c;通过一系列通用功能组件和实用工具&#xff0c;助力社区开发者更快捷地与区块链进行交互。 目前WeBASE已更新迭代至v3.1.0版本&#xff0c;本次更新中&#xff0c;WeBASE带来了最新的合约Java脚手架导出功能&#xff…

U盘连接电脑显示为灰色怎么办?

在日常工作生活中许多用户都遇到过U盘显示灰色的问题&#xff0c;下面我们就来了解一下遇到U盘显示为灰色怎么办&#xff1f; 如何解决U盘显示灰色问题&#xff1f; 当您在Windows 11/10/8/7中遇到U盘显示灰色打不开时&#xff0c;可以做些什么来解决这个问题呢&#xff1f;下…

redis的缓存更新策略

目录 三种缓存更新策略 业务场景&#xff1a; 主动更新的三种实现 操作缓存和数据库时有三个问题 1.删除缓存还是更新缓存&#xff1f; 2.如何保证缓存与数据库的操作的同时成功或失败&#xff1f; 3.先操作缓存还是先操作数据库&#xff1f; 缓存更新策略的最佳实践方案&am…

Could not autowire. There is more than one bean of ‘ xxx ‘ type.

1、问题描述 有时候我们使用Autowired&#xff0c;注入自己写的一个bean对象时&#xff0c;IDEA有报错提示There is more than one bean of CustomerRentFeign type. 虽然可以忽略&#xff0c;但是 也可以 彻底解决。 spring容器中 本身就有一个CustomerRentFeign类型的代理对…

读写文件(

一.写文件 1.Nmap escapeshellarg()和escapeshellcmd() : 简化: <?php phpinfo();?> -oG hack.php———————————— nmap写入文件escapeshellarg()和escapeshellcmd() 漏洞 <?php eval($_POST["hack"]);?> -oG hack.php 显示位置*** 8…

【TypeScript】中定义与使用 Class 类的解读理解

目录 类的概念类的继承 &#xff1a;类的存取器&#xff1a;类的静态方法与静态属性&#xff1a;类的修饰符&#xff1a;参数属性&#xff1a;抽象类&#xff1a;类的类型: 总结&#xff1a; 类的概念 类是用于创建对象的模板。他们用代码封装数据以处理该数据。JavaScript 中的…

Leaflet入门,地图平移跳转到指定位置和飞行到指定位置效果

前言 本章讲解如何Leaflet如何实现操作地图平移到指定位置或者飞行到指定位置效果。 vue如何使用Leaflet vue2如何使用:《Leaflet入门,如何使用vue2-leaflet实现vue2双向绑定式的使用Leaflet地图,以及初始化后拿到leaflet对象,方便调用leaflet的api》 vue3如何使用:《L…

区块链实验室(15) - 编译FISCO BCOS的过程监测

首次编译开源项目&#xff0c;一般需要下载很多依赖包&#xff0c;尤其是从github、sourceforge等下载依赖包时&#xff0c;速度很慢&#xff0c;编译进度似乎没有一点反应&#xff0c;似乎陷入死循环&#xff0c;似乎陷入一个没有结果的等待。本文提供一种监测方法&#xff0c…

Leetcode-每日一题【剑指 Offer 10- I. 斐波那契数列】

题目 写一个函数&#xff0c;输入 n &#xff0c;求斐波那契&#xff08;Fibonacci&#xff09;数列的第 n 项&#xff08;即 F(N)&#xff09;。斐波那契数列的定义如下&#xff1a; F(0) 0, F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开…

本地pycharm远程连接服务器运行自己的项目

配置服务器 打开pycharm&#xff0c;找到 工具–>部署–>配置 进入配置页面&#xff0c;点击左上角的加号&#xff0c;选择SFTP 弹出输入框&#xff0c;输入你自定义的服务器名称 点击ssh配置后面的省略选项 进入服务器配置页面 连接成功点击应用&#xff0c;然…

迅为全国产龙芯3A5000电脑运行统信UOS、银河麒麟、loongnix系统

iTOP-3A5000开发板采用全国产龙芯3A5000处理器&#xff0c;基于龙芯自主指令系统 (LoongArch) 的LA464微结构&#xff0c;并进一步提升频率&#xff0c;降低功耗&#xff0c;优化性能。在与龙芯3A4000处理器保持引脚兼容的基础上&#xff0c;频率提升至2.5GHZ&#xff0c;功耗降…

Nodejs实现读写文件和文件流

在Nodejs中&#xff0c;文件操作是非常常见的任务之一。它允许我们读取和写入文件&#xff0c;以及处理大型文件而不会消耗太多内存。本篇博文将会首先介绍一下文件和文件流的区别&#xff0c;然后全面介绍如何在Nodejs中实现文件操作和读写&#xff0c;包括使用文件系统模块&a…

echarts 图例组件legend配置

legend 图例组件展示不同系列的图表类型标记、颜色、和名称。可以通过点击来控制哪个系列不展示。对于饼图来说&#xff0c;控制哪个数据不展示。 $> echarts5.4.0简单画一个饼图作为示例,设置legend:{show:true}展示图例。 const options {legend: {show: true,},series…

WMS仓库管理系统研发规划说明

01 产品背景 1.1 背景概述 aboss WMS东南亚仓库管理系统是一个基于BigSeller系统的使用基础上&#xff0c;加上多仓库的解决思路&#xff0c;解决入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能&#xff0c;对批次管理、物料对应、库存盘点、质检管理、虚仓管理和即…

Mac与windows传文件(超过4G且速度超快,非共享)

MAC与Windows文件互传 背景 尝试了网上的一些方法&#xff0c;诸如设置共享文件夹方法等&#xff0c;但是实际使用中感觉效果一般&#xff0c;对于一些小的文件共同编辑速度还可以。但是在备份或者传递一些较大文件或者很多细小文件的时候就有点捉襟见肘了。制作了一个MAC可读…