变量
变量即一个可以反复赋值的未知值,在数学中 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);
}
}解析
上述代码的执行过程如下:
- 定义一个名称为
i的int类型变量,并对变量赋值为100,此时JVM内存中分配了一个 存储单元 ,并填入值为100; - 执行
i=200;时,JVM把200写入变量i的存储单元,因此i的现有值为200; - 执行
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。
不同数据类型在内存中占用的存储数量不同:
byte和boolean占用1个字节;short和char占用2个字节;int和float占用4个字节`;long和double占用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只有true和false两个值。
字符类型
字符类型char表示一个字符。Java的char类型除了可表示标准的ASCII外,还可以表示一个Unicode字符,注意char类型使用单引号',且仅有一个字符,要和双引号"的字符串类型区分开。
引用类型
除了上述基本类型的变量,剩下的都是引用类型。例如引用类型最常用的就是String字符串。
常量
在定义变量的基础上加
final关键字即定义常量; 例如:final int NUM = 12;
常量与变量的区别在于,常量在定义后不可再次进行赋值,否则回报编译错误。 在使用时为了区分常量与变量,通常常量的命名会使用所有字母大写的方式区分。