Java中有8种数据类型来存储数值、字符和布尔型;
8种数据类型为:1、数值型:整数型(byte/short/int/long),浮点型:(float/double);2、字符型 3、布尔型
一、数值型
I、整型数据在Java中有三种表示形式:十进制,八进制(必须以0开头,例如:0123),十六进制(必须以0x或者0X开头)【十进制与八进制之间的转化详见我的另一篇文章“进制转换”】
在Java中根据内存的大小分为byte,short,int,long,如图表所示
数据类型 | 内存空间(8位等于1字节) | 取值范围 |
byte | 8位 | -128~127 |
short | 16位 | -32768~32767 |
int | 32位 | ... |
long | 64位 | ... |
II、浮点类型
数据类型 | 内存空间 | 取值范围 |
float | 32位 | 1.4E-45~3.4028235E38 |
double | 64位 | ... |
二、字符类型
I、char型
char型是用来存储单个的字符,占用16位(8位为一个字节)的内存空间,例如:'s'
II、转义字符
转义字符 | 含义 |
\ddd | 1-3位八进制数据所表达的字符,如\456 |
\dxxxx | 4位十六进制数据所表达的字符,如\0052 |
\' | 单引号字符 |
\\ | 反斜杠字符 |
\t | 垂直制表符,将光标移到下一个制表符的位置 |
\r | 回车 |
\n | 换行 |
\b | 退格 |
\f | 换页 |
三、布尔类型
布尔类型即逻辑类型(布尔型和整数型不能相互转换)
只有False和True两个值
接下来介绍数据之间的转换
首先数据转换如果是低精度类型向高精度类型转换则永远是成功的,而把高精度类型向第低精度类型转换则肯定会导致信息的流失,甚至是失败。
数据转换有两种形式:显式转换和隐式转换
一、显式转换(强制类型转换)
显式转换即强制类型转换,是将高精度的变量的值赋给低精度变量的值(高级类型向低级类型转换)
例如:int a = int(23.4)输出的结果就是23
二、隐式转换
低级类型向高级类型转换,系统会自动运行
例如:int x = 12;float y = x;输出的结果就是12.0
(按精度从低到高为byte<short<int<long<float<double)
代码:
public class Number{
public static void main(String[] args){
byte mbyte = 124;
short mshort = 32566;
int mint = 214748444;
long mlong = 9223372444444L;
long result = mbyte + mshort + mint + mlong;
System.out.print("结果是 " + result);
}
}
(Long的数值超过int的范围就得后缀L(要是大写,小写的l容易与1混淆))
结果是:
附:关于字节:
字节是计算机的数据量单位,在计算机中,数据只有0或1这种表现形式,这里的0或者1是数据点不是数字,一个0或者1是一位,规定8个位就是1个字节,用来表示常见的字母、符号和控制标记,1个位用来数据校验,7个位用来记录数据,按照规定1个英文字符就占用1个字节,1个汉字和汉字的标点符号就占用2个字节;总之1个字符占用一个字节。