Java技术之数据类型
4种整型,2种浮点类型,1种Unicode编码的字符单元的字符类型char和1种boolean类型
-
注意:BigIntege和BigDecimal等,不是数据类型,而是Java对象
-
Java的数据类型所占的字节数与平台无关
整型
类型 | 转储需求 | 取值范围 |
---|---|---|
byte | 1字节 | -128 ~ 127 |
short | 2字节 | -32768 ~ 32767 |
int | 4字节 | -2147483648~2147483647(正好超过20亿) |
long | 8字节 | -9223372036854775808~9223372036854775807 |
类型转储需求取值范围byte1字节-128 ~ 127short2字节-32768 ~ 32767int4字节-21474836482147483647(正好超过20亿)long8字节-92233720368547758089223372036854775807
Java7开始可以用前缀0b或0B写二进制数,例如0b1001 就是9 为数字字面值加下划线,例如1_000_000(0b1111_0100_0010_0100_000) Java编译器会去除"_"
浮点类型
类型 | 转储需求 | 取值范围 |
---|---|---|
float | 4字节 | ±3.40282347E+38F(有效位数为6-7位) |
double | 8字节 | ±1.79769313486231570E+308(有效位数为15位) |
类型转储需求取值范围float4字节±3.40282347E+38F(有效位数为6-7位)double8字节±1.79769313486231570E+308(有效位数为15位)
浮点数值三个特殊值 NaN表示不是一个数字,例如负数平方根,0/0的结果等,而正整数/0则表示正无穷大
-
正无穷大
-
负无穷大
-
NaN
public class Note {
public static void main(String[] args) {
//注释后面为输出结果,正无穷大,负无穷大和NaN
System.out.println(Double.POSITIVE_INFINITY); //Infinity
System.out.println(Double.NEGATIVE_INFINITY); //-Infinity
System.out.println(Double.NaN); //NaN
System.out.println(Double.isNaN(Math.sqrt(-2))); //true,判断一个浮点数值是否是NaN
}
}
指数计数法与科学计数法
-
在科学与工程领域 "e"代表自然对数的基数
-
但JAVA中e或E指的10为底的幂数
-
为避免混淆可以使用大写E
0x1.0p-3 e不能表示指数,大写E表示科学计数法,一般使用大写,请尽量不要使用小写
public class Note {
public static void main(String[] args) {
float expFloat = 1.39e-43f;
//1.39E-43
System.out.println(expFloat);
expFloat = 1.39E-43f;
//1.39E-43
System.out.println(expFloat);
double expDouble = 47e47d;
double expDouble2 = 47e47;
//4.7E48
System.out.println(expDouble);
System.out.println(expDouble2);
//科学与工程领域 2.718281828459045
System.out.println(Math.E);
}
}
char类型
类型 | 转储需求 | 取值范围 |
---|---|---|
\b | 退格 | \u0008 |
\t | 制表 | \u0009 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\" | 双引号 | \u0022 |
\’ | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
Unicode和char类型
Unicode 1.0:65536个,十六进制,前缀U+,码点可以分成17个代码级别 码点:一个编码表中的某个字符对应的代码值 char类型尽量不要使用,而应当使用字符串作为抽象数据的处理
boolean类型
boolean类型只有两个值:true和false Java基础知识之运算符,也可以叫操作符
public class Note {
public static void main(String[] args) {
//算术运算符:+,-,*,/ 分别表示加减乘除
//整数除法:整数/整数
//浮点除法:非整数/非整数,整数/非整数,非整数/整数
//求余操作:% 也可以叫取模
System.out.println(15/7);//输出结果:2
System.out.println(15%2);//输出结果:1
System.out.println(15.0/2);//输出结果:7.5
//整数/0 报错
//浮点数/0 无穷大或NaN
//System.out.println(15/0);//输出报错: Exception in thread "main" java.lang.ArithmeticException: / by zero
System.out.println(15.0/0);//输出结果:Infinity
System.out.println(0.0/0);//输出结果:NaN
}
}