JAVA基本语法:static关键字与final关键字的区别与联系

本文深入解析Java中static和final关键字的用法与特性,包括它们的使用范围、修饰对象的区别,以及与static区、final变量初始化时机的关系。同时对比了final、finally、finalize关键字的不同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

static 关键字:

使用范围:static 关键字可以用来修饰变量方法

用法:被static修饰的变量和方法就变成了静态变量和静态的方法。静态变量/方法在类加载的时候加载到方法区的static区先              于对象的存在,被所有的对象所共享,可以使用类名调用,也可以使用对象调用,推荐使用类名调用。

注:静态的方法中只能调用外部用static修饰的变量和方法。如果非要调用非静态的,需要创建对象.  原因是静态的变量或方法,最先加载到内存中,如果此时没有对象,那么成员变量还不存在,所以不能调用。

          成员变量对象名调用                 对象名.成员变量      p.name 

          静态变量:   类名调用                    类名.静态变量         StaticDemo.b

          成员变量:  也叫实例变量             实例------对象

          静态变量:  也叫类变量

final 关键字:

使用范围:final 关键字是最终的意思,可以用来修饰方法变量

用法:

final 修饰的类不能被继承

final 修饰的方法不能被重写

final 修饰的变量值不能改变,只能被赋值一次。 final 修饰的变量要有初始值

注:final修饰的变量如果是引用数据类型,代表地址值不能变,可以修改里面的属性值;


final关键字与static关键字的关系:

答:二者并没有什么关系,只是在修饰常量的时候可以一起使用:public static final int A = 10;final关键字表示常量值不能改变,static关键字表示只有一份,为所有对象共享。

注意:final属性的赋值需要在构造方法完成之前进行。即可以在静态代码块、代码块以及构造方法中进行赋值。


final修饰局部变量的问题以及修饰变量的初始化时机

变量被final修饰后就成了常量,即自定义常量。自定义常量只能被赋值一次。

1)成员常量:必须在对象创建成功之前赋值,有三种方式:显示初始化,在构造代码块中初始化,在构造方法中初始化。

2)局部常量:必须在使用之前赋值

自定义常量的值是不能改变的,但是定义的引用数据类型的常量引用指向的堆内存的成员变量的值是可以改变的


final、finally、finalize关键字的区别 :

finally:用于异常处理,finally后的内容一定会执行,除非使用System.exit(0/1);命令使程序退出。

finalize()方法:用于垃圾回收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值