Java基本数据类型
Java中有8种基本数据类型来储存数值、字符和布尔值。
数值型包括以下二种:
整数类型(byte、short、int、long)
浮点类型(float、double)
基本数据类型:数值型6种、字符型1种、布尔型1种
整数类型
整数类型用来存储整数数值,指没有小数部分的数值,可以是正数,也可以是负数。
整型数据根据它在内存中所占空间大小的不同,可分为byte、short、int和long型 4种类型。
bit (比特)是二进制数的一位,包含2个选项中特别指定1个的需要信息量。
Byte (字节)是数据存储的基础单位,1Byte又称为一个字节,用一个字节( Byte )储存,可区别256个数字(一个数字是1bit,而一个汉字为2个 bytes )。
bit 和 Byte 的区别
1.容量大小不同:1Byte等于8bits,一个字节由8个比特位组成
2.存储数据类型不同: 每一 bit 可以代表0或1的数位信号。一个 Byte 由8 bits 所组成,可代表一个字元( A-Z )、数字(0-9)、或符号(,.?!%&±*/),是储存信息的基本单位,每个中文字则须要两Bytes 。
整型数据类型
数 据 类 型 内存分配空间 取 值 范 围
byte 1字节 8位 -128~127,2^7
short 2字节 16位 -32768~32767,2^15
int 普通 4字节 32位 -2147483648~2147483647,2^31
long 8字节 64位 ,2^63
给变量赋值时,注意取值范围,否则超出相应范围就会出错。
4种整型数据类型
1. int型
int x; //声明int型变量x
int x,y; //同时声明int 型变量x,y
int x = 10,y = -5; //声明 int 型变量x,y并赋予初值
int x = 5+23; //声明int型变量x,并赋予公式(5+23)计算结果的初值
int型变量在内存中占4字节,也就是32位 bit,在计算机中 bit 是用0和1来表示的,所以int 5 在计算机中这样显示:
00000000 00000000 00000000 00000101
int 是Java 整型值的默认数据类型,当代码使用整数赋值或输出时,都默认为int。
System. out. println(15+20); //输出 35
2. byte 型,在于一个字节8位存储空间,作为数值型,有范围限制,-128-127;1表示负,0表示正。
声明byte类型变量:
byte a;
byte a,b,c;
byte a = 19,b = ~45;
byte a = 19-5;
3. short型
short型存储空间比int 型存储空间小一倍,有2个字节。
short s;
short s,t,r;
short s = 1000,t = ?19;
short s = 20000/10;
4. long 型
long 型的取值范围比 int型大70000倍,存储空间大于2倍,在赋值的时候要和 int 做出区分,需要在整数后面加L或者1,小写L与1易混浠,一般用大写L。否则默认int,超范围会出错。
声明long类型变量:
long number;
long number, rum;
long number = 123456781, rum = -987654321L;
long number = 123456789L* 987654321L;
int 是Java的默认整数类型,如果给 long类型赋值时,没有添加L或1标识,则会按照int型进行赋值:long number=123456789 * 987654321; //错误的long 型赋值方式,没有L或1标识,int运算不可能有Long型存储空间,必须是Long型运算。
int a = 123456789;
int b = 987654321;
int c=a*b; //如果a*b的值超过-2147483648~2147483647 范围,则c 的值就是错误的,限定在±21亿左右,否则为long型出错。运算高位整数可匹配低位整数。赋值短位数可赋长位数。
long right=123456789L*987654321L; //正确的赋值方法
long wrong=123456789*987654321; //错误的赋值方式,没有L或1标识,long运算必为long型间运算。
System. out. println("正确的计算结果是 "+right);
System. out. println("错误的计算结果是 "+wrong);
错误赋值会导致错误的结果。
整型数据在Java程序中有3种表示形式,分别为十进制、八进制和十六进制。
十进制: 如 120、0、-127。
不能以0作为十进制数的开头(0除外)。
八进制:如0123(转换成十进制数为 83)、-0123(转换成十进制数为-83)。
注意:八进制必须以0开头。
十六进制: 如0X25(转换成十进制数为37)、0Xb01e(转换成十进制数为45086)。从0-1,A,B,C,D,E,F(0-15)
注意:
十六进制必须以0X 或0x开头。
给 int 型变量按照十进制、八进制、十六进制赋值。public class Radix{
public static void main(String[] args) {
int a = 21; //十进制整型
System. out. println(a); //输出十进制表示的整型值
int b = 031; // 八进制整型
System. out. println(b); // 输出八进制表示的整型值
int c = 0x11; // 十六进制整型
System. out. println(c); // 输出十六进制表示的整型值
}
}
转换对应的十进制值
“077”:7*8+7=63
“001”0*8+1=1
“OxFF”:15*16+15=255