Java中的变量
Posted __Feng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的变量相关的知识,希望对你有一定的参考价值。
Java中的变量分为以下三种:
- 局部变量
- 成员变量
- 类变量(静态变量)
-
局部变量
- 局部变量分配在内存中的栈空间。
- 局部变量没有默认值,所以要使用的话必先初始化。
- 局部变量在方法、构造方法和代码块中声明(代码块是指花括号中的代码所组成的块,在花括号中声明的变量就是局部变量,它的作用域也是在花括号所包含的范围内,一旦代码块语句执行完毕,局部变量就自动销毁)。
- 局部变量不能被访问修饰符所修饰。
-
成员变量
成员变量也叫全局变量,它包括实例变量、类变量和常量。但在我的理解中,一般是用来指实例变量居多,实例变量有如下的几个特点:
- 实例变量在类中声明,但又在方法和构造方法之外,作用域是整个类。
- 实例变量在对象创建的时候创建,随着对象的销毁而销毁,它的内存分配在堆空间。
- 实例变量可以在使用前声明,也可以在使用后声明。
- 实例变量可以被访问修饰符修饰。
- 实例变量有默认值,数值类型默认的是0,布尔类型的默认是false,引用类型默认的是null。
- 当实例化一个对象的时候,实例变量的值也要确定下来。
-
类变量
类变量也叫静态变量,经常用static来修饰(我的理解是用static修饰的变量就是静态变量)。
- 静态变量是在程序刚开始的时候创建的,程序结束时销毁。
- 不管一个类创建了多少个对象,静态变量只有一份拷贝,也就是不同对象中的静态变量其实是指向的同一个。
- 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。其他的正常命名。
- 默认值跟实例变量一样。
- 静态变量可以直接用类名加变量名访问,即ClassName.Var,但实例变量就必须通过实例对象访问。
- 静态方法中不能访问非静态成员。
public class Test{ public int A; //实例变量 public static int B; //静态变量 public void C(){ int D; //局部变量 } }
以上是关于Java中的变量的主要内容,如果未能解决你的问题,请参考以下文章
LockSupport.java 中的 FIFO 互斥代码片段