一、基本数据类型
1、数据类型
- 基本数据类型 ( primitive type )
- 数值型
- 整数类型:byte、short、int、long
- 浮点类型:float、double
- 字符型:char
- 布尔型:boolean
- 数值型
- 引用数据类型 ( reference type )
- 类:class
- 接口:interface
- 数组:Array
2、空间大小
类型 | 所占字节 | 默认值 | 范围 |
---|---|---|---|
byte | 1 | 0 | -128 – 127(-27~+27 - 1) |
short | 2 | 0 | -2^15 – 2^15 - 1 |
int | 4 | 0 | -2^31 – 2^31 - 1 |
long | 8 | 0L | -2^63 – 2^63 - 1 |
float | 4 | 0.0F | -3.0403E38 – 3.403E38 |
double | 8 | 0.0 | -1.798E308 – 1.798E308 |
char | 2 | 0 | 0–65535 |
boolean | 1 | flase |
1字节 = 8 bit
自动类型提升运算,提升顺序:
byte、char、short–>int—>long–>float–>double
注意点:char c = '';
编译不通过报错:空字符文字
隐式类型转换需要注意的3个小点:
long l = 123;
不写l
后缀实际是按照int
类型存的,如果数字超过int范围就会编译不通过报错:过大的整数float f = 1.2;
不写f
后缀实际是按照double
类型存的,编译不通过直接报错:不兼容的类型会有精度损失- 整形常量默认为
int
类型;浮点型常量默认为double
类型
进制相关:
二进制(binary):0,1。满2进1,以0b或0B开头
八进制(octal):0~7。满8进1,以数字0开头
十进制(decimal):0~9。满10进1
十六进制(hex):0~ 9 + A~F。满16进1,以0x或0X开头
位运算符:
运算符 运算 范例 << 左移 3 << 2 = 12 —> 3×2×2
(左移几位就×2的几次幂)
拿0补位>> 右移 3 >> 1 = 1 —>3/2
(同上变除)
用最高位数字补位>>> 无符号右移 3 >>> 1 = 1
拿0补位& 与运算 6 & 3 = 2 | 或运算 6 | 3 = 7 ^ 异或运算 6 ^ 3 = 5
小公式:m = m ^ n ^ n~ 取反运算 ~6 = -7 位运算就是直接对整数的二进制进行的运算
3、数组 Array
1、特点
- 数组是有序排列的
- 数组是引用数据类型的变量
- 创建数组对象会在内存中开辟一块连续的内存空间
- 数组长度一旦确定就不能更改
2、初始化
// 一维数组
byte[] ia = new byte[10];
short[] fa = {0, 1, 2};
long[] da = new long[]{0, 1l, 2L};
// 二维数组
int[][] i2a = new int[10][]; // 第二个位置可以不定长
float[][] f2a = {{0}, {1f}, {2F, 3F}};
double[][] d2a = new double[][]{{0}, {1d}, {2D, 3D}};