Java数据类型
1、整型
byte 、short 、int 、long
2、浮点型
float 、 double
3、字符型
char
4、布尔型
boolean
数据类型详细介绍
整型(byte、short、int、long)
虽然byte、short、int、long 数据类型都是表示整数的,但是它们的取值范围可不一样。
byte 的取值范围:-128~127(-2的7次方到2的7次方-1)
short 的取值范围:-32768~32767(-2的15次方到2的15次方-1)
int 的取值范围:-2147483648~2147483647(-2的31次方到2的31次方-1)
long 的取值范围:-9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)
由上可以看出 byte、short 的取值范围比较小,而long的取值范围时最大的,所以占用的空间也是最多的。int 取值范围基本上可以满足我们的日常计算需求了,所以 int 也是我们使用的最多的一个整型类型。
浮点型(float、double)
float 和 double 都是表示浮点型的数据类型,它们之间的区别在于精确度的不同。
float(单精度浮点型)取值范围:3.402823e+38~1.401298e-45(e+38 表示乘以10的38次方,而e-45 表示乘以10的负45次方)
double(双精度浮点型)取值范围:1.797693e+308~4.9000000e-324(同上)
double 类型比float 类型存储范围更大,精度更高。
通常的浮点型数据在不声明的情况下都是double型的,如果要表示一个数据时float 型的,可以在数据后面加上 "F" 。
浮点型的数据是不能完全精确的,有时候在计算时可能出现小数点最后几位出现浮动,这时正常的。
字符型(char)
char 有以下的初始化方式:
char ch = 'a'; // 可以是汉字,因为是Unicode编码
char ch = 1010; // 可以是十进制数、八进制数、十六进制数等等。
char ch = '\0'; // 可以用字符编码来初始化,如:'\0' 表示结束符,它的ascll码是0,这句话的意思和 ch = 0 是一个意思。
Java是用unicode 来表示字符,“中” 这个中文字符的unicode 就是两个字节。
String.getBytes(encoding) 方法获取的是指定编码的byte数组表示。
通常gbk / gb2312 是两个字节,utf-8 是3个字节。
如果不指定encoding 则获取系统默认encoding 。
布尔型(boolean)
boolean 没有什么好说的,它的取值就两个:true 、false 。
//八大基本数据类型
//整数
int num1=10;
byte num2=20;
short num3=30;
long num4=30L;
//小数
float num5=50.1F;
double num6=3.1415926;
//字符
char sex1='男';
//String sex2="男生"; 不是数据类型,是引用类型。
//布尔值:是非
boolean flag=false;
//boolean flag=true;默认值为false
扩展
- 位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数。
- 字节(byte):是计算机中数据处理的最基本单位,习惯上用大写B来表示。
- 1B(byte,字节)=8bit(位)。
- 字符:是指计算机中使用的字母、数字、字和符号。
- 不同的字符所占的字节是不同的
- ASCII码:
一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。
- UTF-8编码:
一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
- Unicode编码:
一个英文等于两个字节,一个中文(含繁体)等于两个字节。
- 1bit表示1位
- 1Byte表示一个字节 1B=8b
- 1024B=1KB
- 1024KB=1M
- 1024M=1G