Java011——Java数据类型转换(基本数据类型)

川长思鸟来 2023-10-12 12:03 76阅读 0赞

回顾:Java八大基本数据类型

  1. ============================================================================================
  2. 大类 类型名称 关键字 占用内存 取值范围
  3. --------------------------------------------------------------------------------------------
  4. |字节型 byte 1 字节 -128~127
  5. 整型 |短整型 short 2 字节 -32768~32767
  6. |整型 int 4 字节 -2147483648~2147483647
  7. |长整型 long 8 字节 -9223372036854775808L~9223372036854775807L
  8. --------------------------------------------------------------------------------------------
  9. |单精度浮点型 float 4 字节 +/-3.4E+38F6~7 个有效位)
  10. 浮点型 |双精度浮点型 double 8 字节 +/-1.8E+308 (15 个有效位)
  11. --------------------------------------------------------------------------------------------
  12. 字符型 |字符型 char 2 字节 ISO 单一字符集
  13. --------------------------------------------------------------------------------------------
  14. 布尔型 |布尔型 boolean 1 字节 true false
  15. ============================================================================================

这里只讨论8大基本类型中的7个类型,不涉及boolean类型

围绕以下3点学习:
1、什么是Java数据类型转换?
2、自动类型转换
3、强制类型转换

什么是Java数据类型转换?

数据类型转换就是将数据(变量、数值、表达式的结果等)从一种类型转换为另一种类型。

Java数据类型转换包括:自动类型转换强制类型转换

一、自动类型转换

自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。

发生情景:容量小的和容量大的做运算,结果会自动变成容量大的对象的数据类型,即

  1. bytecharshort --> int --> long --> float --> double

特别的:当byte、char、short三种类型的变量做运算时,结果为int型

说明:
1、此时的容量大小指的是,表示数的范围的大和小。比如float容量要大于long的容量
2、不同类型的数字先转换成同类型,再运算

二、强制类型转换

人为通过代码将数据进行类型转换,即强制类型转换。

发生情景:容量大的转换成容量小的,就需要进行强制类型转换。

  1. 格式:
  2. (数据类型)变量; 或者(数据类型)变量值
  3. 例如:(int) num; int)15.2;

例如

  1. float a = 100f;
  2. int b = (int)a;//将a从float类型强制转换成int类型

强制类型转换可能会造成内存溢出,或者数值精度丢失问题

  1. 1、内存溢出
  2. a、显式内存溢出
  3. int a = 128;
  4. byte b = (byte)a;//内存溢出,因为byte类型最大只能表示127
  5. b、隐式内存溢出
  6. byte c = 5;
  7. byte d = 32;
  8. int e = c * d;//出现内存溢出,因为在赋值给e前,c*d结果还是byte类型,
  9. //但是c*d等于160,大于byte类型最大值127,所以会溢出
  10. int f = c * intd//正确写法
  11. 2、数值精度丢失
  12. float a = 25.63;
  13. int b = (int)a;
  14. System.out.println(b);//输出结果是25,而不是25.63,造成精度丢失0.63

发表评论

表情:
评论列表 (有 0 条评论,76人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java基本数据类型转换

    概述 基本数据类型有空间大小的关系,所以基本数据类型之间就可以进行相互的转换,但是转换之前要首先了解数据类型的排序。 基本数据类型从大到小排序 double >

    相关 Java基本数据类型转换

    学习目标: 掌握Java的基本数据类型转换 学习内容: 1、转化规则 在8大基本数据类型中,boolean不属于数值类型,所以不参与转换,其他类型的转