JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

java 你用了这么久,真的明白static和final的区别么?

wys521 2024-10-30 05:57:32 精选教程 26 ℃ 0 评论

一、final

首先,我们弄清final的应用场景

final类不能被继承,没有子类,final类中的方法默认是final的。

final方法不能被子类的方法覆盖,但可以被继承。

final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

final不能用于修饰构造方法。

注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。

但是final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。


二、static

而static的应用场景:

1、static变量

对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)

2、静态方法

静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法

3、static代码块

static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块

static和final一块用会发生什么呢?

就是两个功能的叠加了

如果final不是空白,小编认为那么一起用和final单独是一样的,你觉得呢?

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表