Java中的变量是在Java保存数据值的数据容器。每个变量都被分配了一个数据类型,该数据类型指定了它可以保存的值的类型和数量。变量是数据的内存位置名称。
变量是赋予内存位置的名称。它是程序中存储的基本单位。
- 存储在变量中的值可以在程序执行期间更改。
- 变量只是内存位置的名称,对变量执行的所有操作都会影响该内存位置。
- 在 Java 中,所有变量都必须在使用前声明。
如何声明变量?
我们可以在 java 中声明变量,如下图所示。
从图中可以看出,在声明一个变量时,我们需要注意两件事:
1. 数据类型:可以存储在此变量中的数据类型。
2. Dataname:给变量命名。
可以通过两种方式为其赋值:
- 变量初始化
- 通过输入赋值
如何初始化变量?
可以借助以下 3 个组件:
- datatype:可以存储在此变量中的数据类型。
- variable_name:赋予变量的名称。
- value:它是存储在变量中的初始值。
float simpleInterest;
// 声明浮点变量
int time = 10, speed = 20;
// 声明和初始化整型变量
Java中的变量类型
如下所示:
- 局部变量
- 实例变量
- 静态变量
1. 局部变量
在语句块块、方法或构造函数中定义的变量称为局部变量。
- 局部变量是在执行方法、结构方法或语句块时创建的,执行完成后变量会被销毁;
- 这些变量的作用域只存在于声明变量的语句块中。即,我们只能在该语句块内访问这些变量。
- 在定义的范围内使用局部变量之前,必须对其进行初始化。
/*package whatever //do not write package name here */
// Contributed by Shubham Jain
import java.io.*;
class GFG {
public static void main(String[] args)
{
int var = 10; // Declared a Local Variable
// This variable is local to this main method only
System.out.println("Local Variable: " + var);
}
}
输出
Local Variable: 10
2. 实例变量
实例变量是非静态变量,在任何方法、构造函数或外部块之外的类中声明。
- 由于实例变量是在类中声明的,因此这些变量在创建类的对象时创建,并在对象被销毁时销毁。
- 与局部变量不同,我们可以对实例变量使用访问说明符。如果我们不指定任何访问说明符,则将使用默认访问说明符。
- 实例变量的初始化不是强制性的。它的默认值为 0
- 实例变量只能通过创建对象来访问。
/*package whatever //do not write package name here */
import java.io.*;
class GFG {
public String geek; // Declared Instance Variable
public GFG()
{ // Default Constructor
this.geek = "Shubham Jain"; // initializing Instance Variable
}
//Main Method
public static void main(String[] args)
{
// Object Creation
GFG name = new GFG();
// Displaying O/P
System.out.println("Geek name is: " + name.geek);
}
}
输出
Geek name is: Shubham Jain
3. 静态变量
静态变量也称为类变量。
- 静态变量的声明方式与实例变量类似。不同之处在于静态变量是使用 static 关键字声明的。
- 与实例变量不同,无论我们创建了多少对象,每个类只能拥有一个静态变量的副本。
- 静态变量在程序执行开始时创建,并在执行结束时自动销毁。
- 静态变量的初始化不是强制性的。它的默认值为 0
- 如果我们像实例变量一样访问静态变量(通过对象),编译器将显示警告消息,这不会停止程序。编译器会自动将对象名替换为类名。
- 如果我们在没有类名的情况下访问静态变量,编译器会自动附加类名。
/*package whatever //do not write package name here */
import java.io.*;
class GFG {
public static String geek = "Shubham Jain"; //Declared static variable
public static void main (String[] args) {
//geek variable can be accessed withod object creation
//Displaying O/P
//GFG.geek --> using the static variable
System.out.println("Geek Name is : "+GFG.geek);
}
}
输出
Geek Name is : Shubham Jain
java实例变量和静态变量的区别
- 存放位置不同,类变量随着类的加载存在于方法区中,实例变量随着对象的建立存在于堆内存中。
- 生命周期不同,类变量的生命周期最长,随着类的加载而加载,随着类的消失而消失,实例变量随着对象的消失而消失。。
- 我们可以通过对象引用来访问实例变量,而静态变量可以通过类名直接访问。
语法:静态和实例变量
class GFG
{
// Static variable
static int a;
// Instance variable
int b;
}
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!