Java的基本数据类型介绍和简单的类型转换
Java属于强类型语言,而强类型数据语言指的是:
- 要求变量的使用要严格符合规定,所有变量都必须先定义后使用
一、数值类型
1.整数类型
- byte占1个字节范围:-128~127
- short占2个字节范围:-32768~32767
- int占4个直接范围:-2147483648~214783647
- long占8个字节范围:-9223372036854775808~9223372036854775807
2.浮点数类型
- float占4个字节
- double占8个字节
3.字符类型
- char占2个字节
二、类型转换
在运算中,不同的数据类型要先转换为同一类型,然后再进行运算。
而在转换的过程中有优先级的区别,由低到高为:
低···········································>高
byte,short,char-> int-> long-> float-> double
类型转换分为两种:
- 强制转换:由高到低,需要强制转换
- 自动转换:由低到高,不用强制转换
1、强制转换
如int转换byte:
看上图,如果没有加强制转换就会报错。下面加上强制转换
强制转换写法:
(需要转换后的类型) 需转换的类型
示例:int 转byte
int i =128;
byte f = (byte)i;
加上强制转换后
运行结果:
我们可以看到代码没有报错,并顺利运行。
结果为:
i = 128
f = -128
为什么f会等于-128呢?看代码f=128才对呀?
这是因为byte占1字节取值范围是-128~127,所以令f=128时内存溢出了。以后类型转换是尽量避免内存溢出。
2、自动转换
如int转double
代码:
运行结果:
由上可以看到低容量到高容量时不需要使用强制转换。
3、精度问题
浮点数转整数型时,得到的结果会是向下取整。
如:
代码:
结果: