常量和变量的区别?

常量和变量的区别?常量 在程序运行过程中 其值不可以发生改变的量 与 C 语言不同 Java 直接 不支持常量 但是可以通过声明变量 static 和 final 来创建常量 一旦声明了一个静态变量 它们将在编译时加载到内存中 即只有一个副本可用 声明变量 final 后 就无法再次修改其值 常量又分为直接常量和符号常量 直接常量直接常量分类 含义 举例 字符串常量 用双引号括起来的多个字符 可以包含 0 个 一个或多个 a abc 中国 等 整数常

1.常量:在程序运行过程中,其值不可以发生改变的量。

常量又分为直接常量和符号常量。

与C语言不同,Java(直接)不支持常量。但是可以通过声明变量static和final来创建常量。一旦声明了一个静态变量,它们将在编译时加载到内存中,即只有一个副本可用。声明变量final后,就无法再次修改其值。

1.1直接常量

直接常量分类

含义

举例

字符串常量

用双引号括起来的多个字符(可以包含0个、一个或多个) “a”、”abc”、”中国”等

整数常量

整数 -10、0、88等

小数常量

小数 -5.5、1.0、88.88等

字符常量

用单引号括起来的一个字符 ‘a’、’5’、’B’、’中’等

布尔常量

布尔值,表示真假 只有两个值true和false

空常量

一个特殊的值,空值 值为null
除空常量外 其他常量均可使用输出语句直接输出

0123(八进制)

0x123(十六进制)

1.2符号常量:符号化的常量,也就是给常量取个名字。

     定义常量的语法:

             static final 数据类型 常量名 = 值

             static final double p = 3.

为什么使用符号常量?

        (1)便于维护,便于阅读

        (2)符号常量相比于直接常量能提供更丰富的信息,增强程序可读性。

2.变量:在程序运行过程中,其值可以发生改变的量。

从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化。

变量的本质是内存单元,内存单元可以存储数据,也可以将存储的数据读出来。

变量的定义格式:

        1.声明变量并赋值
                数据类型 变量名= 初始化值;
                int age = 18;  

        2.先声明,后赋值(使用前赋值即可)
                数据类型 变量名;
                double money;

                变量名= 初始化值;
                money = 55.5;  

使用变量时的注意事项:

  1. 在同一对花括号中,变量名不能重复。

  2. 变量在使用之前,必须初始化(赋值)。

  3. 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。

  4. 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。

3.final变量和常量(静态和final)之间的主要区别

常量和变量就是在内存中做数据交换的一个过程。

常量变量是其值固定的变量,程序中仅存在一个副本。

如果创建不带static关键字的final变量,尽管其值不可修改,但每次创建新对象时都会创建该变量的单独副本。如果常量不可修改,并且整个程序中只有一个副本。

4.final、finally、finalize 的区别?

1)final关键字
用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。
2)finally关键字
异常处理语句结构的一部分(经常与try或者try-catch搭配使用

,表示总是执行。
3)finalize
finalize不是Java中的关键字,只是Object类中的一个默认方法名
Object 类的一个方法,在垃圾回收器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。该方法更像是一个对象生命周期的临终方法,当该方法被系统调用则代表该对象即将“死亡”,但是需要注意的是,我们主动行为上去调用该方法并不会导致该对象“死亡”,这是一个被动的方法(其实就是回调方法),不需要我们调用。
总上所述,对象的finalize()方法尽量不要使用,对象的销毁完全交由垃圾收集器处理,从而减少不必要的复杂行工作
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218507.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午7:05
下一篇 2026年3月18日 上午7:05


相关推荐

  • linux对外开放端口_如何通过命令开启端口

    linux对外开放端口_如何通过命令开启端口本文目录一、引言二、管理防火墙的命令2.1、开启防火墙2.1.1首先查看防火墙状态2.1.2开启防火墙2.1.3设置开机自启2.1.4重启防火墙2.1.5查看防火墙设置开机自启是否成功2.2、开启特定端口2.2.1添加端口2.2.2重新载入2.2.3查看2.2.4删除2.2.5关闭防火墙2.2.6查看开启的所有端口2.2.7查看服务的监听一、引言在Centos7.x中防火墙由firewalld来管理,以前为了方便,把防火墙都关闭了,因为现在项目

    2025年9月29日
    4
  • page.RegisterStartupScript 方法

    page.RegisterStartupScript 方法注意:此API现在已过时。在页响应中发出客户端脚本块。允许asp.net服务器控件在page中发出客户端脚本块。page.RegisterStartupScript(key,)参数key标识脚本块的唯一键。script要发送到客户端的脚本的内容。以下是一些应用实例:打开一个新窗口:   page.registerstartupscr

    2022年7月20日
    19
  • 项目7+1团队_激励团队冲刺的话

    项目7+1团队_激励团队冲刺的话项目Beta冲刺(团队7/7)

    2022年4月22日
    100
  • PyCharm代码格式调整

    PyCharm代码格式调整PyCharm 代码格式调整前言序锦很多时候 当我们在使用编辑器的时候 遇到复制粘贴 修改别人代码等等的时候 都会遇到这个让人头疼的问题 那就是如何解决格式问题 今天就让华仔带你一起去解决这些困扰了你好久的问题吧 PyCharm 中调整代码格式 PyCharm 中代码整体缩进 以及反向缩进 pycharm 中调整代码格式首先打开 PyCharm 右上角文件

    2025年10月15日
    6
  • AI自动写代码:DeepSeek+CLine+VSCode实战指南

    AI自动写代码:DeepSeek+CLine+VSCode实战指南

    2026年3月16日
    2
  • 加密的TCP通讯全过程

    加密的TCP通讯全过程转自:http://blog.csdn.net/laotse/article/details/5910378首先3个概念,1、不可逆加密2、可逆对称加密3、可逆非对称加密1、不可逆加密,大家最熟悉的一种,md5sha1就是,加密后就不能解密,只能用于存储密码和校验文件变动,不能用于网络通讯。2、可逆对称加密,用一个钥匙把内容加密,只要有这个钥匙的人就可以解密,就像登录wi

    2022年6月1日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号