前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【编程基础】Java 如何完成数据类型转换

【编程基础】Java 如何完成数据类型转换

作者头像
程序员互动联盟
发布2018-03-14 16:15:54
6270
发布2018-03-14 16:15:54
举报
在写程序的时候经常遇到数据的运算,在数据运算中又经常遇到不同类型的数据之间进行转换,那么数据类型之间的转换规则是什么样的呢?

Java数据类型转换分为两种:

1、自动类型提升;

2、强制类型转换;

先来说说第一种,自动类型提升。

发生条件:

两种不同的基本数据类型之间进行算术运算,一个操作数的数据类型会自行提升到与另操作数的数据类型;

比如:a + b;

a是double型,b是int型,那么上面的表达式结果是一个什么类型呢?

先来看看不同数据类型计算自动提升的规则:

  • 如果a或者b有一个为double,则另一个也转换为double,如果不满足则进行如下判断;
  • 如果a或者b有一个为float,则另一个也转换为float,如果不满足则进行如下判断;
  • 如果a或者b有一个为long,则另一个也转换为long;
  • 如果以上都不满足则a和b都转换为int进行计算;

进行转换的规则如下:

因为不同数据类型所占用的位数不同,所以在进行数据类型的转换时可能会有数据丢失,上图中实线表示无数据丢失,虚线为有数据丢失。

第二种、强制类型转换;

自动类型提升是一种数据类型自动变为另一种数据类型,强制类型转换则是人为的用进行数据类型改变。

强制类型转换的语法格式是:

type2 变量2 =(type1)变量1;

上面的小括号就是强制类型转换。

例如:

double a = 123.456;

int b = (int)a;

a的值为123,强制类型转换是把小数部分抹去,把整数部分赋值给目标变量。

注意:在进行数据类型强制转换的时候,如果目标数据类型无法容纳转换后的值那么就会出错。比如:(byte)300,结果绝对不是你想要的,所以要避免这种强制类型转换。

以上就是数据类型转换的知识点,截图和部分话语摘自来《Java核心技术卷I》。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-10-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档