Java 基本数据类型
变量就是申请内存来储存值.也就是说,当创建变量的时候,需要在内存中申请空间
内存管理系统根据变量的类型为变量分配储存空间,分配的空间只能用来储存该类型的数据
因此,通过定义不同类型的变量,可以在内从中储存整数,小数或者字符.
Java的俩大数据类型
- 内置数据类型
- 引用类型
内置数据类型
Java语言提供了八种类型.六种字符类型(四个整数型,俩个浮点型),一种字符型,还有一种布尔型.
Byte
:
- 最小值:-128(-2^7)
- 最大值:127(2^7-1)
- 默认值:0
- byte 的数据类型是8位的整数
- byte主要用在大型的数组中节约空间,主要代替整数,因为byte变量占用的空间只有 int类型 的四分之一
short
:
- 最小值:-32768(-2^15)
- 最大值:32767(2^15 - 1)
- short数据类型和byte那般但是所占空间为 int类型 的二分之一
- short的数据类型是16位的整数
- 默认值:“0”
int
:
- 最小值为: -2,147,483,648(-2^31)
- 最大值为:2,147,483,647(2^31 - 1)
- 一般的整数型默认为 int类型
- 默认值: 0
long
:
- 最小值为:-9,223,372,036,854,775,808(-2^63)
- 最大值为:9,223,372,036,854,775,807(2^63 -1)
- 默认值:0
float
:
- float 的数据类型是单精度
- 默认值:0
- 注意浮点数不可以标识精确的值
double
:
- 浮点数的默认类型是double
- double类型同样不能表示精确的值
- 默认值为 0.0d
boolean
:
- 默认值:false
- 只有俩个取值:true 和 false
char
:
- 最大值是 \uffff(即为 65535)
- char类型的数据类型可以储存任何字符
引用类型
- 对象,数组都是引用数据类型
- 所有的引用类型的默认值都是null
Java 常量
在Java中使用final关键字来修饰常量,声明方式和变量类似:
final int P = 6;
为了便于识别通常使用大写字母表示常量
字符串常量和字符常量都可以包含任何Unicode字符,如以下实例
char a = '\u0001';
String a = "\u0001";
Java支持一些特殊的转义字符序列
符号 | 字符含义 |
---|---|
\n | 换行 (0x0a) |
\r | 回车 (0x0d) |
\f | 换页符(0x0c) |
\b | 退格 (0x08) |
\0 | 空字符 (0x0) |
\s | 空格 (0x20) |
\t | 制表符 |
" | 双引号 |
’ | 单引号 |
\ | 反斜杠 |
\ddd | 八进制字符 (ddd) |
\uxxxx | 16进制Unicode字符 (xxxx) |
以上表格摘自 菜鸟教程
自动类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
- 数据类型转化的时候需要注意 转换过程中 可能会造成精度缺失
- 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入 当然得给各位看官老爷举一个例子
(int)13.7 == 13;
(int)-42.89f == -42;
强制类型转换
- 条件是转化的数据类型必须是兼容的
- 格式:(tpye) value type 是要强制类型转化 以下为例子
public static void main(String[] args) {
int T = 1;
float Q = (float) T;
System.out.println("int 强转类型为byte后的值为 : " + Q);
}
}
输出结果为
int 强转类型为byte后的值为 : 1.0
隐含强制类型转换
- 整数的默认类型是 int。
- 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。