Java | 变量 & 常量

变量

Java是一种强类型语言,每个变量都必须声明其数据类型,变量本质上就是代表一个“可操作的存储的空间”,在定义之后空间位置是确定的,但是里面放置什么值是不确定的,我们操作的时候是通过变量名来操作对应的存储空间的,以此来操作对应的存储空间里面的值,变量的数据类型决定了变量占存储空间的大小。

变量是什么?

  • 变量作为程序中最基本的存储单元,要素有变量名,作用域,变量类型。
  • 变量在使用前必须声明,只有声明以后才能分配对应长度的存储空间。

变量的声明

    public static void main(String[] args) {
        int a = 1;
        double  b = 2.2222;
        long  c = 1000;
        //一行上面可以声明多个变量,但是最好不要这样
        int e,f;  
    }

下面看一段错误的代码:

    public static void main(String[] args) {
        int a;
        System.out.println(a);
    }

上面的这个代码是错误的,因为变量没有声明的时候,是不可以便用的。成员变量可以不赋值而直接使用。

不同的数据类型会在内存中分配不同的内存空间。比如:

int 4个字节
double 8个字节
long 8个字节

变量的注意事项

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  • 变量名必须是合法的标识符。
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

变量的分类

  • 局部变量
  • 成员变量
  • 静态变量

局部变量

在方法或者语句块之内声明的变量,没有初始值,生命周期是从声明开始到方法或者语句块结束。在使用的时候,我们必须赋上初始值才可以使用。如:

    public static void main(String[] args) {
        {
            // {} 内是语句块
            int a;  
        }
        // a = 1; 不在一个作用域 ,不能赋值
        double b = 2.2222;
        long l = 1000;
    }

成员变量

方法外部,类的内部定义的变量。从属于对象,生命周期伴随对象始终存在。如果不进行初始化,它会自动初始化成该类型的初始值。

    public class TestOne {
        // 成员变量
        int a; 
    
        public static void main(String[] args) {
             // 局部变量
            double b = 2.222;  
            long l = 1000;
        }
    }
数据类型 初始值
int 0
double 0.0
char \u0000
boolean false

静态变量

使用static来定。从属于类,生命周期伴随类始终存在,从类的加载到卸载。如果不进行初始化,它会与成员变量样自动初始化成该类型的默认的初始值。

    public static void main(String[] args) {
        // 成员变量
        int a;  
        // 静态变量
        static int b;   

        public static void main(String[] args) {
            {
                 // c的作用域只有语句块这么大
                int c; 
            }
            // 局部变量
            int d = 1;  
        }
    }

变量的生命周期:

静态变量 > 成员变量 > 局部变量

常量

常量的分类

  • 字符串常量:凡是用双引号引起来的部分,都叫做字符串常量。例如:“abc"、"Frost Boy"、"9527".....
  • 整数常量:直接写上的数字,没有小数点。例如: 1、2、123、53、14...
  • 浮点数常量:直接写上的数字,有小数点。例如:1.2、1234.53、998.99..
  • 字符常量:凡是用单引号起来的单个字符,都叫做字符常量。例如:'a'、'中'、'3'....
  • 布尔常量:只有固定的两个值。true、false
  • 空常量:null

以上的常量定义也叫做字面常量,也就是不定义常量名,直接使用。

常量的使用

    public static void main(String[] args) {
        // 字符串常量
        System.out.println("Hello,World");
        System.out.println("abc");
        System.out.println("Frost boy");
        System.out.println(""); // 可以直接输出空字符串

        // 字符常量
        System.out.println('a');
        System.out.println('9');
        System.out.println('中');
        // System.out.println('');  不能直接输出空字符
        // System.out.println('ab'); 单引号中有且仅有一个字符

        // 整数常量
        System.out.println(9527);
        System.out.println(2021);

        // 浮点数常量
        System.out.println(2.33);
        System.out.println(9.999);

        // 布尔常量
        System.out.println(true);
        System.out.println(false);
    }

常量的定义

在java中,是用关键字final来定义一个常量的,常量一但被初始化之后就不能改变值了。

    public static void main(String[] args) {
        // 定义一个常量
        final int INT_A; 
        // 初始化这个常量
        INT_A = 1; 

        // 常量定义时也可以初始化
        final int INT_B = 2; 
        // INT_ = 3;这样就会报错
    }

常量的命名中我们一般是使用大写字母来进行命名的。



关注公众号,随时获取最新资讯

细节决定成败!
个人愚见,如有不对,恳请斧正!

posted @ 2020-02-15 11:09  一点浩然气~  阅读(274)  评论(0编辑  收藏  举报