一篇文章带你入门Java字面量和常量
目录引言概念字面量字面量的分类常量总结
引言
概念
字面量:
又叫直接量或者数据,表示直接给出的一个值(可以是整数、小数、ture、false等等。
常量:
是指在Java程序中固定不变的数据(字面量)。我们可以理解为是一种特殊的变量,它的值被设定后,在程序运行过程中不允许改变。
字面量
♀ 小AD:哥什么是字面量,光看定义不是很明白呢?
♂ 明世隐:这还不明白吗?比如你今天去坐地铁,花了5块钱,这个5就是字面量。
♀ 小AD:那我明天去更远的地方要8块钱呢?
♂ 明世隐:那8就是字面量。
♀ 小AD:还是不是很清楚,你还是举游戏的例子吧。
♂ 明世隐:你这货,就举你最喜欢的,你杀一个敌方英雄多少金币。
♀ 小AD:200啊
♂ 明世隐:那200就是字面量。
♀ 小AD:那我第2次杀他,就更少钱了可能180,我要是连续杀几次,他可能只值20块了。
♂ 明世隐:那180、20就是字面量。
♀ 小AD:好像有点明白了。
♂ 明世隐:说到底就是指数据。
♀ 小AD:哦
♂ 明世隐:数据也分好几种类型
字面量的分类
字面量类型
说明
举例
字符串字面量
用双引号(")括起来的内容
“小鲁班”,“明世隐”
字符字面量
用单引号(')括起来的内容
‘男',‘女'
整数字面量
不带小数点的数字
200 , 150
小数字面量
带小数点的数字
3.14 , 66.66
布尔字面量
布尔值表示真假
true,false
空字面量
一个特殊的值,空值
null
字符串字面量
public static void main(String[] args) {
System.out.println("小鲁班");
System.out.println("你个**,你特么*****");
}
♀ 小AD:明哥我知道这个
♂ 明世隐:说说看。
♀ 小AD:这个好简单,第一个是我喜欢的小鲁班,第2个是我喷打野常用台词。
♂ 明世隐:喷人你倒是记得清楚。这种用双引号包括的内容表示的,就是字符串字面量,也各类语言中常用的包括Java。
♀ 小AD:嗯这个比较好理解。
♂ 明世隐:记住双引号是英文的哦
♀ 小AD:知道了
字符字面量
System.out.println('男');
System.out.println('A');
♂ 明世隐:invalid character constant,大概意思就是“无效的字符常数”。
♀ 小AD:就是说单引只能一个字符
♂ 明世隐:对是这个意思,如果要多个字符,就用双引号表示字符串字面量。
整形字面量
System.out.println("第一次击杀");
System.out.println(200);
System.out.println("第二次击杀");
System.out.println(180);
♀ 小AD:这个我明白,200,180就是整形字面量
♂ 明世隐:对的,不错。
小数字面量
System.out.println("的值是");
System.out.println(3.14);
System.out.println("技能冷却时间(秒)");
System.out.println(3.5);
布尔字面量
System.out.println(true);
System.out.prinszKeuhmGUtln(false);
♀ 小AD:哥,我看这个true,false是关键字哦。
♂ 明世隐:对的呀,布尔就两个值,true、false。
♀ 小AD:哦。。
♂ 明世隐:说的通俗点,当刺客突到你脸上的时候,你只有两种结果,没有第3种。
♀ 小AD:不不不,有好几种,刺客生,刺客死,我生我死,他得200,我得200,你看有好多种情况吧。
♂ 明世隐:但你没发现你这些都是对立的吗?
♀ 小AD:好像是哦。
♂ 明世隐:你就这样想,他突到你脸上,你的结果是什么就不会搞不明白。你的结果就2种,要么活,要么死。还有第3种情况吗。
♀ 小AD:不好意思我有复活甲。
♂ 明世隐:不好意思,既然是复活甲,那就是活,况且别人压起身,你还不得死。结果就只有生和死,没有别的。
♀ 小AD:嗯,我知道了。明哥讲问题真的透彻哦。
♂ 明世隐:没办法,谁叫哦遇到你这个大聪明呢?
♀ 小AD:我猜你肯定在夸我,虽然我后背有一丝丝的凉。
♀ 小AD:哥最后一个空字面我知道了,肯定这样写
System.out.println(null);
♀ 小AD:明哥,报错了,之前的不都这么写吗?
♂ 明世隐:System.out.println()括号中如果传入null,不同形式的null最终的输出也不同。如果是直接传入null,则会报错,因为无法确定传入的值是什么对象。
♀ 小AD:额。。不懂
♂ 明世隐:意思就是别这么用,后面的章节会具体说明。
♀ 小AD:好吧
常量
♀ 小AD:明哥明哥,我想发个言
♂ 明世隐:哟,还举手发言拉,可以啊,今天送你一颗星(明日之星)。
♀ 小AD:明哥威武,我想说常量很好理解,就比如我的身份证号码,从我出生到最后都是一样的,是不是可以看作是常量。
♂ 明世隐:嗯,不错啊,这个确实可以这样理解的。
♀ 小AD:还有还有,你看我的容颜,从小到大,都这么好看,以后也一直是这样的,也是一个常量
♂ 明世隐:你这个叫好看?得了吧,你这个叫不丑。
♀ 小AD:你要这么说的话,你跟打野对喷的时候,我可就不讲话了。
♂ 明世隐:开什么玩笑,我专业喷子30年,就这些小学生,我喷他们可以不带脏字。
♀ 小AD:你这个确实。。。有点溜
♂ 明世隐:高端的喷子,往往喷人于无形。
常量:是final关键字修饰的变量(在c语言中是被const修饰),初始化必须赋值,且类型和值不能再改变。
public static void main(String[] args) {
final String card = "3603749832492349";
System.out.println("身份证:"+card);
}
♀ 小AD:如果我给它修改一下呢?
♂ 明世隐:那就会编译报错。
♂ 明世隐:意思就是不能给常量赋值。
♀ 小AD:我知道了,哥我有个好想法!
♂ 明世隐:说说看。
♀ 小AD:我把我击杀敌人获得的金币设置成常量,就不会越来越不值钱的
♂ 明世隐:你这想法,有点邪恶啊。
♀ 小AD:我全部设置成第一滴血的金币值,我看谁拦得住我,你看我写的代码。
public static void main(String[] args) {
final int gold=300;
System.out.println("第1滴血:");
System.out.println(gold);
System.out.println("第2次击杀获得:");
System.out.println(gold);
System.out.println("第3次击杀获得:");
System.out.println(gold);
System.out.println("小鲁班已经无人可挡了:");
System.out.println(gold);
System.out.println("小鲁班正在大杀特杀:");
System.out.println(gold);
System.out.println("小鲁班正在大杀特杀:");
System.out.println(gold);
System.out.println("小鲁班已经超神了:");
System.out.println(gold);
}
♂ 明世隐:我草,这么灵性!
♀ 小AD:你不是说程序员可以为所欲为吗?
♂ 明世隐:这个倒是实话,你这都是第一滴血的钱,不爽到死啊 。
♀ 小AD:对啊,我的程序我做主,我说了算
♂ 明世隐:可惜不是你说了算,因为王者,马总说了算。
♀ 小AD:我不管
♂ 明世隐:行吧,今天多送你两颗星我说了算。
♀ 小AD:明哥威武,起飞!
你写得非常清晰明了,让我很容易理解你的观点。