Java从常量的定义看变量的声明和赋值

今天写Java代码,想使用静态代码块给常量赋值,定义的时候先给常量赋一个null值,然后在代码块中给常量赋正确值,结果编译报错,很是蹊跷,便引发了我对Java中常量赋值、以及变量声明和赋值的思考。

操作方法

  • 01

    先来看问题,编写测试类,定义一个常量;编译器给出的错误提示是常量TEST不能被分配,言外之意就是不允许修改TEST。

  • 02

    之前了解过,final修饰的变量的引用是不允许修改的(即引用的值不能变,也即不允许多次赋值),难道在静态代码块之前TEST已经被初始化,并分配内存了,然后我再次尝试修改常量就会抛出编译器错误。

  • 03

    看到这里,只能是 "=null",已经给常量赋值了,结果就不允许在静态代码块中赋值了。

  • 04

    所以修改TEST的声明,去掉“=null",结果就不报错了。

  • 05

    还有一点值得思考,就是final修饰的常量必须赋值,否则编译器会报错;

  • 06

    思考,这也就说明了几个问题: (1)声明常量和给常量赋值是两个过程,也可以在声明的时候直接赋值;即使用“=”赋值。 (2)常量必须赋值。 (3)“=null”,也是赋值 (4)对于常量,只允许一次赋值。(常量就是只允许赋值一次的变量)

  • 07

    对于变量而言,Java会给声明的变量赋值初始值,比如对象的null、整形的0、String的null、浮点型的0.0等

(0)

相关推荐

  • 如何学习java?:数组的定义及使用

    现在是一个高速发展的信息时代,越来越多的人都想要去学习java,今天小编就来跟大家讲讲如何学习java以及数据的定义和使用,希望对大家有所帮助. 操作方法 01 虽然java的学习过程非常辛苦,但是只 ...

  • C语言如何定义字符串变量

    现在我们来看看,C语言如何定义字符串变量. 操作方法 01 首先,我们定义一个字符数组变量,可以这么写. 02 然后我们输入字符的长度. 03 接下来我们就可以直接赋值字符串. 04 我们也可以定义多 ...

  • 如何理解Java变量的声明、初始化和作用域

    Java语言是一种强类型的语言,变量必须要声明才可以使用,且声明变量时需要制定变量的数据类型,下面教各位童鞋如何理解Java变量的声明.初始化和作用域 操作方法 01 打开我们的Eclipse,新建项 ...

  • Ansys如何定义参数变量导入数据文件?

    软件中可以定义数组或表格参数,并通过导入文件导入外部数据.当有一系列数据需要导入软件进行有限元仿真分析时,需要首先创建Array Parameters(参数变量),然后以加载文件形式,将文件中一系列数 ...

  • java中带static的成员变量和方法有何作用?

    在java开发中,常常要创建带不同修辞关键字[public]\[private] static的成员变量或方法. 提出问题:这些关键字各起什么作用呢? 解决问题:现结合实例对static 小结一下. ...

  • java 查看源代码 添加src还是看不到源代码

    java源代码,一般在src.zip中,jdk包里面都有.如果部分找不到源码的,在openjdk里面有 操作方法 01 JDK 与 OpenJDK 代码上是一样的,只是应用的开源协议不同JDK 只公布 ...

  • C++ 语言命令大全

    C++的基础指令功能及其使用方法. 操作方法 01 常用程序包文件: #include <stdio.h> #include <tchar.h> #include<ios ...

  • 如何使用R语言中的barplot函数绘制彩色的柱状图

    R语言中有第三方包------RColorBrewer,主要用于进行颜色配对,可以获取不同的颜色值.barplot函数用于绘制柱状图,每条柱子可以绘制不同的颜色值.下面利用一个实例调用RColorBr ...

  • java中的常量定义 final 的问题解决方法

    Java 中我们常常需要定义一些常量ID,ID值为连续不重复值 方法1:, 方便的定义,方便增减ID 非常方便, 程序保证不会有重复的ID public static class HandleMess ...