前言:
1)、byte是整型。
2)、整数字面量默认都为 int 类型
3)、浮点数字面量默认都为 double 类型
一、Java基本数据类型。
Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型、1种用于表示Unicode编码的字符单元的数据类型char和一种用于表示真值的boolean类型。、
1)四种整数类型(byte、short、int、long):
byte:8 位,用于表示最小数据单位,如文件中数据,-128~127
short:16 位,很少用,-32768 ~ 32767
int:32 位、最常用,-2^31-1~2^31 (21 亿)
long:64 位、次常用
整数字面量默认都为 int 类型,所以在定义的 long 型数据后面加 L或 l。
强转符比数学运算符优先级高。见常量与变量中的例子。
2)两种浮点数类型(float、double):
float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。
double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾
注意事项:
二 进 制 浮 点 数 : 1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方)
尾数: . 1010100010 指数:1010 基数:2
浮点数字面量默认都为 double 类型,所以在定义的 float 型数据后面加F 或 f;
double 类型可不写后缀,但在小数计算中一定要写 D 或 X.X float 的精度没有 long 高,有效位数(尾数)短。
浮点数是不精确的,不能对浮点数进行精确比较。在实际中用 BigDecimal来进行金额计算。
3)一种字符类型(char):
char:16 位,是整数类型,2个字节。用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535) 。
注意事项: 不能为 0个字符。在Java程序中能不用char型就不要用。
转义字符:\n 换行 \r 回车 \t Tab 字符 \" 双引号 \\ 表示一个\ 两字符 char 中间用“+”连接,内部先把字符转成 int 类型,再进行加法运算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。
4)一种布尔类型(boolean):
true 真 和 false 假。
二、数据类型之间的转换
基本类型 | 大小 | 对应的包装类 | 最小值 | 最大值 |
byte | 8-bit | Java.lang.Byte | -128 | +127 |
short | 2Byte= 16bit | Java.lang.Short | -32768 | +32767 |
int | 4Byte= 32bit | Java.lang.Integer | -2^31 | +2^31-1 |
long | 8Byte= 64bit | Java.lang.Long | -2^63 | +2^63-1 |
float | 4Byte= 32bit | Java.lang.Float | 1.4e-45 | 3.40e38 |
double | 8Byte= 64bit | Java.lang.Double | 4.9e-324 | 1.79e308 |
char | 2Byte=16bit | Java.lang.Character | 0 | 65535 |
boolean | - | Java.lang.Boolean | - | - |
1、基本数据类型之间的转换
但在实际应用中,经常需要在不同类型的值之间进行操作,这时就需要进行数据类型的转换。
数据类型转换有两种:
1. 自动类型转换:
编译器自动完成类型转换,不需要在程序中编写代码;
规则:从存储范围小的类型到存储范围大的类型。
具体规则:byte→short(char)→int→long→float→double.
2. 强制类型转换:
强制编译器进行类型转换,必须在程序中编写代码。该类型转换很可能存在精度的损失。
规则:从存储范围大的类型到存储范围小的类型。
具体规则:double→float→long→int→short(char)→byte.
2、基本数据类型和包装类之间的转换
- 通过向对应的包装器传入参数来完成基本变量包装成包装类对象;
- 利用包装类提供的xxxValue()方法将包装类对象转化成基本类型变量。
如int和Integer之间的转换:
Int转Integer:
Integer integer = new Integer(int);
Integer转int:
int i = integer.intValue();
Double转double:
double b = Double.doubleValue();
Float转float:
float c = Float.floatValue();
……
3、基本类型变量和字符串之间的转换
1. 除Character外,所有的包装类提供parseXXX()方法将特定的字符串转换成基本类型变量
2. String类提供了valueOf()方法将基本类型转换成字符串。
String iStr = “123”;
int testInt = Interger.parseInt(iStr); //将String类型的“123”转为了基本类型int的123.
String nStr = String.valueOf(100.234); //将double类型的100.234转为了String类型的“100.234”.