Java标识符和关键字,Java常量的定义和分类

news2025/6/22 22:46:46

任何一种计算机语言都离不开标识符和关键字,因此下面将详细介绍 java 的标识符、关键字和保留字。

标识符

Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。在 Java 语言中,标识符的构成规则如下。

  • 标识符由数字(0~9)和字母(A~Z 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
  • 标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。


另外,Java 区分大小写,因此 myvar 和 MyVar 是两个不同的标识符。

提示:标识符命名时,切记不能以数字开头,也不能使用任何 Java 关键字作为标识符,而且不能赋予标识符任何标准的方法名。

标识符分为两类,分别为关键字和用户自定义标识符。

  1. 关键字是有特殊含义的标识符,如 true、false 表示逻辑的真假。
  2. 用户自定义标识符是由用户按标识符构成规则生成的非保留字的标识符,如 abc 就是一个标识符。


提示:使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。此外,标识符可以包含关键字,但不能与关键字重名。

例如以下合法与不合法标识符。

  • 合法标识符:date、$2011、_date、D_$date 等。
  • 不合法的标识符:123.com、2com、for、if 等。


标识符用来命名常量、变量、类和类的对象等。因此,一个良好的编程习惯要求命名标识符时,应赋予它一个有意义或有用途的名字。

关键字

关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。例如实例 HelloJava.java 中的 class 就是一个关键字,它用来声明一个类,其类名称为 HelloJava。public 也是关键字,它用来表示公共类。另外,static 和 void 也是关键字,它们的使用将在本教程后面的章节中详细介绍。

Java 的关键字对 Java 编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等。保留字是为 Java 预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。

Java 语言目前定义了 51 个关键字,这些关键字不能作为变量名、类名和方法名来使用。以下对这些关键字进行了分类。

  1. 数据类型:boolean、int、long、short、byte、float、double、char、class、interface。
  2. 流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
  3. 修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
  4. 动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
  5. 保留字:true、false、null、goto、const。


提示:由于 Java 区分大小写,因此 public 是关键字,而 Public 则不是关键字。但是为了程序的清晰及可读性,要尽量避免使用关键字的其他形式来命名。

常量是指在程序的整个运行过程中值保持不变的量。在这里要注意常量和常量值是不同的概念,常量值是常量的具体和直观的表现形式,常量是形式化的表现。通常在程序中既可以直接使用常量值,也可以使用常量。

下面我们来系统地认识一下java  中的常量值,以及定义常量的方法。

常量值

常量值又称为字面常量,它是通过数据直接表示的,因此有很多种数据类型,像整型和字符串型等。下面一一介绍这些常量值。

整型常量值

Java 的整型常量值主要有如下 3 种形式。

  • 十进制数形式:如 54、-67、0。
  • 八进制数形式:Java 中的八进制常数的表示以 0 开头,如 0125 表示十进制数 85,-013 表示十进制数 -11。
  • 十六进制数形式:Java 中的十六进制常数的表示以 0x 或 0X 开头,如 0x100 表示十进制数 256,-0x16 表示十进制数 -22。


整型(int)常量默认在内存中占 32 位,是具有整数类型的值,当运算过程中所需值超过 32 位长度时,可以把它表示为长整型(long)数值。长整型类型则要在数字后面加 L 或 1, 如 697L,表示一个长整型数,它在内存中占 64 位。

实型常量值

Java 的实型常量值主要有如下两种形式。

  • 十进制数形式:由数字和小数点组成,且必须有小数点,如 12.34、-98.0。
  • 科学记数法形式:如 1.75e5 或 32&E3,其中 e 或 E 之前必须有数字,且 e 或 E 之后的数字必须为整数。


Java 实型常量默认在内存中占 64 位,是具有双精度型(double)的值。如果考虑到需要节省运行时的系统资源,而运算时的数据值取值范围并不大且运算精度要求不太高的情况,可以把它表示为单精度型(float)的数值。

单精度型数值一般要在该常数后面加 F 或 f,如 69.7f,表示一个 float 型实数,它在内存中占 32 位(取决于系统的版本高低)。

布尔型常量值

Java 的布尔型常量只有两个值,即 false(假)和 true(真)。

字符型和字符串常量值

Java 的字符型常量值是用单引号引起来的一个字符,如 'e'、E'。需要注意的是,Java 字符串常量值中的单引号和双引号不可混用。双引号用来表示字符串,像 "11"、"d" 等都是表示单个字符的字符串。

除了以上所述形式的字符常量值之外,Java 还允许使用一种特殊形式的字符常量值来表示一些难以用一般字符表示的字符,这种特殊形式的字符是以开头的字符序列,称为转义字符。

注意:这里表示字符和字符串的单引号和双引号都必须是英语输入环境下输入的符号。

表 1 列出了 Java 中常用的转义字符及其表示的意义。

表 1 Java中常用的转义字符
转义字符说明
\ddd1~3 位八进制数所表示的字符
\uxxxx1~4 位十六进制数所表示的字符
\'单引号字符
\"双引号字符
\\双斜杠字符
\r回车
\n换行
\b退格
\t横向跳格

定义常量

常量不同于常量值,它可以在程序中用符号来代替常量值使用,因此在使用前必须先定义。类似也需要初始化,即在声明常量的同时要赋予一个初始值。常量一旦初始化就不可以被修改。它的声明格式为:

Java 语言使用 final 关键字来定义一个常量,其语法如下所示:

final dataType variableName = value

其中,final 是定义常量的关键字,dataType 指明常量的数据类型,variableName 是变量的名称,value 是初始值。

final 关键字表示最终的,它可以修改很多元素,修饰变量就变成了常量。例如,以下语句使用 final 关键字声明常量。

 
  1. public class HelloWorld {
  2. // 静态常量
  3. public static final double PI = 3.14;
  4. // 声明成员常量
  5. final int y = 10;
  6. public static void main(String[] args) {
  7. // 声明局部常量
  8. final double x = 3.3;
  9. }
  10. }

常量有三种类型:静态常量、成员常量和局部常量。

代码第 3 行的是声明静态常量,使用在 final 之前 public static 修饰。public static 修饰的常量作用域是全局的,不需要创建对象就可以访问它,在类外部访问形式为 HelloWorld. PI。这种常量在编程中使用很多。

代码第 5 行声明成员常量,作用域类似于成员变量,但不能修改。代码第 9 行声明局部常量,作用域类似于局部变量,但不能修改。

在定义常量时,需要注意如下内容:

  • 在定义常量时就需要对该常量进行初始化。
  • final 关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。
  • 为了与变量区别,常量取名一般都用大写字符。


当常量被设定后,一般情况下不允许再进行更改,如果更改其值将提示错误。例如,如下图中定义常量 AGE 并赋予初值,如果更改 AGE 的值,那么在编译时将提示不能重合赋值错误。
 

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

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

相关文章

Go的运算符解密:探索计算的奥秘

目录 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 其他运算符 运算符优先级 代码示例 更多关于Go的相关技术点,敬请关注公众号:CTO Plus后续的发文,有问题欢迎后台留言交流。 原文:Go的运算符解密:…

论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】

文章目录 论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】背景:数据分析师工作范围基于GPT-4的端到端数据分析框架将GPT-4作为数据分析师的框架的流程图 实验分析评估指标表1:GPT-4性能表现表2&…

日语学习网站web项目

支持日语五十音,平片假名、罗马音、词义转换、百度翻译功能,方便日语初学者学习日语发音 介绍 采用vitevue3ts技术栈开发, pinia管理全局化。主要是为了日语入门学习五十音, 以及日语句子罗马 发音对照练习。 参考以下两个项目完成 https://github.com/hexenq/kuroshiro ht…

SpringMVC的请求处理

请求映射路径的配置 请求映射路径的配置主要是通过RequestMapping注解实现的 相关注解作用使用位置RequestMapping设置控制器方法访问路径的资源,可以接收任何请求方法和类上GetMapping设置控制器方法访问路径的资源,可接收GET请求方法和类上PostMappin…

绿源正式登陆港股,行业老将凭原创科技走向新未来

两轮电动车领域历史最悠久的老将之一——绿源,正式掀开发展之路的新篇章。10月12日,绿源正式登陆港交所,上市首日股价开盘向上,涨幅一度超过9%。 此前,绿源的招股书失效以及在地方抽检中出现的负面新闻,引…

YOLOv7改进策略:RIFormerBlock助力检测|CVPR2023 RIFormer:无需TokenMixer也能达成SOTA性能的极简ViT架构

💡💡💡本文属于原创独家改进: 稀疏重参数RIFormerBlock模型引入YOLOv7进行创新性 RIFormerBlock | 亲测在多个数据集实现涨点; 收录: YOLOv7高阶自研专栏介绍: http://t.csdnimg.cn/tYI0c ✨✨✨前沿最新计算机顶会复现 🚀🚀🚀YOLOv7自研创新结合,轻松…

微信支付(小程序)

1、配置回调地址 2、小程序和微信支付进行绑定 3、小程序支付需要获取openId 4、uniapp中支付的关键代码 uni.requestPayment({"provider": "wxpay", "orderInfo": {"appid": "wx499********7c70e", // 微信开放平台 - 应…

如何给视频加上酷炫边框?简单几步搞定

随着社交媒体的普及,越来越多的人开始关注如何给自己的视频加上炫的边框,以增加观赏性和吸引力。而乔拓云作为一款在线海报制作工具,为这一需求提供了便捷的解决方案。下面就让我们一起来看看如何通过乔拓云给视频加上酷炫边框吧!…

HPE设备固件升级步骤

一.打开HPE的support官网 https://support.hpe.com/connect 二.搜索需要的设备型号 三.搜索需要的固件 四.选择需要安装的版本及环境 5.下载与安装,也可以查看历史版本

“上海设计100+”和“设享奖EDW”先后揭晓,深兰科技皆获大奖

国庆前夕,“上海设计100”和“设享奖EDW”两项产品设计大奖的获奖榜单先后揭晓,深兰科技出品的计算机视觉工业检测标准化设备-剑齿虎在两项大奖的评选中皆获大奖。 01上海设计100——2023世界设计之都大会 9月26日,由上海市人民政府主办&…

Latex写作如何划钩与打叉

文章目录 概要实现在这里插入代码片效果 概要 我们经常在论文写作中需要划钩 “√” 与打叉 “”,本文介绍在latex中的几种实现方式。 实现在这里插入代码片 \documentclass{article} \usepackage{bbding} %重要:首先在导言区调用bbding包\begin{docu…

PCB射频天线设计基本要点及布局技巧

射频天线设计与布局是需要认真关注细节的领域之一,也是混合信号设计师给出的一些提示。如果刚开始接触高频模拟设计,可采用本文给出的这些技巧,以确保RF设计具有良好的隔离效果和信号完整性。 如今,人们已很难想到哪个消费产品不含…

软件分享--星空五子棋

如果你喜欢下五子棋,可以尝试星空五子棋,一款能够与你下五子棋的电脑游戏 六种电脑AI难度、每种AI具有不同的性格,好像在与不同的棋手较量 难度一:急于进攻的AI,容易被击败 难度二:温柔的AI,不…

防静电门禁闸机管理系统的优点有哪些

防静电门禁管理系统是一种专门针对静电敏感场所设计的门禁管理系统,其主要优点包括: 防止静电干扰:防静电门禁管理系统采用了防静电材料和设计,能够有效地防止静电干扰,保障设备和人员的安全。 提高门禁安全性&#x…

echarts 多y轴 数据有负数导致0刻度线不对齐

修改前: let y1Data [2.0, 4.9, 7.0, 23.2, 25.6, -76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3] let y2Data [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3] let rowNum 6; let max1 y1Data.length ! 0 ? Math.max(...y1Data) : 1;…

STM32CubeMX使用

一、新建工程 首先,打开STM32CubeMX,第一次使用的朋友可以点击右侧的CHECK FOR UPDATE和INSTALL/REMOVE检查一下软件更新并且找到对应芯片的固件库然后下载,软件和固件库都推荐是使用最新版的,这里不多介绍。 完毕之后点击File-&…

漏刻有时数据可视化Echarts组件开发(40)pictorialBar象形柱图

pictorialBar象形柱图 type:必须在ECharts 5.0以后的版本中设置,值为’pictorialBar’。name:系列名称,用于tooltip的显示,legend的图例筛选,在setOption更新数据和配置项时用于指定对应的系列。legendHov…

nodejs+vue+elementui实验室预约管理系统

简单的说 Node.js 就是运行在服务端的 JavaScript。 前端技术:nodejsvueelementui 前端:HTML5,CSS3、JavaScript、VUE实验室如何适应新的时代和新的潮流,开展有效的信息服务工作,完成时代赋予的新使命?本文就这一问题谈谈几点粗浅的看法.扩大业务范围,更…

HarmonyOS 远端状态订阅开发实例

IPC/RPC 提供对远端 Stub 对象状态的订阅机制, 在远端 Stub 对象消亡时,可触发消亡通知告诉本地 Proxy 对象。这种状态通知订阅需要调用特定接口完成,当不再需要订阅时也需要调用特定接口取消。使用这种订阅机制的用户,需要实现消…

金融新应用潮涌,银行如何加强数据安全韧性?

文 | 螳螂观察 作者 | 李永华 竞争白热化下,业务创新已经成为银行等金融企业普遍的追求。 以地方商业银行为代表,为了争夺市场、突破“大行”势能、让企业发展更进一步,新型应用正在快速落地,带来全新的竞争力。 但是&#xf…