[javase学习笔记]-2.7 变量和数据类型(2)
2015-12-11 14:42
357 查看
这节我们继续学习数据类型之间的转换中应该注意到的一些小细节。
数据类型之间的转换有两种:
1.自动类型转换(隐式类型转换)
2.强制类型转换(显式类型转换)
表达式的数据类型自动提升:
所有的byte型,short型和char型的将自动提升为int型;
如果一个操作数是long型,那么计算结果也是long型;
如果一个操作数是float型,那么计算结果也是float型;
如果一个操作数是double型,那么计算结果也是double型;
我们看出占内存小的自动提升为占内存大的数据类型。
而当我们要把占内存大的数据类型转换成占内存小的数据类型时必须要强制转换,当然有可能造成精度降低或溢出,所以在使用时一定要格外注意。
下面我们直接看一段代码,体验一下数据转换中的一些细节。
结果如下:
从结果我们很清楚的看到不同数据类型之间的转换结果,以及数据类型的范围溢出等细节问题,在以后的学习中更加注意。
数据类型之间的转换有两种:
1.自动类型转换(隐式类型转换)
2.强制类型转换(显式类型转换)
表达式的数据类型自动提升:
所有的byte型,short型和char型的将自动提升为int型;
如果一个操作数是long型,那么计算结果也是long型;
如果一个操作数是float型,那么计算结果也是float型;
如果一个操作数是double型,那么计算结果也是double型;
我们看出占内存小的自动提升为占内存大的数据类型。
而当我们要把占内存大的数据类型转换成占内存小的数据类型时必须要强制转换,当然有可能造成精度降低或溢出,所以在使用时一定要格外注意。
下面我们直接看一段代码,体验一下数据转换中的一些细节。
class VarDemo2 { public static void main(String[] args) { int x = 3; x = x + 5;//运算两端必须同类型,一般情况下不同类型是不能运算的 byte b = 5; x = x + b;//特殊情况下,两端为数值型,类型会自动提升,以占用内存比较大的为主,占用内存小的类型自动提升 byte b1 = 3; //b1 = b1 + 4;//错误:不兼容类型:从int转换成byte可能会有损失.这里的4是int类型的,相加,b1会自动提升,4个字节存储,不能附值给1个字节的b1 b1 = (byte)(b1 + 4);//强制转换 System.out.println(b1); b1 = (byte)(b1 + 200);//强制转换 System.out.println(b1); System.out.println('a' + 1);//结果是98,计算机里面全部是二进制,01100001对应a(二进制和生活中文字对应关系表,也就是编码表,全称ASCII) System.out.println((char)('a' + 1));//b System.out.println('你' + 0);//中文对就的是gb2312或者GBK unicode是国际标准码表 System.out.println('0' + 0); byte b2 = 4;//4还是int类型,在附值过程中会自动检测,并强制转换类型 b2 = 3 + 7;//这个编译通过,因为3和7是常量,是确定的,可以自动检测 byte b3 = 3; byte b4 = 7; //b2 = b3 + b4;//这个编译通不过,因为b1和b2是变量,这两值不确定,不能自动检测,报错说丢失精度 int x0; int x1 = Integer.MAX_VALUE;//这个是取int范围的最大值 int x2 = 2; x0 = x1 + x2; System.out.println(x0);//超出int范围 } }
结果如下:
从结果我们很清楚的看到不同数据类型之间的转换结果,以及数据类型的范围溢出等细节问题,在以后的学习中更加注意。
相关文章推荐
- MySQL中的integer 数据类型
- MySQL 数据类型
- Ruby中的变量学习总结
- PostgreSQL教程(四):数据类型详解
- 详解Lua中的变量相关知识点
- Lua学习笔记之数据类型
- 实现Lua中数据类型的源码分享
- Lua数据类型介绍
- SQL 研究 相似的数据类型
- dos批处理文件中的变量小结
- 探索PowerShell(七) PowerShell变量
- VBScript教程 第四课VBScript变量
- 关于SQL 存储过程入门基础(基础知识)
- 详解SQLite中的数据类型
- perl 变量 $/ 的用法解析 上下文为行模式时,$/ 定义以什么来区分行
- PowerShell中使用GetType获取变量数据类型
- c# 数据类型占用的字节数介绍
- VBS教程:VBScript 基础-VBScript 变量
- C#难点逐个击破(6):C#数据类型与.net framework数据类型
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)