java中的常量和变量

Posted 小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的常量和变量相关的知识,希望对你有一定的参考价值。

变量

含义:在程序过程中变量的值会发生变化,直白来说就是用来存储可变化的数据

变量的好处:使内存空间的得到重复利用

举个例子:

1 System.out.println(10);
2 System.out.println(10);
3 System.out.println(10);

这三个10都是字面量,每一个字面量占用的都是不同的内存空间,就算这几个字面量相同,占用的也是不同的空间,字面量的内存是无法重复利用的,这样就浪费了空间,但是使用变量之后,内存空间就得到了重复利用。

变量的三要素:

1. 变量的数据类型(数据类型决定了内存空间的大小)
2. 变量的名字(方便程序访问这个数据)
3. 变量保存的值(保存的数据)

注解:变量必须先声明,再赋值才能访问(没有赋值不能访问, 不然会报错),直白来说变量就是一个存储数据的一个盒子

注意:在同一个域中,变量名不能重名

1 int a = 102 double a = 10.01
3 //重名了 不能编译成功

变量的分类

变量分为局部变量、成员变量。成员变量又分为实例变量(属性)和静态变量

在方法体内声明的变量为:局部变量(在方法结束后,局部变量的内存空间就释放了)

在类中,方法外声明的变量为成员变量,对于实例变量来说,声明了没有手动赋值,调用的时候系统默认赋值

 

类型默认值
byte、short、int 0
long 0L
float 0.0F
double 0.0
boolean false
char ‘ ‘
引用数据类型 null

注解:实例变量不能通过"类名."来访问

实例变量前加上修饰列表符static就成为了静态变量,static是不允许用来修饰局部变量的。

原因:被static关键字修饰变量随着类的加载而加载,被static修饰的变量成为了类变量 ,可以用类直接调用, 即作用域为全局,而局部变量在方法内,它的作用域在方法内,作用域变了,所以不允许用来修饰局部变量。

静态变量: 在类加载时初始化,分配空间

局部变量:在方法执行过程中分配空间

实例变量:构造方法执行、对象创建时分配空间

常量

定义:常量就是在程序中固定不变的值,是不能改变的数据

注解:Java中的常量,其实就是特殊的变量,也是固定不变的量,有且只能进行一次赋值。Java中定义常量的 语法只需要在"定义变量的语法基础"上加上一个final关键字修饰即可

 

常量有三种类型:静态常量、成员常量、局部常量、字面值常量

字面值常量:

  1. 整数型常量

    1 System.out.println(222);
    2 System.out.println(-111);
  2. 浮点型常量

    1 System.out.println(3.14);
    2 System.out.println(3.1f);
  3. 字符常量

    System.out.println(‘a‘);
    System.out.println(‘f‘);
  4. 字符串型常量

    1 System.out.println("zhangsan");
    2 System.out.println("123456");
  5. 布尔类型常量

    1 System.out.println(false);
    2 System.out.println(true);
  6. 空常量(null)

定义常量时需注意:

  1. 在定义常量时就需要对该常量进行初始化,常量的值是不可改变的量、一次赋值,永不改变,也可以不用在声明时就初始化,但是初始化后必须在使用这个常量之前初始化。
  2. 为了与变量区别,常量取名一般都用大写字符

静态常量:被static和final修饰的成员变量

例如下面的代码:

1 public class Test {
2     final static int i = 100;
3     public static void main(String[] args) {
4         System.out.println(i);
5     }
6 }

成员常量:被final修饰的成员变量

例如下面的代码:

1 public class Test {
2     final int i = 100;
3     public static void main(String[] args) {
4         Test test  = new Test();
5         System.out.println(test.i);
6     }
7 }

局部常量:被final修饰的局部变量

例如下面的代码:

1 public class Test {
2     public static void main(String[] args) {
3         final int i = 100;
4         System.out.println(i);
5     }
6 }

 

以上是关于java中的常量和变量的主要内容,如果未能解决你的问题,请参考以下文章

java 静态变量和静态常量

Java中的常量和变量

Java中的变量和常量

java 静态变量和静态常量

Java学习笔记之三java中的变量和常量

变量的内存分析图