首页 / JAVA / java 中的基本数据类型
java 中的基本数据类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java 中的基本数据类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3292字,纯文字阅读大概需要5分钟。
内容图文
![java 中的基本数据类型](/upload/InfoBanner/zyjiaocheng/856/c2895a1ac8d34e6dba13017cadd10886.jpg)
1, 变量
Java是强类型语言, 对于每一种数据都定义了类型,基本数据类型分为数值型,字符型,布尔型。数值型又分为了整型和浮点型。
整型又分为byte, int, short long.
浮点型又分为了float 和double.
字符型是char 类型, 一般不用。
布尔型是boolean, 取值为 true 和 false.
由于强类型,java在声明变量的时候,必须指定数据类型。Type variable, 比如int num; 当这个变量进行赋值的时候,也必须是相同的数据类型, 必须变为num 赋组一个int 型,如num = 5; 变量的使用一定要注意数据类型。
2, 常量
常量也有类型,但是我写了个123,没有给它定义数据类型啊,它是什么数据类型? 对于常量来说,它采用的是默认数据类型。对于整数来说,默认类型为int, 小数的默认类型则是double. 字符类型为char等。但对于采取默认类型来说,整型和浮点型又有所不同。
当我们写一个整数字面量的时候,这个字面量默认是int 类型,但是,它也可以赋值给byte 和short 类型,只要不超过byte 类型和short 类型取值范围。当然,这个整型字面量也可以赋值给long. 以下三种写法都不会报错。
byte b = 2; short s = 5; long l = 10;
但对于浮点数就有所不同,写一个浮点数,默认是double , 它就不能赋值float.
float f = 3.14;
它会报错,报错的原因是,我们正在把一个double类型的值赋值给一个float类型,而float类型的精度比double类型小,所以报错了,损失精度了。所谓的精度,就是小数点后有几位小数,对于float类型来说,它小数点后面有6-7位小数,而对于double类型来说,它小数点后面有15位小数,所以double类型比float类型精度高。又由于15是 7的两倍多,所以float称为单精度浮点型, double称之为双精度浮点型。那怎么办,就不能把常量赋值给float 类型了?也可以,不过要对这个常量进行标识,给它加个后缀f,表示它是一个float类型。像下面这样就没有问题了。
float f = 3.14f;
这又让我想到了整数long型, 我们都知道long类型的取值范围比int 类型大,如果是一个特别大的整数,我们就把它赋值给long. 但是你会发现报错了。
long l = 100000000000;
超出了整型int 的最大取值范围, 数值字面量默认是int 类型,太大就超出了。那怎么才能赋给long,也要在后面加一个标识 L ,
long l = 100000000000L;
对于这种很大的数值,JDK7 还提供了一种便利,可以在各个数字间添加_ , 这样我们一看就可以知道这个数值多少了。
long l = 100_000_000_000L;
3,运算
首先要记住一点,对于java 的强类型来说,运算两端一定要数据类型相同,如果数据类型不同,是无法进行计算的。一个数值类型,是无法和一个布尔类型进行计算。但数值类型自己除外,因为它会自动类型的提升,就是把小类型转化成大类型,大小主要指的是类型的取值范围,byte 就是小类型,int 就是大类型。byte 类型 + int类型,结果就会转化为int 类型。这个法则应用到字面量默认类型时,容易引发错误
byte b = 4; b = b+3;
就会报错。计算时,先计算右边b+3; b 是一个byte类型,3是int 类型(默认类型), 那就是byte 类型 + int类型,就把byte类型转化成int类型然后再进行计算,计算结果是int 类型的数字7,最后进行赋值运算,把int类型赋值给byte 类型,肯定报错了。这时如果必须要这么做,让计算成立,那要用到强制类型转换, 把int 型转化成byte.
强制类型转换则是在要转换的数据前面加上它要转换成的类型,如 byte b = (byte) 4, 就是把int 类型的4 转换成了byte类型,byte一定要用括号括起来。上面操作 byte b = (byte) b+3; 就没有问题了。但是强制类型转换最大的问题是丢失数据,因为它的工作原理是舍弃高位,这里的位是二进制位。int 类型的数据在内存中占32位,如 int 4 在内存中的表示是 00000000 00000000 00000000 00000100,而byte 类型在内存中只占8个字节, 把int 类型转换成byte 类型,就要把前面24个字节全部舍弃, 00000000 00000000 00000000 00000100 变成 00000100, 如果前面24个二进制位有数据,那就舍弃了,肯定丢失数据了,所以在真正的程序中很少用到强制类型转换。
内容总结
以上是互联网集市为您收集整理的java 中的基本数据类型全部内容,希望文章能够帮你解决java 中的基本数据类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。