final修饰符(4)-"宏替换"
对于一个final变量来说,不管它时类变量,实例变量还是局部变量,只要满足三个条件,这个final变量就不再是一个变量,而是一个直接量.final变量的一个重要用途,就是定义"宏变量"
1,使用final修饰符修饰
2,在定义该final变量时指定了初始值
3,该初始值可以在编译时就被确定下来
//定义"宏变量"
final int a=5;
final int b=5+2;
final String str1="zhou"+"wen";
final String str2="zhouwen"+9.90;
final String str3="zhouwen"+String.valueOf(9.90);
System.out.println(a);
System.out.println(b);
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str1=="zhouwen");
System.out.println(str2=="zhouwen9.90");
System.out.println(str3=="zhouwen9.90");
/*answer:
5
7
zhouwen
zhouwen9.9
zhouwen9.9
true
false
false
*/
System.out.println("==============================");
String s1="zhouwen";
//s2变量引用的字符串可以在编译时就确定下来
//因此s2直接引用常量池中已经存在的"zhouwen"字符串
String s2="zhou"+"wen";
System.out.println(s1==s2);
String s11="zhou";
String s21="wen";
String s3=s11+s21;
System.out.println(s1==s3);
final String s12="zhou";
final String s22="wen";
String s4=s12+s22;
System.out.println(s1==s4);
answer
==============================
true
false
true
注意:只有在定义该变量时指定初始值才会有"宏变量"的效果
final修饰符(4)-"宏替换"的更多相关文章
- Java final 修饰符知识点总结
final从字面上理解含义为“最后的,最终的”.在Java中也同样表示出此种含义. final可以用来修饰变量(包括类属性.对象属性.局部变量和形参).方法(包括类方法和对象方法)和类. 1. fin ...
- final修饰符:
知识点: 1.final关键字用于修饰类.变量和方法 2.有点类似C#里的 sealed 关键字,用于表示它修饰的方法.变量和类不可以再被改变 3.final修饰变量时,表示该变量一旦获取了初始值,就 ...
- Java中final修饰符深入研究
一.开篇 本博客来自:http://www.cnblogs.com/yuananyun/ final修饰符是Java中比较简单常用的修饰符,同时也是一个被"误解"较多的修饰符.对很 ...
- JavaSE——final修饰符
一.final 修饰变量,被final修饰的变量在被赋初始值之后,不能对它重新赋值 修饰实例变量,必须显示指定初始值,可以在三个位置指定初始值: 1.定义final实例变量时指定初始值 ...
- final修饰符—不可变
final 修饰符 修饰类 不可以有子类 修饰变量 变量一旦获得初始值就不可改变,不能被重新赋值 成员变量:初始值必须有程序员显式设置,系统不会对其隐式初始化 类变量:静态初始化块 | 声明该类变量时 ...
- 12. final修饰符
一.final修饰符概述 1. final可以修饰类.变量和方法 2. final修饰的类.变量和方法不可改变 3. 不允许为final变量重新赋值,子类不允许覆盖父类的final方法,final类不 ...
- Java中的final修饰符
1.什么时候可以选择final修饰符 如果想让一个类不被其他类继承,不允许在有子类,这时候就要考虑用到final来修饰. 2.用final修饰的类 首先大家要明白,用final修饰的类是不能被继承的, ...
- 对于形式参数只能用final修饰符,其它任何修饰符都会引起编译器错误
在Java中修饰符总共有一下几种: 1.访问控制修饰符 分别有:public private protected,缺省 2.其它修饰符 分别有:abstract,final,stati ...
- private static final 修饰符
java修饰符分类修饰符字段修饰符方法修饰符根据功能同主要分下几种 1.权限访问修饰符 public,protected,default,private,四种级别修饰符都用来修饰类.方法和字段 包外 ...
随机推荐
- return true 和 return false 和 return
1.return false:相当于终止符,干了3件事,阻止默认行为,取消事件冒泡,以及停止回调执行立即返回: 2.return:停止回调执行立即返回: 3.return true:相当于执行符,继续 ...
- 国内外企业竞争AR HUD
国内外企业竞争AR HUD 华为X红旗合作车型首曝:搭载华为AR HUD.智能座舱方案 2021年4月18日,上海国际车展正式开放,华为也成了此次车展上的重要亮点之一. 据相关报道显示,华为除了联手北 ...
- NVIDIA 自动驾驶软件平台
NVIDIA 自动驾驶软件平台 Software Developers using DRIVE AGX Developer Kits may choose between: DRIVE OS 5.2. ...
- 马斯克如何颠覆航天? 1/5385成本,c++和python编程!
马斯克如何颠覆航天? 1/5385成本,c++和python编程! 5月31日,经历了重重困难,马斯克的SpaceX载人飞船成功发射,这是美国自2011年以来首次发射载人航天飞船,也是美国进入由商业主 ...
- A100计算能力
A100计算能力 A100 GPU支持新的计算功能8.0.表1比较了NVIDIA GPU架构的不同计算功能的参数. 表1.计算能力:GP100 vs. GV100 vs. GA100. MIG架构 尽 ...
- ITS智能交通监控系统技术解析
ITS智能交通监控系统技术解析 红灯,逆行,变 车辆抓拍和车速检测 非法停车和交通流量检测 交叉路口违法检测 发生碰撞的交叉口是智能交通管理. 机动执法 当你需要一个可以移动的系统时,会跟着你移动.移 ...
- C语言代码区错误以及编译过程
C语言代码区错误 欲想了解C语言代码段会有如何错误,我们必须首先了解编译器是如何把C语言文本信息编译成为可以执行的机器码的. 背景介绍 测试使用的C语言代码 导入标准库,定义宏变量,定义结构体,重命名 ...
- PTA4题学习总结
前言: 这是我20多年以来第一次写博客了,还是在学校里那可(牛)爱(逼)的Java老师的安(逼)慰(迫)下,含泪写下第一篇博客,大家应该都明白这种含泪写下的佳(废)作(品)是多么的动人的. 就不开玩笑 ...
- ubuntu初识
简单的Linux系统理解 Ubuntu ctrl+alt 可以令虚拟机释放鼠标,回到主系统中. 如果ubuntu有问题,如何重装? -------直接删除目录.虚拟机内的操作不会影响到宿主机. 1.挂 ...
- codeforeces 845B
题解 codefores 845B 原题 Luba has a ticket consisting of 6 digits. In one move she can choose digit in a ...