首页 > 编程语言 > 详细

Java中数据类型的转换

时间:2020-02-16 12:18:09      阅读:68      评论:0      收藏:0      [点我收藏+]

一、类型转换原则

1. 基础数据类型转换原则

基础数据类型转换主要在在 赋值、方法调用、算术运算 三种情况下发生。

(1) 赋值和方法调用规则

从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换:

  • 布尔型和其它基本数据类型之间不能相互转换; 
  • byte型可以转换为short、int、、long、float和double; 
  • short可转换为int、long、float和double; 
  • char可转换为int、long、float和double; 
  • int可转换为long、float和double; 
  • long可转换为float和double; 
  • float可转换为double; 

另外还有是直接数的赋值:先通过直接数判断其类型,然后基本原则和上面谈到的赋值原则基本一致;只是直接数是整数时特殊一点,当在可表示范围内时,可以直接赋值给 byte short char三种类型;

(2) 算术运算规则

a. 基本就是先转换为高位数据类型,再参加运算,结果也是最高位的数据类型;

b. byte short char运算会转换为Int;

  • 如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。 
  • 如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。 
  • 如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。 
  • 如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。

特殊情况:

  • 如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。
  • 当运算符为自动递增运算符(++)或自动递减运算符(--)时,如果操作数为byte,short或char类型不发生改变;

2. 引用类型转换规则

  • 基本类型 与 对应包装类 可自动转换,这是自动装箱和折箱的原理;
  • 两个引用类型间转换:
    • 子类能直接转换为父类 或 接口类型;
    • 父类转换为子类要 强制类型转换;且在运行时若实际不是对应的对象,会抛出ClassCastException运行时异常;

 

Java中数据类型的转换

原文:https://www.cnblogs.com/myitnews/p/12316159.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!