紫色代表一级目录
粉红代表二级目录
蓝色代表三级目录
红色代表关键字
橙色代表说明
primitive主数据类型和引用(两种变量类型)
primitive主数据类型
类型 | 位数 | 值域 |
---|---|---|
boolean | true或false | |
char | 16bits | 0 ~ 65535 |
byte | 8bits | -128 ~ 127 |
short | 16bits | -32768 ~ 32767 |
int | 32bits | -2147483648 ~ 2147483647 |
long | 64bits | -(2^64)/2 ~ (2^64)/2-1 |
float | 32bits | MIN_VALUE ~ MAX_VALUE |
double | 64bits | MIN_VALUE ~ MAX_VALUE |
integer(整数)包括(byte、short、int、long),浮点数包括float、double
特殊说明:在给integer变量赋初值时,前缀0表示8进制,前缀0x表示16进制。
char类型和String类型的变量可以包含任何一个Unicode编码。
特殊的转义字符序列:
符号 | 字符含义 |
---|---|
\n | 换行 (0x0a) |
\r | 回车 (0x0d) |
\f | 换页符(0x0c) |
\b | 退格 (0x08) |
\0 | 空字符 (0x20) |
\s | 字符串 |
\t | 制表符 |
\" | 双引号 |
\' | 单引号 |
\ | 反斜杠 |
\ddd | 八进制字符 (ddd) |
\uxxxx | 16进制Unicode字符 (xxxx) |
watch out:带小数点的值如果最后不加上f都会被JAVA当作double类型。
引用类型(这种类型非常类似于C/C++的指针类型。变量一旦声明后,类型就不能被改变了。)
对象、数组都是引用数据类型。
所有引用类型的默认值都是null。
一个引用变量可以用来引用任何与之兼容的类型。
JAVA常量
特点:常量在程序运行期间不能被修改。
用final关键字定义常量。(一般来说变量名全部大写表示常量。)
自动类型转换
byte、short、char—> int —> long—> float —> double
低精度自动转化为高精度
强制类型转换
由于低精度可以向高精度转换,但为什么高精度不能向低精度转换?这就引入了强制类型转换。
对于高精度向低精度转换,转换过程会产生精度丧失的情况。
原因在于:
假如有:double a = 3.1415926;
int number = (int)a;
编译运行后:
对于结果为什么是3
这是因为double是64bits,而int是32bits,进行强制类型转化时丢失了小数部分。
隐含的强制类型转换
JAVA机制默认整数的默认类型是int,浮点数的默认类型是double。
在强制类型转换的最后不得不多说一句:
对象的强制转换称为造型。子类即是父类,父类不是子类;通过这种关系,子类可以造型成父类。