常用转义字符
\t:一个制表位,实现对齐的功能\n:换行符\\:一个 \\":一个 ",单引号一样 '\r:一个回车
变量
变量相当于内存中一个数据存储空间的表示,你可以把变量看作一个房间的门牌号通过门牌号我们可以找到房间,而通过变量我们可以访问到变量(值)。
三要素
- 变量名
- 值
- 数据类型
先声明,后使用
java基本数据类型
- 八种基本数据类型:
byte short int long bealean float double char - 引用类型:类、接口、数组
整型细节
| 类型 | 占用存储空间 | 范围 |
|---|
| byte[字节] | 1字节 | -128 ~ 127 为啥存放的范围是这个=>二进制(二进制我们详解) |
| short[短整型] | 2字节 | -(215) ~215-1 -32768~32767 |
| int [整型] | 4字节 | -231~231-1 -2147483648-2147483647 |
| long[长整型] | 8字节 | -263 ~ 263-1 |
浮点细节
| 类型 | 占用存储空间 | 范围 |
|---|
| 单精度float | 4字节 | -3.403E38 ~ 3.403E38 |
| 双精度double | 8字节 | -1.798E308 ~ 1.798E308 |
- 浮点数 = 符号位 +指数位 + 尾数位(尾数位可能丢失,造成精度损失)
- 陷阱: 2.7 和 8.1/3 比较?
使用 == ? 错! 应该使用Math.abs(num1 - num2) < 0.00000001 (差值非常小)
字符细节
- char 是两个字节(可以存放汉字)
- char 的本质是一个整数,在输出时,会按照对应的unicode码输出
- 所有char类型可以运算
基本数据类型转换
- 自动类型转换
当java程序在进行赋值或运算时,精度小的类型会自动转换为精度大的数据类型。
char -> int -> long -> float -> double
byte -> short -> int -> long -> float ->double - 自动类型转换细节
2.1 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
2.2 精度大的数据类型赋值给精度小的数据类型时,会报错,反之自动转换。
2.3 (byte,short)和char之间不会相互自动转换。
2.4 byte,short,char 三者可以计算,计算时首先转换为int类型。byte b = 20;
char c = b;
char c = 80;
short d = b + c;
short d = 20 + 80;
2.5 boolean 不参与转换
2.6 自动提示原则:表达式结果类型自动提示为操作中最大的类型int n1 = 10;
float f1 = n1 + 1.1;
double d1 = n1 + 1.1;
其他类型细节
- boolean类型:只允许取值true和false 无null 占一个字节
- char类型可以保存int的常量值,但不能保存int的变量值,需要强转。
char c1 100;
int m 100;
char c2=m;/错误
char c3 =(char)m;
System.out.println(c3);/100对应的字符