静态变量和局部变量的对比
变量的分类:
按照数据类型分:① 基本数据类型 ② 引用数据类型
按照在类中声明的位置分:
① 成员变量:在使用前,都经历过默认初始化赋值。
类变量(静态的成员变量): linking的prepare阶段:给类变量默认赋值。 —> initial阶段:给类变量显式赋值即静态代码块赋值。
实例变量(非静态的成员变量):随着对象的创建,会在堆空间中分配实例变量空间,并进行默认赋值
② 局部变量:在使用前,必须要进行显式赋值的!否则,编译不通过。
成员变量:
类体内定义的变量被称为成员变量。如果定义该成员变量时没有使用static修饰,该成员变量又被称为非静态变量或实例变量;如果使用了static修饰,则该成员变量又可被称为静态变量或类变量。
public class Test01 {
static int a;//类变量 or 静态变量
int b;//实例变量 or 非静态变量
public static void main(String []args) {
}
}
局部变量
形参:在方法签名中定义的局部变量,由方法调用者负责为其赋值,随方法的结束而消亡。
方法内的局部变量:在方法内定义的局部变量,必须在方法内对其进行显示初始化。这种类型的局部变量从初始化完成后开始生效,随方法的结束而消亡。
代码块的局部变量:在代码块内定义的局部变量,必须在代码块内对其进行显式初始化,这种类型的局部变量从初始化完成后开始生效,随代码的结束而消亡。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)