一 Java 的数据类型
二 整数类型
类型 | 占用存储空间 | 范围 |
---|---|---|
byte[字节] | 1字节 | -127~127 |
short[短整型] | 2字节 | -215~215-1 即 -32768~ 32767 |
int[整型] | 4字节 | -231~231-1 即 -2147483648~2147483647 |
long[长整型] | 8字节 | -263~263-1 |
字节 byte
是计算机存储单位的基本单元,通常由8个比特(bit)
组成。每个比特可以表示0或1。
整型在java中的使用
byte n1 = 1;
short n2 = 2;
int n3 = 3;
long n4 = 4;
整型的细节
- Java各整数类型有固定的范围和字段长度,不受具体OS[操作系统]的影响,以保证java程序的可移植性。
- Java的整型常量(具体值)默认为int型,声明long型常量须后加
l
或L
- Java程序中变量常声明为int型,除非不足以表示大数,才使用long
- bit: 计算机中的最小存储单位。byte:计算机中基本存储单元,1byte =8 bit。
思考
- byte / short / int / long 分别有多少字节?
byte 8个字节
short 16个字节
int 32个字节
long 64 个字节
byte n1 = 3;
int n2 = 4;
在内存中的的表现形式:
三 浮点型
Java 的浮点类型可以表示一个小数, 比如 123.4 , 7.8 , 0.12 等等
类型 | 占用存储空间 | 范围 |
---|---|---|
单精度 float | 4字节 | -3.403E38~3.403E38 |
双精度 double | 8字节 | -1.798E308~1.798E308 |
E
通常表示指数形式。例如,1.798E308表示1.798乘以10的308次方,而-1.798E308表示-1.798乘以10的308次方。
说明:
- 浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位
- 尾数部分可能丢失, 造成精度损失(小数都是近似值)。
浮点型在java中的使用
// float n1 = 3.14; 错误写法
float n1 = 3.14F;
double n2 = 3.14;
浮点型细节
- Java 的浮点型常量(具体值)默认为
double
型,声明float型常量,须后加f
或F
- 浮点型常量有两种表示形式
- 十进制数形式:如:
5.12
5.12.0f
.512
(必须有小数点) - 科学计数法形式:如:
5.12e2 [5.12*10的2次方]
5.12E-2 [5.12/10的2次方]
- 十进制数形式:如:
- 通常情况下,应该使用double型,因为它比float型更精确。
- 浮点数使用陷阱: 比较 2.7 和 8.1/3 的结果是否相等
double n1 = 2.7;
double n2 = 8.1 / 3;
System.out.println("n1="+n1);
System.out.println("n2="+n2);
输出结果:
n1=2.7
n2=2.6999999999999997 // 接近 2.7 的一个小数, 而不是 2.7
当我们对运算结果是小数的进行相等判断是, 要小心应该是以两个数的差值的绝对值, 在某个精度范围类判断
// 错误写法
if( n1 == n2) {
System.out.println("num11 == num12 相等");
}
// 正确写法
if(Math.abs(num11 - num12) < 0.000001 ) {
System.out.println("差值非常小,在规定精度范围内,认为n1 和 n2 相等...");
}
如果是直接查询得的的小数或者直接赋值, 可以判断相等
四 字符型
字符类型可以表示单个字符,字符类型是 char, char 是两个字节(可以存放汉字), 多个字符我们用字符串 String
字符型细节
- 字符常量必须使用单引号引起来,不能使用双引号,否则会报错,双引号认为是字符串。
- Java中还允许使用转义字符来将其后的字符转变为特殊字符型常量。例如:
char c3 = '\n'; // '\n'
表示换行符 - 在java中,char的本质是一个整数,在输出时,是unicode码 1 对应的字符。
- 可以直接给char赋一个整数,然后输出时,会按照对应的unicode字符输出[100]
- char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码
public class CharDetail {
public static void main(String[] args) {
// 1.字符常量必须使用单引号引起来,不能使用双引号,否则会报错,双引号认为是字符串。
char c1 = '中';
// 2.Java中还允许使用转义字符来将其后的字符转变为特殊字符型常量。例如:char c3 = '\n'; //'\n'表示换行符
// 3.在java中,char的本质是一个整数,在输出时,是unicode码对应的字符。
// http://tool.chinaz.com/Tools/Unicode.aspx
char c2 = 98;
System.out.println(c2);
char c3 = 'b';
System.out.println((int)c3);
char c4 = '龙';
System.out.println((int)c4);
char c5 = 40857;
System.out.println(c5);
// 4.可以直接给char赋一个整数,然后输出时,会按照对应的unicode字符输出[97]
// 5.char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码.
System.out.println('a'+10); //107
char c6 = 'b' +1;
System.out.println((int)c6); // 99
System.out.println(c6); // c
}
}
五 布尔型
.布尔类型也叫boolean类型,booolean类型数据只允许取值true和false,无null
布尔型细节
- boolean类型占1个字节。
- booolean类型数据只允许取值true和false
- boolean 类型适于逻辑运算,一般用于程序流程控制
public class Bollean {
public static void main(String[] args) {
// 判断成绩是否通过
boolean isPass = false;
if (isPass == true){
System.out.println("考试通过,恭喜");
} else {
System.out.println("考试没有通过,下次努力哦~");
}
}
}
http://tool.chinaz.com/Tools/Unicode.aspx ↩︎