一步理解Java中的变量类型

Java中一般分为三种变量类型,不仅适用于Java,同样也适用余各大编程语言例如python等,一般我们先从对应的生命周期,创建销毁时间等来进行讨论,有助于理解变量类型在什么时候,如何使用:

局部变量,成员变量(实例变量)与静态变量三者关系

局部变量:

  1.  定义:我们一般将在块中,方法或者构造函数内定义的变量称为局部变量;
  2. 创建销毁时间(作用周期):这些变量是在进入块或者是在调用函数时候创建,并且是在退出块或者从函数返回时销毁;
  3. 作用域:这些变量(或函数)的作用域只存在于声明这些变量的块内,即我们只能在该块内访问这些变量。
  4. 注意事项:在定义函数或者定义块时,必须对其初始化赋值操作(强制性)

实例变量(成员变量):

  1. 定义: 实例变量也称非静态变量,在任何方法,构造函数或者块之外的类中声明,我们有时候也称属性
  2. 创建销毁时间(作用周期):由于实例变量是在类中声明的,因此这些变量在创建该类的对象时创建,并在对象被销毁时销毁
  3. 作用域:实例变量只能通过创建对象才能访问。创建对象时,我们可以使用构造函数初始化实例对象,也可以使用实例块来初始化对象。
  4. 注意事项:与局部变量不同,我们可以对实例变量使用访问说明符。如果我们不指定任何访问说明符,则将使用默认访问说明符;其中实例变量的初始化赋值不是强制性的,其默认值取决于变量的数据类型,例如:String 未赋值默认类型为null, float 未赋值其默认类型为0.0f,对于int 其默认值为0;

静态变量:

  1. 定义:静态变量也称为类变量。声明方式与实例变量(成员变量相似),不同是在于静态变量是使用 static 关键字在类内的任何方法、构造函数或块之外声明的。
  2. 创建销毁时间(作用周期):静态变量在程序执行开始时创建,并在执行结束时自动销毁。
  3. 作用域:如果是通过对象访问静态变量,例如实例变量,编译器将显示一条警告消息,但不会停止程序。编译器会自动将对象名称替换为类名称;如果我们访问静态变量时不使用类名,编译器会自动添加类名。但是,如果要访问不同类的静态变量,则必须提及类名,因为两个不同的类可能具有同名的静态变量。常用的调用方式为:类名.方法名(属性名)
  4. 注意事项:与实例变量不同,每个类只能有一个静态变量的副本,无论我们创建多少个对象;静态变量的初始化同样也不是强制性的。其默认值取决于变量的数据类型;静态变量不能在实例方法内部本地声明;

总结

1.实例变量和静态变量之间的区别

  1. 每个对象都有自己的实例变量副本,而每个类只能有一个静态变量副本,无论我们创建了多少个对象。因此,静态变量有利于内存管理。因此使用一个对象对实例变量所做的更改不会反映在其他对象中,因为每个对象都有自己的实例变量副本。对于静态变量,更改将反映在其他对象中,因为静态变量对于类的所有对象都是通用的。
  2. 我们可以通过对象引用来访问实例变量,而静态变量可以直接使用类名来访问
  3. 实例变量在使用关键字 new 创建对象时创建,并在对象销毁时销毁。静态变量在程序启动时创建,并在程序停止时销毁。

2.结论:

java中变量有三种类型:局部变量、静态变量、实例变量,作为一种数据容器,用于保存Java程序在执行期间的数据值。如何理解三者的关系,可以通过作为数据容器作用范围理解,程序开始销毁,对象的创建销毁,方法的创建销毁,作用域逐步减少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值