Java常量:Java常量的定义和分类

news2025/9/17 8:51:48

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

Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程(含Java项目和Java真题)

下面我们来系统地认识一下 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 关键字声明常量。

public class HelloWorld {
    // 静态常量
    public static final double PI = 3.14;
    // 声明成员常量
    final int y = 10;
    public static void main(String[] args) {
        // 声明局部常量
        final double x = 3.3;
    }
}

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

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

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

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

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

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

 

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

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

相关文章

物联网智能家居总体设计与实现

物联网智能家居突出特点就在于家居都连接入网,且都可以通过一定手段进行智能控制。 图3-1 物联网智能家居框架 如图3-1所示,构建了一个现代家庭中所涉及到的所有物联网智能家居相关的框架。包括了安防、照明、互联网、影音、饮水、停车等方方面面。下面本…

深入理解MySQL索引的数据结构和事务的四大特性、隔离性的四种级别

1.索引1.2 使用索引2.索引的数据结构【重点】3. 事务3.1 使用3.2 事务的四大特性1.索引 概念 索引是一种特殊的文件,饱含着对数据表里所有记录的引用指针。可以对表中的一列或者多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。 作用 …

Linux学习-46-LVM逻辑卷管理机制

11.9 LVM逻辑卷管理机制(硬盘分区管理) 我们在实际使用 Linux 服务器的时候,随着业务的增加,文件系统负载会越来越大,当到了空间不足的情况时,如果我们还在使用传统的分区方式管理硬盘,就不得不…

项目管理的核心是什么?

管理的核心是目标管理 目标管理通俗来讲是对做什么的思考,作为管理者在面向业务的开展过程中,根据业务的动态调整目标,大目标不变的情况下,去不断思考做什么更好地完成目标。 目标发展的几个阶段 1、相关的概念 项目启动&…

做测试8年,刚升主管,还是没逃过裁员....

我做测试8年,半年前被升为测试部门主管,本以为马上到达人生巅峰,没想到公司今天通知跟我解约。 回想晋升的这半年,我也曾激情满满,想着一定要好好干出一番成绩。可做了之后才发现这是个坑: 每天不是在开会…

一个简单的HTML网页 故宫学生网页设计作品 dreamweaver作业静态HTML网页设计模板 旅游景点网页作业制作

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

计算机网络第七章知识点回顾(自顶向下)

第七章知识点回顾1.网络层1.1网络层服务1.1.1网络层的两个主要功能1.1.2选路和转发的关系1.2网络层: 数据面和控制面1.网络层 Chapter goals: 理解网络层服务原理,主要关注数据面 网络层服务模型网络层上的重要功能:转发和选路路由器工作原理编址因特网…

【linux】cpu过高解决方法

CPU过高情况: 1、使用top命令查看cpu的进程占用情况: 2、发现11443的进程占比过高,通过top -Hp 11443 查看线程的占用情况,发现11459、11460、11461线程的占比过高: 解决swap占用CPU: 设置vm.swappiness0…

win10录屏快捷键是什么?电脑录屏快捷键ctrl+alt+

​在我们日常生活中,经常会使用电脑。我们在使用win10电脑的时候,有时候经常会遇到一些好看的视频或者是一些十分有用的知识教程,想要对其进行保存与分享,这个时候就需要用到电脑自带的录屏功能了。那么win10录屏快捷键是什么&…

Ubuntu22 Docker运行SRS流媒体服务,推拉流,yolov5训练自定义模型进行视频流识别

首先安装docker,设置系统启动 sudo apt-get install -y docker.io sudo systemctl start docker 查看docker进程 ps -ef|grep docker 拉去srs镜像 sudo docker pull registry.cn-hangzhou.aliyuncs.com/ossrs/srs:v4.0.198 启动镜像 sudo docker run -p 193…

PPT设置“只读模式”的两种方法

想要防止PPT文件被意外更改,或者禁止他人随意更改,我们可以给PPT设置保护模式,而PPT的“只读模式”就起到了这样的作用。 ​具体的设置方法有两种,我们可以根据不同需求选择合适的方法。 方法一: 防止意外更改&…

Linux安装Nexus3搭建maven私服超详细搭建上传步骤

下载nexus3.x 上传nexus压缩包并解压 启动 开启端口号 浏览器访问 ​编辑 设置开机自启动 运行用户为root (编辑nexus bin下的nexus.rc) 修改nexus3启动时要使用的jdk版本 修改nexus3默认端口 私服新建自定义的仓库 添加角色和用户 添加角色 添加用户 使用 Mave…

[附源码]java毕业设计学生实习管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

12.5 Hierarchical names (层次化名称)

Verilog HDL描述中的每个标识符应具有唯一的分层路径名。模块的层次结构和项目的定义(如模块内的任务和命名块)应定义这些名称。名称的层次结构可以被视为树结构,其中每个模块实例、生成块实例、任务、函数或命名的begin-end 或者 fork-join块…

【Git】一文带你入门Git分布式版本控制系统(简介,安装,Linux命令)

Git 系列文章目录 文章目录Git 系列文章目录一、前言二、安装 Git三、基本 Linux 命令一、前言 [ 什么是Git?] Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。【百度百科】 Git 是分布式版本控制系统&#…

Scratch、Python、C++,谁才是少儿编程的第一选择?

前言 面对市面上形形色色的编程语言类型,经常有家长犯难问我们该如何为孩子选择合适的课程: “那种拖块看起来像玩游戏,不如 Python、C 这样的代码编程语⾔⾼级。” “现在是人工智能时代,直接让孩子从Python学习,以…

【0147】当参数shared_memory_type分别为sysv和mmap时,差异为何如此大?

文章目录 1. sysv和mmap差异如此大2. 底层原理2.1 创建匿名mmap()共享内存段2.2 确定huge page大小2.3 创建ipcs看见的64字节shared memory1. sysv和mmap差异如此大 在【0145】postmaster创建System V shared memory默认值大小(2)一文中的第1节里,我有给出过当postgresql.c…

Hystrix 请求合并、请求隔离、优化

文章目录请求合并引入依赖启动类 加注解EnableHystrixservice服务测试请求隔离线程池隔离&#xff08;大部分情况下&#xff09;信号量隔离线程池隔离演示引入依赖启动类 加注解EnableHystrixservice服务测试信号量隔离演示Hystrix的其他用法请求合并 引入依赖 <dependenc…

linux文件的隐藏属性

1.查看隐藏属性 lsattr 查看文件隐藏属性 lsattr -d 查看目录隐藏属性 lsattr -a 显示隐藏文件隐藏属性 lsattr -R 连同子目录的数据也一并列出来 2.修改隐藏属性 chattr 修改隐藏属性 属性A &#xff1a;当设定了 A 这个属性时&#xff0c;若你有存取此文件(或目录)时&a…

ACM-BCB2019 | SMILES-BERT:基于大规模无监督预训练的分子属性预测模型

原文标题&#xff1a;SMILES-BERT: Large Scale Unsupervised Pre-Training for Molecular Property Prediction 链接&#xff1a;https://doi.org/10.1145/3307339.3342186 一、问题提出 分子指纹&#xff1a;可用于分子性质分类、回归或生成新分子等各种应用。传统的分子指纹…