Java基本数据类型
Java数据类型分为两大类:基本数据类型和引用类型- 基本数据类型有
8种数值型:byte[1],short[2],int[4],long[8],float[4],double[8],char[2],boolean[1] - 引用类型:[类,接口,数组]
整型的使用细节
Java各整数类型有固定的范围和字段长度,不受具体OS【操作系统】的影响,以保证Java程序的可移植性Java的整形常量(具体值)默认为int型,声明long型常量必须加l或者LJava程序中变量声明为int型,除非不足以表示大数,才使用longbit:计算机中最小存储单位byte:计算机中基本存储单元(1byte=8bit)
浮点类型
| 类型 | 占用存储空间 | 范围 |
|---|---|---|
单精度float | 4字节 | -3.403E38 ~ 3.40E38 |
双精度double | 8字节 | -1.789E308 ~ 1.789E308 |
- 关于浮点数在机器中中存放形式的简单说明:
浮点数 = 符号位 + 指数位 + 尾数位 - 尾数部分可能丢失,造成精度损失(小数都是近数值)
浮点型使用细节
- 与整数类型类似,
Java浮点类型也有固定的范围和字段长度,不受具体OS的影响。【float4个字节double8个字节】 Java浮点型常量(具体值)默认为double型,声明float型常量,须加f或者F- 浮点型常有两种表示形式:
- 十进制形式:
5.12512.0f.512 - 科学计数法形式:5.12e2
[5.12*10的2次方]、5.12E-2[5.12/10的2次方]
- 通常情况下,应该使用
double型,因为它比float型更加精确 - 当我们对运算结果是小数的进行判断时,要以
两个数的差值的绝对值,在某个精度范围判断
double num1 = 2.7;
double num2 = 8.1/3
if(num1 - num2 < 0.000001 ){
System.out.println("我爱学习")
}
字符型(char)
字符型可以表示单个字符,字符类型是char,char是两个字节(可以存放汉字),多个字符用字符串String
char c1 = 'a';
char c2 = '\t';
char c3 = '陈';
char c4 = 97;
字符类型使用细节
- 字符常量是用单引号
('')括起来的单个字符。例如:char c1 = 'a' Java中还允许使用转义字符'\'来将其后面的字符转变为特殊字符常量。例如:char c2 = '\n'- 在
Java中char的本质是一个整数,在输出时,是Unicode码对应的字符 - 可以直接给
char赋值一个整数,然后输出时,会按对应的Unicode字符输出。如:97 --> a char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码
字符类型本质
- 字符型存储到计算机中,需要将字符对应的码值(整数)找出来,比如
'a':
- 存储:
'a'==> 码值97==>二进制(110 0001)==> 存储 - 读取:
二进制(110 0001)==>97==>'a'==> 显示
- 字符和码值的对应关系是通过字符编码表决定的:
ASSCII:ASSCII编码表,一个字节,128个字符,实际上一个字节可以表示256个字符,当出设计只用了128个Unicode:固定大小的编码,使用两个字节来表示字符,字母和汉字统一都是占用两个字符utf-8:大小可变的编码,字母使用一个字节,汉字使用3个字节gbk:可以表示汉字,而且范围更广,字母使用一个字节,汉字2个字节gbk2312:可以表示汉字,gbk2312 < gbkbig5:繁体中文,台湾,香港
boolean(布尔类型)
- 布尔类型也叫
boolean类型,boolean类型只允许去true和false,无null boolean类型只占一个字节boolean类型适用于逻辑运算,一般用于流程控制- 在
Java中不可以用0或者非0代替false和true(别的语言可以如JavaScript)