写在之前:
本系列文章内容仅仅是对yangchong相关文章内容的收藏与再备份,有需要查看作者原文的请点击此链接:技术博客笔记大汇总
一、概述
1、基本数据类型具体有哪些
byte,short,int,long,char,float,double,boolean
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类型;