final关键字的几种用法

在java的关键字中,static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。下面我们来了解一下final关键字及其用法。

final关键字
在java中,final的含义在不同场景下有细微的差别,但总体来说,它指的是"这是不可变的"。现在!我们来讲final的四种主要用法。
1.锈蚀数据
在编写程序是,我们经常需要说明一个数据是不可变的,我们称之为 常量。在java中,用final关键字修饰的变量,只能进行一次赋值操作,并且在生存期间内 不可以改变它的值。更重要的是,final关键字会告诉编译器,这个数据是不会修改的,那么编译器就可能会在编译时期就对该数据进行替换甚至执行计算,这样可以对我们的程序起到细微的优化。不过在针对基本类型和引用类型是,final关键字的效果存在细微差别:

class Value{
	int v;
	public Value(int V){
		this.v = V;
		}
}
public class FinalTest{
	final int f1 = 1;
	final int f2;
	public FinalTest(){
		f2 = 2;
	}
}
public static void main(String [] args){
	final int value1 = 1 ;
	//value1 = 4;
	final double value2 ;
	value2 = 2.0;
	final Value value3 = new Value(1);
	value3.v=4;
}

上面的例子中,我们先来看一下main方法中的几个final修饰的数据,再给value1赋予初始值之后,我们无法再对value1的值进行修改,final关键字起到了常量的作用。从value2我们可以看到,final修饰的变量可以不再声明时赋值,既可以先声明,后赋值。value3是一个引用变量,这里我们可以看到final修饰引用变量时,只是限定了引用变量的不可改变,即不能将value3再次引用到另一个value对象,但是引用的对象值是可以改变的,从内存模型中我们看的更加清晰:
在这里插入图片描述
上图中,final修饰的值用粗线条的边框标识它的值是不可改变的,我们知道引用的值实际上是它所引用的对象的地址,也就是说改地址的值是不可改变变得,从而说明了为什么引用变量不可以改变引用对象。而实际应用的对象司机上不受final关键字的影响的,所以它的值是可以改变的。。

后续。。。。
2.修饰方法参数
3.修饰方法
4.修饰类
总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值