【JAVA】|JAVA语言基础----static、final关键字

本文深入探讨Java中static和final关键字的运用,包括静态变量、静态方法、静态代码块的特点与初始化过程,以及最终值、最终方法和最终类的不可变属性。解析静态信息如何随类加载而加载,以及final如何确保数据与方法的不可修改性。

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

static(静态)

关键字、修饰符 变量,方法,代码块,内部类

静态变量
静态变量随着类的加载而加载(方法区的静态常量池)到方法区的静态区,与类同级也叫类变量,通过类名.的形式调用静态变量,也可以通过对象来调用静态变量。
存储在方法区的静态区时会默认给静态变量赋予系统默认初始值。
类产生的对象共享一个静态变量。
看静态变量是否需要被所有对象来共享,如果需要共享就设置成静态变量。
在这里插入图片描述

方法里可以定义静态变量?静态变量与类同级,只有方法被调用时里面的内容才会出现,前后矛盾,不能定义

静态方法
静态方法会随着类的加载而加载到方法区的静态区,与类同级也叫做类方法,通过类名.形式来调用,也可以通过对象调用。静态区不会对静态方法赋予初始值但是被调用就会被加载到栈中执行。

Java中静态信息只能直接使用静态信息,但是非静态信息可以直接使用非静态以及静态。

支持重载?支持重载
支持重写?不支持重写 静态方法与类同级,重写针对的是对象级别不一样,静态方法没有提供重写。父子类中只能出现方法签名一致的非静态方法(重写)要么是静态方法(没有重写)

Arrayss.sort() Arrays.copyOf() System.arraycopy() Arrays.toString()

静态代码块
1、可以给静态变量进行初始化
2、预先加载资源
3、随着类的加载而加载只加载一次
4、static修饰的静态信息都只加载一次
5、父子类执行顺序(父类静态信息—子类静态信息—父类对象级别信息—子类对象级别信息

在这里插入图片描述

final(最终)

关键字,修饰符 数据、方法、类

最终值
当final修饰基本数据类型时,值不能改变
当final修饰引用数据类型时,地址值不能改变
当final修饰成员变量,保证对象创建完成之前给值
当final修饰静态变量是(静态常量),保证类加载完成之前给值

最终方法
支持重载
不支持重写
最终类
可以继承别的类不能被别的类继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值