JavaSE——final修饰符
一、final 修饰变量,被final修饰的变量在被赋初始值之后,不能对它重新赋值
public class FinalVar {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(Price.INSTANCE.currentPrice);
Price price=new Price(2.8);
System.out.println(price.currentPrice);
}
}
class Price{
static Price INSTANCE=new Price(2.8);
static double initPrice=20;
/*
* 若调整 上面两句话的顺序
* 则结果改为 17.2 17.2
*/
double currentPrice;
public Price(double discount) {
// TODO Auto-generated constructor stub
currentPrice=initPrice-discount;
}
}
-2.8
17.2
public class FinalVar {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(Price.INSTANCE.currentPrice);
Price price=new Price(2.8);
System.out.println(price.currentPrice);
}
}
class Price{
final static Price INSTANCE=new Price(2.8);
final static double initPrice=20;
double currentPrice;
public Price(double discount) {
// TODO Auto-generated constructor stub
currentPrice=initPrice-discount;
}
}
17.2
17.2
二、执行“宏替换”的变量
public class FinalDefine {
String s00="java";
String s01="1";
String s0=s00+s01;
String s1="java1";
String s2="java"+String.valueOf(1);
String s3="java"+1;
final String sf00="java";
final String sf01="1";
String sf0=sf00+sf01;
final String sf1="java1";
final String sf2="java"+String.valueOf(1);
final String sf3="java"+1;
final String str1;
final String str2;
final String str3="java";
{
str1="java";
}
public FinalDefine(){
str2="java";
}
final static String str11;
final static String str12="java";
static {
str11="java";
}
void charge(){
System.out.println(s0==s1);
System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(str1+str1=="javajava");
System.out.println(str2+str2=="javajava");
System.out.println(str3+str3=="javajava");
System.out.println();
System.out.println(sf0==sf1);
System.out.println(sf1==sf2);
System.out.println(sf1==sf3);
System.out.println(str11+str11=="javajava");
System.out.println(str12+str12=="javajava");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
FinalDefine fDefine=new FinalDefine();
fDefine.charge();
}
}
false
false
true
false
false
true
true
false
true
false
true
JavaSE——final修饰符的更多相关文章
- Java final 修饰符知识点总结
final从字面上理解含义为“最后的,最终的”.在Java中也同样表示出此种含义. final可以用来修饰变量(包括类属性.对象属性.局部变量和形参).方法(包括类方法和对象方法)和类. 1. fin ...
- 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,四种级别修饰符都用来修饰类.方法和字段 包外 ...
- 类成员(static)和final修饰符
在Java类里只能包含成员变量.方法.构造器.初始化块.内部类(包括接口.枚举)5种成员,类成员是用static来修饰的,其属于整个类. 当使用实例来访问类成员时,实际上依然是委托给该类来访问类成员, ...
- JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配
Java栈与堆 堆:顺序随意 栈:后进先出(Last-in/First-Out). Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new.newarray.anewarray和mu ...
- as3 中 final 修饰符
现在,在ActionScript 3.0的修饰符中,只有final修饰符没有介绍.之所有放在这里介绍,是因为final修饰符只与继承有关,指定一个方法不能被重写或一个类不能被继承. 一般来说,当用fi ...
- final修饰符:
知识点: 1.final关键字用于修饰类.变量和方法 2.有点类似C#里的 sealed 关键字,用于表示它修饰的方法.变量和类不可以再被改变 3.final修饰变量时,表示该变量一旦获取了初始值,就 ...
- Java中final修饰符深入研究
一.开篇 本博客来自:http://www.cnblogs.com/yuananyun/ final修饰符是Java中比较简单常用的修饰符,同时也是一个被"误解"较多的修饰符.对很 ...
随机推荐
- 《java学习二》jvm性能优化-----认识jvm
Java内存结构 Java堆(Java Heap) java堆是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域. 在虚拟机启动时创建.此内存区域的唯一目的就是存放对象实例,这一 ...
- java wait(),notify(),notifyAll()
wait()的作用是使当前执行代码的线程进行等待,此方法是Object类的方法,该方法用来将当前线程置入“预执行队列”中,并且在wait()所带的代码处停止执行,直到接到通知或被中断位置.在调用wai ...
- 【持续更新】MyBatis相关
MyBatis开发结构 #与$的区别
- Intellij idea 创建JAVA项目
1. 打开软件,new一个project的java项目 2. 点击下一步,此界面可通过模板生成项目,如下图 3. 填写项目名称和项目源码的保存路径,如下图 4. 点击 Finish 完成按钮即可,项目 ...
- 【深度精讲】JFinal中的Ret和Kv工具类的区别,你用对了吗?
在JFinal中有两个类Map的工具类,一个是有状态的Ret,一个是无状态的Kv,各种自己的应用场景,你用对了吗? 下面我们从多个方面来探究一下,JFinal针对这两个类的设计: 一.位置-com.j ...
- UIWebView全解
是iOS内置的浏览器控件,可以浏览网页.打开文档等 能够加载html/htm.pdf.docx.txt等格式的文件 系统自带的Safari浏览器就是通过UIWebView实现的 MIME的英文全称是“ ...
- python之道10
写函数,函数可以支持接收任意数字(位置传参)并将所有数据相加并返回. 答案 def func(*args): count = 0 for i in args: count += i return co ...
- atoi 函数实现
要考虑的东西实在也挺多的.总结如下: 1 前面空格分隔符号的时候 2 第一个符号位处理+ - 3 遇到非数字字符退出 4 为正数的时候,大于INT_MAX上溢 5 为负数的时候 ...
- javaweb基础(1)_入门
一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源( ...
- Dede技巧
解决DEDE图集上传图片时跳出302错误 本地上传图集的时候突然提示网页出错,还爆出302错误. 解决办法是在include/userlogin.class.php文件中的第二行session_s ...