JAVA---常量与变量

常量:

概念:

  • 表示不能改变的数值

分类:

  • 整数常量---所有整数
  • 小数常量---所有小数
  • 布尔型常量---只有两个数值,true和false
  • 字符常量---将一个数字字母或者符号用单引号('')表示
  • 字符串常量---将一个或者多个字符用双引号标识
  • null常量---只有一个数值就是null

定义格式:

  • 用final修饰(也称最终变量)
  • 常量在声明时必须赋初值,赋值后不能再修改值
  • 常量名通常用全大写字母表示
  • 声明时需要添加final或static final类型修饰符,例如:
private final int PI=3.141596; //常量,类加载时确定或者更靠后确定值
private static final int PI=3.14159;//静态常量(编译期常量),编译时就确定值(编译为class文件)

存储区域:

  • 方法区

变量:

概念:

  • 内存中的一个存储区域
  • 该区域有自己的名称(变量名)和类型(数据类型)
  • 该区域的数据可以在同一类型范围内不断变化

为什么要定义变量:

  • 用来不断的存放同一类型的常量,并可以重复使用
  • 定义变量就是要告诉编译器这个变量的数据类型,这样编译器才知道需要分配多少空间给它,以及它能存放什么样的数据。在程序运行过程中空间的值是变化的,这个内存空间就成为变量。为了便于操作,给这个变量取个名字,称为变量名。

定义格式:

  • 数据类型 变量名 =初始值;

(ps:变量就如同数学的未知数)

成员变量和局部变量:

范围:

  • 成员变量(在类体中所定义的变量为成员变量):在整个类中都有效
  • 局部变量(再类的方法内声明变量,包括方法的参数都属于局部变量):只在当前定义的方法内有效,不能用于类的其他方法中。局部变量的生命周期取决于方法,当方法被调用时,Java虚拟机为方法中的局部变量分配内存空间,当该方法调用结束后,则会释放方法中局部变量占用的内存空间,局部变量也将被销毁。
  • 局部变量可与成员变量的名字相同,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效

初始值

  • 成员变量可以不赋初始值值,因为成员变量在堆中,会自动给变量赋初值
  • 局部变量必须赋初值,因为局部变量在栈中,不会为其自动赋初值

声明周期

  • 成员变量:随着对象的消失而消失,会被jvm的垃圾回收器来回收掉
  • 局部变量:定义的时候产生,当前的方法的括号,语句块的括号执行完毕就会消失

存储位置

  • 成员变量:在堆中
  • 局部变量:在栈中
发布了144 篇原创文章 · 获赞 17 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/lclcsdnblink/article/details/104539520