Java的数据类型
强类型语言:变量的使用要严格符合规定,变量必须先定义才能使用
比如: ‘12’ + 3 = "123" (123)
Java中 “123” != 123
js 中 “123” == 123
Java的数据类型分为两大类
-
基本类型
-
引用类型
//八大基本数据类型
//整数
int num1 = 10;
byte num2 = 127;
short num3 = 32767;
long num4 = 4294967295L;
//小数
float num5 = 3.14159265f;
double num6 = 3.14159265;
//字符
char ch1 = 'A';
//字符串,String不是关键字,String是一个类
String ch2 = "ABC";
//布尔值
boolean ch3 = true;
boolean ch4 = false;
//每个类型都有对应的类,类中包含了类型的信息,如:int → Integer
//数据类型扩展
int i = 10;
int i2 = 010; //八进制0 这个数等于8,每个数位范围0~8
int i3 = 0x10; //十六进制0x 这个数等于16,每个数位范围0~9,A~F
浮点数扩展:
结果:false
float能表示的字长有限,但存在无限字长的数,切浮点数的值是离散的(孤立的),此时会进行舍入运算,存在误差
最好完全避免使用浮点数进行比较
银行进行比较时就应避免使用浮点数进行比较,使用BigDecimal类(一个数学工具类)
字符扩展
所有的字符本质都是数字,可以强制转换
Unicode表
范围 0 - 65536 (U0000 UFFFF)
char c = '\u0061'; \\输出c为‘a',"\"代表转义
字符串(类)扩展
布尔值扩展
boolean flag = true;
if (flag) {}
if (flag == true) {}//两者等价
什么是字节
位:计算机内部数据存储的最小单位 (10001001是八位二进制数)
字节:计算机数据处理的基本单位,习惯用大写B表示
一字节(1B) = 8位(8bit)
字符:计算机使用的字母、数字、字和符号
1bit=1位
1Byte表示一字节 1B = 8b
1024B = 1KB
1024KB = 1M
1024M = 1G
类型转换
不同类型的数据先转化为同一数据类型,再进行运算
- 不能对boolean类型转换
- 不能把对象类型转换到不相干的类型
- 高容量到低容量,强制转换
- 转化可能会内存溢出或丢失精度
强制转换
高到低
int i = (int)'c';
自动转换
低到高
整数类型转换,有long则结果是long,否则结果是int
long a = 111111111;
int b = 1243;
short c = 10;
byte d = 8;
System.out.println(a + b + c + d); //long + int + short + byte = long
System.out.println(b + c + d); //int + short + byte = int
System.out.println(c + d); //short + byte = int
//有double则是double
小技巧
数字之间可以用下划线分割
int money = 10_000_1000; //100001000,方便区分