0基础学Java,老薛带你学Java变量和数据类型以及赋值方式

一:变量

1.1 what?

问题:我们在实际开发过程中不可避免的要遇到一些比如数值计算的问题。而对于有些数值,可能在整个程序的执行过程中被反复使用,或者对该数值进行四则运算;而此时,如果没有一个行之有效的东西帮助我们去记录这些反复使用的值,很可能后导致后期对于值的不确定性增加(记混了,记错了),导致整个程序崩溃。

定义:变量就是在程序运行期间,其值可以发生改变。我们用变量来记录和标识程序中的某个用户输入等记录。

1.2 Why?

为了能够更好的方便开发,所以我们通过变量对于某些数据起一个简单的名字,方便程序调用以及执行。这就是为什么需要变量的原因。

1.3 Where?

变量被应用在程序的开发的各个地方,基本不存在没有变量的程序或者代码段。

1.4 How

1.4.1 变量的声明

PS:为了能够更好的说明问题,我们下面的例子中都是通过int这种数据类型类完成下面的测试用例的。

  • 案例
public class VariableStatement {    
      public static void main(String[] args) {  
            int num;//①   
     }
}
  • 结论

变量的声明需要指定数据类型和变量名称;int就是一种数据类型,num就是当前变量的名字;

变量声明
  • 注意事项

①:Java是一门强类型语言,所有的变量都是具备具体类型的,目前我们先通过int代替,后面细说每种数据类型

②:变量名称就是给某个数据起的一个名称,必须要严格遵守标识符的命名规则(3必2标1注意)

1.4.2 变量的赋值

  • 案例1 声明变量直接使用

    public class VariableStatement {  
        public static void main(String[] args) {      
            int num;//①      
            System.out.println("num的值是:"+num);
        }
    }
    
  • 结论

    程序在编译期间报错,报错信息如下:

    The local variable num may not have been initialized
    
  • 注意事项

    变量在声明之后,无法直接使用;如果需要使用变量,必须要保证变量声明且赋值

  • 修改方式

    public class VariableStatement {  
          public static void main(String[] args) {     
               int num;//①声明变量      
               num = 10;//② 增加赋值语句      
              System.out.println("num的值是:"+num); 
         }
    }
    

    变量声明之后需要使用是,通过赋值语句进行变量的赋值之后才能正常使用。

  • 案例2 声明变量且赋值

      public class VariableStatement {  
            public static void main(String[] args) {      
                int num  = 10;//声明变量num且赋10      
                System.out.println("num的值是:"+num);  
            }
      }
    
  • 结论

    PS:变量的声明和赋值可以分开进行编写,也可以编写为一行。一般情况下我们都会将声明和赋值放在一行语句中。

  • 案例3 变量在程序运行期间可以重新赋值

    public class VariableStatement { 
        public static void main(String[] args) {     
           int num  = 10;//声明变量num且赋值10      
           System.out.println("起初num的值是:"+num);   
          //改变num的值      
          num = 20;      
          System.out.println("修改之后的num的值是:"+num); 
         }
      }
    

    输出结果:

    起初num的值是10修改之后的num的值是20
    

    在程序运行期间,变量的值可以发生改变,只需要重新给当前变量赋值即可。

1.4.3 变量的口诀

变量变量,它随你变;要想使用,记着赋值。

二: 数据类型

2.1 前言

Java是一门强类型的语言,所有的数据都具备具体的类型。思考问题,弱类型语言和强类型语言的优缺点分析。

  • 强类型语言:
  • 所有数据都具备其具体的类型,每种不同的类型的存储空间不同,大的数据,空间开辟大一点,小的数据空间开辟的小一点;
  • 程序容易维护,不会因为程序在运行期间,对于变量进行赋值等操作,导致程序出现Bug,所以相对比而言会更加安全一点。
  • 弱类型语言:
  • 所有的数据的类型可能都一样,每种数据的存储空间相同。导致小的数据(100)和大的数据(100000)的存储的空间一样,造成一些内存的浪费;
  • 程序不容易维护,后期程序运行时,不小心对于某一个数值型的变量进行更改,变成其它类型,导致程序正常执行,结果后期酿成大祸,相对于稳定性差一点。

2.2 数据类型分类

数据类型分类

注意,Java是一门强类型语言,分为基本数据类型(3类8种)和引用类型。引用类型暂且背下来,我们后期讲解。接下来我们主攻的方向是基本数据类型,基本数据类型的我们通过了解每种类型的范围内存大小,声明方式,注意事项系统学习;

2.2.1 字节型

  • 注意事项
表示方式 所占空间 表示范围
字节型(byte) 1个字节 -128 - 127
  • 案例分析
public class DataTypeTest01{
    public static void main(String[] args){
        //1:声明一个byte类型的数据 赋值10
        byte num1 = 10;
        System.out.println("num1 的值是:"+num1);
        
        //2:给num1重新赋值128查看结果
        num1 = 128;//这行代码报错,type mismatch
        System.out.println("num1 的值更改之后是:"+num1);
    }
}
  • 结论

字节型是数据类型通过byte指定,占内存1个字节,能够代表的数的范围是-128到127之间;如果赋值超过这个区间,编译时会报错Type mismatch: cannot convert from int to byte。不能将超过byte范围的数据直接赋值给byte类型的变量。

2.2.2 短整形

  • 注意事项
表示方式 所占空间 表示范围
短整型(short) 2个字节 -32768-32767 -2^15 - 2^15-1
  • 案例分析
public class DataTypeTest02{
    public static void main(String[] args){
        //1:声明一个short类型的数据 赋值1000
        short num1 = 1000;
        System.out.println("num1 的值是:"+num1);
        
        //2:给num1重新赋值32768查看结果
        num1 = 32768;//这行代码报错,type mismatch
        System.out.println("num1 的值更改之后是:"+num1);
    }
}
  • 结论

短整形型是数据类型通过short指定,占内存2个字节,能够代表的数的范围是-32768到32767之间;如果赋值超过这个区间,编译时会报错Type mismatch: cannot convert from int to byte。不能将超过short范围的数据直接赋值给short类型的变量。

2.2.3 整形

  • 注意事项
表示方式 所占空间 表示范围
整型(int) 4个字节 -2147483648-2127283647 -2^31 - 2^31-1
  • 案例分析
public class DataTypeTest03{
    public static void main(String[] args){
        //1:声明一个int类型的数据 赋值40000
        int num1 = 1000;
        System.out.println("num1 的值是:"+num1);
        
        //2:给num1重新赋值2147483648查看结果
        num1 = 2147483648;//这行代码报错,type mismatch
        System.out.println("num1 的值更改之后是:"+num1);
    }
}
  • 结论

整形型是数据类型通过int指定,占内存4个字节,能够代表的数的范围是-231到231-1之间;如果赋值超过这个区间,编译时会报错Type mismatch: cannot convert from int to byte。不能将超过short范围的数据直接赋值给int类型的变量。

2.2.4 长整形

  • 注意事项
表示方式 所占空间 表示范围
长整型(long) 8个字节 -2^63 - 2^63-1
  • 案例分析
public class DataTypeTest04{
    public static void main(String[] args){
        //1:声明一个int类型的数据 赋值40000
        long num1 = 1000;
        System.out.println("num1 的值是:"+num1);
        
        //2:给num1重新赋值2147483648查看结果
        num1 = 2147483648;//这行代码报错,type int is out of range

        System.out.println("num1 的值更改之后是:"+num1);
    }
}
  • 结论

长整形型是数据类型通过long指定,占内存8个字节,能够代表的数的范围是-263到263-1之间;

这里要千万注意,默认情况下在Java中所有的整数的默认类型是int类型,所以当给long类型变量赋值时,本身赋值的数超过了int的范围;大于2147483647或者小于-2147483658时,编译器觉得赋值的右边还是int类型而不是long类型,所以报错The literal 2147483648 of type int is out of range。

解决办法: 在超过int值的后面加"L"(推荐)或者是"l"

你可能感兴趣的:(0基础学Java,老薛带你学Java变量和数据类型以及赋值方式)