诸葛关羽于禁华佗魔爪张辽final和static的区别
static作用于成员变量用来表示只保存一份副本,而final的作用是用来保证变量不可变。下面代码验证一下
public class FinalTest{
public static void main(String[]args){
AA aa1=new AA();
AA aa2=new AA();
System.out.println(aa1.i);
System.out.println(aa1.j);
System.out.println(aa2.i);
System.out.println(aa2.j);
}
}
//j值两个都一样,因为是static修饰的,全局只保留一份
//i值不一样,两个对象可能产生两个不同的值,
class AA{
public final int i=(int)(Math.random()*100);
public static int j=(int)(Math.random()*100);
}
//结果是65、23、67、23
final关键字的好处
· final关键字提高了性能,JVM和Java应用都会缓存final变量
· final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销
补充:final关键字可以用于成员变量、本地变量、方法以及类
final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就汇报编译错误
不能够对final变量再次赋值
本地变量必须在声明时赋值
在匿名类中所有变量都必须是final变量
final方法不能被重写
final类不能被继承
我们都知道final是作用于变量的,结合之前所学的static也在变量方面有所应用,这里我们来讲讲它们之间的区别。为了让大家更直观的有所体会,这里使用了代码示例的展现帮助理解。从小编的角度来看,还是比较推荐final,所以也会有final使用的好处为大家整理了出来。
以上就是关于java中fina和static区别的讲解,同时看了结尾final的优点,相信大部分小伙伴都很想尝试fina的用法啦。
我是李老师说Java,专注Java各类问题的解决、Java最新技术的分享、Java零基础到精通的教学,关注我,带你开启程序开发之路。