变量

变量即一个可以反复赋值的未知值,在数学中 x²+y = 5 中,x,y都可以看做变量。

核心要点

  • 定义: 在程序中,用数据类型+非关键字的字符名称+’=‘+对应类型的值,就是一个变量。如:int x = 1;
  • 作用/目的:用于对代码中反复利用到值的抽象定义。
  • 关键特性
    • 同一个方法中的变量只能定义一次;
    • 变量可以重新被赋值;
    • 变量可以作为值传递给其他变量。
  • 适用场景
    • 系统常用的异常描述;
    • 常用的返回code等。

注意事项

  • 变量的命名定义与方法名称定义一致,已字母、数字、下划线、$随机组合;
  • 不同数据类型定义的变量默认值不一致。

代码示例

/*  
 * @author zd * @date 2025/7/31 * @apiNote 变量和数据类型  
 */public class DemoVariable {  
    public static void main(String[] args) {  
        //定义变量  
        int i = 100;  
        System.out.println(i);  
        i = 200;  
        System.out.println(i);  
        int x = i;  
        System.out.println(x);  
    }  
}

解析

上述代码的执行过程如下:

  1. 定义一个名称为 i 的int类型变量,并对变量赋值为100,此时JVM内存中分配了一个 存储单元 ,并填入值为100;
  2. 执行 i=200; 时,JVM 把200写入变量 i 的存储单元,因此 i 的现有值为200;
  3. 执行 int x = i 时,定义一个新的变量 x ,JVM 分配新的存储单元,并将 i的值赋值给变量 x,此时变量 x 的值为200。

基本数据类型

在JAVA语法中,对不同类型的数据用不同的数据类型定义,类似于excel中单元格的数据类型区分为文本、日期、数字等。

核心要点

  • 定义: JAVA中不同变量定义时限制其数据类型的关键字。
  • 关键特性:不同的数据类型定义变量时默认值不同。

分类

基本数据类型是可以直接进去CPU进行运算的类型。JAVA的基本数据类型区分为 四类八种

  • 整数类型:byte、short、int、long
  • 浮点数类型:float、double
  • 布尔类型:boolean
  • 字符类型:char

区别

拓展:计算机内存的最小单位是1个字节/1bit;一个字节是8位二进制数 00000000-11111111 转换为二进制即 0-255 ,转换为16进制为 00-ff。内存单元从0开始自动编号,1024B等于1K,1024K等于1M,1024M等于1G,1024G等于1TB。

不同数据类型在内存中占用的存储数量不同:

  • byteboolean 占用1个字节;
  • shortchar 占用2个字节;
  • intfloat 占用4个字节`;
  • longdouble 占用8个字节;

详解

整型

对于整型的定义,java只定义了带符号的整型,即最高位的bit存储的是符号位(0表示正数,1表示负数)。各种整型取值范围如下:

  • byte:-128 ~ 127;
  • short: -32768 ~ 32767
  • int: -2147483648 ~ 2147483647
  • long: -9223372036854775808 ~ 9223372036854775807

转换示例:以int为例子占用4个字节,1个字节8个bit位,则 int 存在32个bit,其中最高位存储符号,则实际二进制位数为31个转换为二进制为-2147483648 ~ 2147483647。超出范围则编制报错。

拓展

java中二进制的转换,有符号的整数用补码来表示;

  • 原码:最高位为符号位(0表示正数,1表示负数),其余位表示数值的绝对值
  • 反码:正数的反码是其本身;负数的反码是符号位不变,其余位取反
  • 补码:正数的补码是其本身;负数的补码是其反码加1。
  • 以-10举例,原码为:10000000 00000000 00000000 00001010 反码为:11111111 11111111 11111111 11110101 补码为:11111111 11111111 11111111 11110110

浮点数

浮点类型的数就是小数,因为小数用科学计数法表示的时候,小数点是可以“浮动”的,如1234.5可以表示成12.345x102,也可以表示成1.2345x103,所以称为浮点数。对于float类型数据,必须待f后缀。 浮点数可表示的范围非常大,float类型可最大表示3.4x10^38,而double类型可最大表示1.79x10^308。

布尔类型

布尔类型boolean只有truefalse两个值。

字符类型

字符类型char表示一个字符。Java的char类型除了可表示标准的ASCII外,还可以表示一个Unicode字符,注意char类型使用单引号',且仅有一个字符,要和双引号"的字符串类型区分开。

引用类型

除了上述基本类型的变量,剩下的都是引用类型。例如引用类型最常用的就是String字符串。

常量

在定义变量的基础上加 final关键字即定义常量; 例如:final int NUM = 12;

常量与变量的区别在于,常量在定义后不可再次进行赋值,否则回报编译错误。 在使用时为了区分常量与变量,通常常量的命名会使用所有字母大写的方式区分