当前位置:网站首页 > Java基础 > 正文

java基础21个变量



首先汇总一下目前常说的各种变量:
全局变量(Java中是不存在全局变量这一说的,如果硬要说的话,全局变量的作用其实和类变量差不多)
成员变量(其实就是大家口里的一种叫法,其实它就是类变量和实例变量的总称)
类变量(也叫静态变量,因为该变量被static关键字修饰,java中规定由static修饰的变量归属于类,所以也叫类变量,如果该类的某个实例修改了该变量,那么该类的其他实例都会知道这次修改。即该类的所有实例共享这个变量,该变量在类中只此一份。)
实例变量(不使用 static 关键字定义,并且定义在任何方法、构造方法、块之外的变量都是实例变量。实例变量都是基于特定实例的,实例变量不会在实例之间共享,也就是说,每一个对象的实例都有自己的一个实例变量。)
局部变量(声明在方法、构造方法、语句块内部。)
参数(定义在方法参数列表内,也就是我们常说的方法的入参,比如main方法中的String[] args就是参数)
常量 在java中 由final修饰的变量称为常量。

其实查阅JDK官方文档我们就可以知道java中只有类变量、实例变量、局部变量和参数这四种变量。

下面详细介绍一下类变量、实例变量、局部变量。参数其实没啥好说的。

1.类变量(也叫静态变量)
(1)类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。

(2)无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。

(3)静态变量除了被声明为常量外很少使用,静态变量是指声明为 public(/private,final 和 static 类型的变量。静态变量初始化java基础21个变量后不可改变。

(4)静态变量储存在静态存储区。经常被声明为常量,很少单独使用 static 声明变量。

(5)静态变量在类加载时创建,在程序结束时销毁。

(6)与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为 public 类型。

(7)默认值和实例变量相似。数值型变量默认值是 0,布尔型默认值是 false,引用类型默认值是 null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化,但仅仅是初始化,静态变量是不可以在静态块声明中的。

(8)静态变量可以通过:ClassName.VariableName的方式访问。

(9)类变量被声明为 public static final 类型时,类变量名称一般建议使用大写字母。如果静态变量不是 public 和 final 类型,其命名方式与实例变量以及局部变量的命名方式一致。

2. 实例变量
(1)实例变量声明在一个类中,但在方法、构造方法和语句块之外;

(2)当一个对象被实例化之后,每个实例变量的值就跟着确定;

(3)实例变量在对象创建的时候创建,在对象被销毁的时候销毁;

(4)实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;

(5)实例变量可以声明在使用前或者使用后;

(6)访问修饰符可以修饰实例变量;

(7)实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;

(8)**实例变量具有默认值。**数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;

(9)实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。

3. Java 局部变量
(1)局部变量声明在方法、构造方法或者语句块中;

(2)局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;

(3)访问修饰符不能用于局部变量;

(4)局部变量只在声明它的方法、构造方法或者语句块中可见;

(5)局部变量是在栈上分配的。

(6)局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

4、代码实例分析

 

5、总结
(1)如果你用 static 来定义变量,只能是类变量、或者说静态变量、而且其定义位置只能在类中,且在方法、构造方法和代码块外,变量的副本只有一个。

(2)如果你不用 static 来声明变量,那么就会有以下三种变量的叫法:
定义在构造方法、代码块、方法的变量被称为实例变量,实例变量的副本数量和实例的数量一样。
定义在方法、构造方法、代码块的变量被称为局部变量
定义在方法参数列表中的变量被称为参数

版权声明


相关文章:

  • java 基础和数据库2024-10-19 18:10:00
  • java基础知识的认知2024-10-19 18:10:00
  • java软件开发周期基础知识2024-10-19 18:10:00
  • Java基础 选择排序实例2024-10-19 18:10:00
  • 毕向东java基础35天目录2024-10-19 18:10:00
  • java基础中构造方法2024-10-19 18:10:00
  • java基础对象入门2024-10-19 18:10:00
  • java基础核心卷12024-10-19 18:10:00
  • java基础字符串教程2024-10-19 18:10:00
  • java 基础数据类型 引用数据类型2024-10-19 18:10:00