首页 / JAVA / Java基础——数据类型
Java基础——数据类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java基础——数据类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2160字,纯文字阅读大概需要4分钟。
内容图文
![Java基础——数据类型](/upload/InfoBanner/zyjiaocheng/648/5d3282ba37234157af2849da4f9704a2.jpg)
数据类型
基本数据类型
JAVA中一共有八种基本数据类型:
byte、short、int、long、float、double、char、boolean
类型 | 类别 | 字节 | 取值范围 |
---|---|---|---|
byte | 整型 | 1byte | -27 ~ 27-1 |
short | 整型 | 2byte | -215 ~ 215-1 |
int | 整型 | 4byte | -231 ~ 231-1 |
long | 整型 | 8byte | -263 ~ 263-1 |
float | 浮点型 | 4byte | 3.402823e+38 ~ 1.401298e-45 |
double | 浮点型 | 8byte | 1.797693e+308~ 4.9000000e-324 |
char | 文本型 | 2byte | 0~216-1 |
boolean | 布尔型 | 1byte | true/false |
要点:
- 整数值默认为int类型
- 小数默认是double类型
- 浮点型的数据是不能完全精确的
??Java虚拟机中所支持的与数据类型相关的字节码指令中,大部分都没有支持整数类型的byte、char、和short,甚至没有任何指令支持boolean类型。编译器会在编译期或运行期将byte和short类型的数据带符号扩展为相应的int类型数据,将boolean和char类型数据零位扩展为相应的int类型数据。与之类似的,在处理Boolean、byte、short、和char类型的数组时,也会转换为使用对应的int类型的字节码指令来处理。因此,大多数对于Boolean、byte、short、和char类型的数据操作,实际上都是使用相应的int类型做为运算类型的(《深入理解Java虚拟机》第二版P198)
自动类型转换
要点:
- 两种类型是彼此兼容的
- 转换后的目标类型占的空间范围一定要大于被转化的源类型
- 数据类型自动提升
- 如果操作数其中有一个是double类型,两个操作数都转换为double类型
- 否则,如果其中一个操作数是float类型,两个操作数都转换为loat类型
- 否则,如果其中一个操作数是long类型,两个操作数都转换为long类型
- 否则,两个操作数都转换为int类型
public static void main(String[] args) { //编译时125,128都是int,编译的时候会检查是否超过byte的范围 //没有的话,编译器会自动转为byte byte a1 = 125; //超过了,编译期间就或报错 byte a2 = 128; byte b1 = 1; //表达式中只有常量则会进行常量折叠,等效于byte c1 = 2; byte c1 = 1+1; //计算时转换为int,int赋值给byte报错 byte c2 = b1+b1; //编译时99999999999999是int,编译的时候会检查是否超过long的范围 long d1 = 99999999999999; //超过了,则会报错 //计算时,整数都默认为int,除非加了L后缀表示为long类型 //结果为1410065408:错误,因为超过了int的范围,损失精度,再赋值给long类型时已经是错误的结果了 long d2 = 1000*1000*1000*10; //结果为10000000000:正确,因为有个10L,将整个表达式提升为long类型 long d3 = 1000*1000*1000*10L; //结果为1410065408:错误,因为在类型提升之前,计算结果就已超过了int的范围,损失精度,再赋值给long类型时已经是错误的结果了 long d4 = 1000*1000*1000*10*1L; }
强制类型转换
内容总结
以上是互联网集市为您收集整理的Java基础——数据类型全部内容,希望文章能够帮你解决Java基础——数据类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。