Java基础部分:基本数据类型

写在之前:

本系列文章内容仅仅是对yangchong相关文章内容的收藏与再备份,有需要查看作者原文的请点击此链接:技术博客笔记大汇总

一、概述

    1、基本数据类型具体有哪些
        byteshortintlongcharfloatdoubleboolean
    2、基本数据类型分类
        ①整型:包括byte,short,int,long;用于表示有符号整数;
        ②浮点型:包括float,double;用于表示带小数位的数字;
        ③字符型:包括char;用于表示字符集中的符号;
        ④布尔型:包括boolean;用于表示true/false值;
    3、对应的字面值
        ①整数字面值:例:127、4567l、4567L
        ②浮点数字面值:例:3.14、3.14f、3.14F、3.14d、3.14D
        ③字符字面值:例:‘a’、‘b’、‘\b’、‘\t’、‘\n’
        ④布尔字面值:例:true、false
    4、相关介绍
        ①Java在基本数据类型这块不是面向对象的;这样设计的原因是为了提升效率;
        ②Java语言的数据类型都具有严格定义的范围和数学行为(例:int总是32位);
            虽然说这样做在某些环境下会造成性能损失,但这是为了实现可移植性而必须付出的;

二、整型数据介绍

    1、概述
        ①byte:字节类型;       8位;1个字节;范围:-2^7至2^7-1;
        ②short:短整型;       16位;2个字节;范围:-2^15至2^15-1;
        ③int:整型;               32位;4个字节;范围:-2^31至2^31-1;
        ④long:长整型;        64位;8个字节;范围:-2^63至2^63-1;
    2、对应整数字面值
        ①按前缀区分:十进制、十六进制(0x或0X)、八进制(0)、二进制(0B或0b);
        ②按后缀区分:正常(值赋给byte、short、int)、后缀为l或L(long);
    3、相关介绍
        ①整数字面值(无前缀与后缀)默认对应的数据类型为int类型(十进制)
        ②整数字面值赋值给整型变量时,所赋的值不能超出变量的存储范围;
        ③为增加可读性,Java 7开始,可用下划线来分割整数字面值的显示(例:0X23_54);

三、浮点型数据介绍

    1、概述
        ①float:单精度浮点数;       32位;4个字节;范围:1.4e-045至3.4e+038;
        ②double:双精度浮点数;   64位;8个字节;范围:4.9e-324至1.8e+308;
    2、对应的浮点型字面值
        ①浮点数字面值包括:整数部分、小数点、小数部分、可选的指数;
        ②按后缀区分:正常(double)、后缀为f或F(float)、后缀为d或D(double);
    3、相关介绍
        ①浮点数字面值(无前缀与后缀)默认对应的数据类型为double类型

四、字符数据介绍

    1、概述
        ①char:Unicode字符;       16位;2个字节;范围:0至65536;
    2、对应的字符字面值
        ①字符字面值是一个Unicode字符;例:‘a’、‘b’
        ②字符字面值也可以是单引号括起来的一个转义序列;例:‘\b’、‘\t’
    3、相关介绍
        ①char被设计为容纳Unicode字符;需要使用十六位宽度来存储;没有负值;
        ②char可以用作整数类型;可对char类型的变量执行算术运算;

五、布尔数据介绍

    布尔数据有两个值:true 和 false

六、基本数据类型转换

1、类型转换

    ※※ 涉及处理不同数据类型的数据时,常常需要将一个变量的值赋给另一个变量,或在表达式中进行不同数据类型数据的运算,这就需要进行数据类型转换;
    ※※ 类型转换的方式有以下几种:
        ①默认转换:转换流程:byte,short,char —> int —> long —> float —> double
                              byte,short,char相互之间不转换,他们参与运算时先转换为int类型;
        ②强制转换:格式:目标类型 变量名 = (目标类型)值或变量名
                              示例:int a = (int) 15.7f;
    ※※ 类型转换的注意事项:
        ①Java中,任何一个整数字面量,当没有特意标记时,默认为 int 类型 (1);
        ②Java中,任何一个浮点数字面量,当没有特意标记时,默认为 double 类型( 1.0);
        ③123L 或者 123l,编译器会将该数当成long类型;
        ④12.345f 或者12.345F,编译器会将该数当成float类型;

2、加宽转换

    ※※ 当从一种基本类型转换向另一种基本类型时,如果后者的大小和前者相同或者更大,就叫做加宽转换;例:将int(32位)转为long(64位)
    ※※ 加宽转换不会造成信息丢失;
    ※※ 加宽转换是隐式发生的,不需要在代码中做任何事情;

3、收窄转换

    ※※ 收窄转换发生在从一种基本类型转换为另一种更小类型的转换中;例:从long(64位)转换到int(32位)
    ※※ 若被转换的值比目标类型的容量还要大的话,收窄转换将导致信息丢失;
    ※※ 收窄转换需要显示调用,用圆括号指定目标类型;

4、表达式中自动的类型提升转换

    ※※ 除了赋值外,在表达式中也可能会发生类型转换;在表达式中,中间值要求的精度有时会超出操作数的范围;
    ※※ 当对表达式求值时,Java会自动将每个byte,short或char操作数提升为int类型;
    ※※ Java定义了几个应用于表达式的类型提升规则:
        对于一元操作符来说,如果操作数的类型是byte,short或char,运算结果提升为int类型;
        对于二元操作符来说,提升规则是从以下几条依次选择一条执行;
            ①若操作数类型均为byte、short或char,则两个数均转为int类型,结果数也将为int类型;
            ②若操作数包含double类型,则另一个操作数也转为double,结果数也将为double类型;
            ③若操作数包含float类型,则另一个操作数也转为float,结果数也将为float类型;
            ④若操作数包含long类型,则另一个操作数也转为long,结果数也将为long类型;

你可能感兴趣的:(Java基础部分:基本数据类型)