如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 321 编程语言
今天写Java代码,想使用静态代码块给常量赋值,定义的时候先给常量赋一个null值,然后在代码块中给常量赋正确值,结果编译报错,很是蹊跷,便引发了我对Java中常量赋值、以及变量声明和赋值的思考。
先来看问题,编写测试类,定义一个常量;编译器给出的错误提示是常量TEST不能被分配,言外之意就是不允许修改TEST。
之前了解过,final修饰的变量的引用是不允许修改的(即引用的值不能变,也即不允许多次赋值),难道在静态代码块之前TEST已经被初始化,并分配内存了,然后我再次尝试修改常量就会抛出编译器错误。
看到这里,只能是 "=null",已经给常量赋值了,结果就不允许在静态代码块中赋值了。
所以修改TEST的声明,去掉“=null",结果就不报错了。
还有一点值得思考,就是final修饰的常量必须赋值,否则编译器会报错;
思考,这也就说明了几个问题:
(1)声明常量和给常量赋值是两个过程,也可以在声明的时候直接赋值;即使用“=”赋值。
(2)常量必须赋值。
(3)“=null”,也是赋值
(4)对于常量,只允许一次赋值。(常量就是只允许赋值一次的变量)
对于变量而言,Java会给声明的变量赋值初始值,比如对象的null、整形的0、String的null、浮点型的0.0等
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
如何快速学习:[1]Swift编程语言,Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Ojective-C*共同运行于MacOS和iOS平台,用于搭建基于苹果平台的应用程......
2023-03-17 321 编程语言
web图表开发工具FineReport:[11]连续分组,数据库表数据是按照时间先后录入的,查询的时候希望按照时间先后,某个字段连续相同的话就合并起来显示,这样的报表可以通过相邻连续分组来实现。......
2023-03-17 544 编程语言