java中为什么需要常量和变量的区别_Java中常量和最终变量之间的区别?
Java中的常量
常量变量是其值固定的变量,程序中仅存在一个副本。声明常量变量并为其分配值后,就无法在整个程序中再次更改其值。
与C语言不同,Java(直接)不支持常量。但是,您仍然可以通过声明变量static和final来创建常量。一旦声明了一个静态变量,它们将在编译时加载到内存中,即只有一个副本可用。
声明变量final后,就无法再次修改其值。
示例class Data {
static final int integerConstant = 20;
}
public class ConstantsExample {
public static void main(String args[]) {
System.out.println("value of integerConstant: "+Data.integerConstant);
}
}
输出结果value of integerConstant: 20
Java中的最终变量
声明变量final后,就无法更改其值。如果尝试这样做,将会生成编译时错误。
示例public class FinalExample {
public static void main(String args[]) {
final int num = 200;
num = 2544;
}
}
输出结果FinalExample.java:4: error: cannot assign a value to final variable num
num = 2544;
^
1 error
final变量和常量(静态和final)之间的主要区别在于,如果创建不带static关键字的final变量,尽管其值不可修改,但每次创建新对象时都会创建该变量的单独副本。如果常量不可修改,并且整个程序中只有一个副本。例如,请看以下Java程序,
示例class Data {
final int integerConstant = 20;
}
public class ConstantExample {
public static void main(String args[]) {
Data obj1 = new Data();
System.out.println("value of integerConstant: "+obj1.integerConstant);
Data obj2 = new Data();
System.out.println("value of integerConstant: "+obj2.integerConstant);
}
}
输出结果value of integerConstant: 20
value of integerConstant: 20
在这里,我们创建了一个最终变量,并尝试使用两个对象来打印其值,因为在两个实例中该变量的值都相同,因为我们为每个变量使用了一个不同的对象,它们是实际变量的副本。
根据常量的定义,您需要在整个程序(类)中具有变量的单个副本。
因此,要创建常量作为pert定义,需要将其声明为static和final。
java中为什么需要常量和变量的区别_Java中常量和最终变量之间的区别?相关推荐
- java c++的区别_Java语言与C、C++之间的区别?
小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...
- java中为什么需要常量和变量的区别_Java中的变量和常量
1.变量(variable) 变量,顾名思义,就是变化的量. 我们可以通过变量来操作存储空间中的数据,变量就是指代这个存储空间,一旦你定义了一个一个变量,那么空间的位置就确定了,虽然空间位置是确定的, ...
- java中的常量和变量是什么_java中什么是常量和变量
一.常量和变量 1.常量变量定义 在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量. 2 ...
- java常量能改变值吗_java中的常量和变量
变量 含义:在程序过程中变量的值会发生变化,直白来说就是用来存储可变化的数据 变量的好处:使内存空间的得到重复利用 举个例子: 1 System.out.println(10);2 System.ou ...
- java变量存储位置_java 中变量存储位置的区别
[原文] 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量 ...
- java中静态变量的作用_Java中static变量作用和用法详解
static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...
- java中如何实现变量可配置_Java基础-如何配置环境变量
Java环境变量详细教程 第一步.打开电脑环境变量设置窗口 以Win10系统为例子. 在桌面找到此电脑,右键此电脑- ->属性,点击属性- ->点击左侧高级系统设置 点击高级系统设置 点击 ...
- java中的成员变量和局部变量的区别_java中成员变量与局部变量区别分析
本文实例分析了java中成员变量与局部变量区别.分享给大家供大家参考.具体分析如下: 成员变量:在这个类里定义的私有变量,属于这个类. 创建以及使用成员变量 public class Person { ...
- java的三个环境变量是啥_JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)...
JAVA中常用需要设置的三个环境变量: JAVA_HOME.CLASSPATH.PATH (一) 配置环境变量:(相对路径) 1. JAVA_HOME=x:/jdk1.6.0 2. 用%JAVA_HO ...
最新文章
- byte数组添加数据_数据类型
- 在文本每一行的行首和行尾都插入特定的相同字符或文本
- windows(xshell)免密码登录
- LR(1)分析表-语法树-四元式
- 平安保险基于 SPI 机制的 RocketMQ 定制化应用
- Electron中提示:Refused to execute inline event handler because it violates
- 福利 | 闷骚的程序员是如何讲冷笑话的?
- 波士顿动力机器狗解锁“自动驾驶”,会跑步的Atlas真的很稳
- 990. 等式方程的可满足性
- 一个方法解决Warning: Permanently added 'gitee.com,180.97.125.228' (ECDSA) to the list of
- cmake安装mysql
- Linux下 <用户名> 不在 sudoers 文件中。此事将被报告。
- mysql并行读写_mysql数据库大规模数据读写并行时导致的锁表问题
- 做情绪的主人,痛苦是人生的催化剂
- 魅族mx4服务器无响应,魅族MX4刷机失败解决方法
- 互联网信息服务安全评估报告
- 【翻译】Qt撤销/回撤框架概述
- Reading Comprehension必读paper汇总
- 网络与信息安全顶级期刊与会议
- 新网站对SEO工作内容简介
热门文章
- linux nand 坏块_NAND Flash的坏块管理设计
- C语言之字符串探究(九):空格去除——trim系列
- linux 中添加kvm虚拟化,在 Centos7 的KVM上启用嵌套虚拟化
- oracle存储一个数字格式,Oracle根本数据类型存储格式研究(二)—数字类型
- php urledcode_攻防世界 php 2 函数urldecode 使用说明
- mysql 取第一条_MySQL索引底层(一)索引底层原理
- java 307跳转_java – failure:retrofit.RetrofitError:307临时重定向?
- 计算机科学中抽象的作用,抽象释义
- SpringBoot @SpringBootApplication
- mysql 分组group