)
数据类型Java 共有 8 种基本数据类型整型、浮点型、字符型、布尔型整型: byte(1),short(2),int(4),long(4)浮点: float(4),double(8)字符: char(2)布尔: booleadn(1)boolean 不参与任何类型转换、类型提升类型转换自动类型转换(隐式转换)无需手动强转编译器自动完成,不会溢出,但存在精度丢失风险(触发条件:取值范围小的类型 → 取值范围大的类型)byte → short → int → long → float → doublechar 特殊char 无符号可直接转 int/long/float/double强制类型转换(显式转换)手动写(目标类型),大范围类型 → 小范围类型会存在溢出 / 精度丢失风险必须手动强制语法: 小范围类型 变量名 (小范围类型) 大范围类型数值//举例 int i(int) 100.0F;//将浮点数100.0手动转换为整型100类型提升基本数据类型做二元运算加减乘除、位运算、比较会触发类型提升优先级从小到大byteshortcharintlongfloatdouble若操作数只有 byte /short/char全部先提升为 int 再运算结果一定是 int运算中包含 int、long、float、double统一提升为表达式中等级最高的类型自增自减一元运算符/--不触发类型提升。//举例 byte a 1; short b 2; int c a b;// [ byte short 类型提升为 int int ] int d a 3;// [ byte int 类型提升为 int int ] int d (int)(a 3L);// [ byte long 类型提升为 long long ] byte e 4 5;// [ 不进行类型提升,编译器最终计算值为9赋值给变量e ]字面量,变量,常量字面量:一眼就能看出本身的值,直接写出来的数据 (中,10,20,true都是属于字面量)变量:有名字,有数据类型,存储的值可以被修改的内存存储空间(c,i,j,b都属于变量)常量:被final修饰,值不能改变的变量(j属于常量)char c 中; int i 10; static final int j 20; boolean b true;数组定义:引用类型,用于存储一组相同数据类型的数据,长度一旦创建不可变一维数组int[ ] arr new int[3];会在堆中创建一个 int 数组对象对象内部包含对象头、length 属性同时分配三块连续内存用于存储 int 类型元素二维数组int[ ][ ] arr1 new int[3][ ];//创建一个对象在堆中创建一个int[][]类型的数组对象该数组长度为 3用于存储int[]一维数组的引用int[ ][ ] arr2 new int[3][6];//创建四个对象先在堆创建一个int[][]外层数组对象用来存放一维数组引用同时自动创建 3 个长度为 6 的int[]一维数组外层数组中保存这 3 个一维数组的地址