Java 拾遗补阙 ----- 之数据类型

来源:互联网 发布:js跳转到指定url 编辑:程序博客网 时间:2024/06/18 13:12

前言:

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 i=5; // 5 叫直接量(或字面量),即 直接写出的常数。    整数字面量默认都为 int 类型,所以在定义的 long 型数据后面加 L或 l。    小于 32 位数的变量,都按 int 结果计算。

    强转符比数学运算符优先级高。见常量与变量中的例子。

 

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 高,有效位数(尾数)短。

    float  的范围大于 long  指数可以很大。    浮点数是不精确的,不能对浮点数进行精确比较。

 

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 假。


二、数据类型之间的转换

基本类型大小对应的包装类最小值最大值byte8-bitJava.lang.Byte-128+127short2Byte= 16bitJava.lang.Short-32768+32767int4Byte= 32bitJava.lang.Integer-2^31+2^31-1long8Byte= 64bitJava.lang.Long-2^63+2^63-1float4Byte= 32bitJava.lang.Float1.4e-453.40e38double8Byte= 64bitJava.lang.Double4.9e-3241.79e308char2Byte=16bitJava.lang.Character065535boolean-Java.lang.Boolean--

1、基本数据类型之间的转换

但在实际应用中,经常需要在不同类型的值之间进行操作,这时就需要进行数据类型的转换。 
数据类型转换有两种: 


(1) 自动类型转换:

编译器自动完成类型转换,不需要在程序中编写代码; 
规则:从存储范围小的类型到存储范围大的类型。 
具体规则:byte→short(char)→int→long→float→double. 


(2) 强制类型转换:

强制编译器进行类型转换,必须在程序中编写代码。该类型转换很可能存在精度的损失。 
规则:从存储范围大的类型到存储范围小的类型。 
具体规则:double→float→long→int→short(char)→byte. 

2、基本数据类型和包装类之间的转换

(1)通过向对应的包装器传入参数来完成基本变量包装成包装类对象;

(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”.