Java-Day1-数据类型

来源:互联网 发布:豆瓣fm mac 编辑:程序博客网 时间:2024/06/05 14:41

一、整型

整形分为byte,short,int,long类型

byte占1个字节,即2^8位(256位),表示-128-127.

short占2个字节,即2^16位(65536位),表示-32768-32767.

int占4个字节,即2^32位,约表示正负21亿。

long占8字节,2^64位......


不同的类型只可表示对应范围的数值,若超出范围则会报错

但是声明long类型时需要在字符后面加“l”或“L”,否则若字符超出int类型大小则会报错


MyEclipse中可以用int 类型表示不同进制数,如 int a=10, int a=010, int a=0x10 ;

其中0开头的为8进制,0x开头为十六进制,控制台输出时默认输出十进制数,效果如上图所示。

如果要按进制输出则需要在输出时声明,如:a=10,system.out.println(Integer.toBinaryString(a));

其中Integer.toBinaryString为输出二进制,Integer.toOctalString为输出八进制,Integer.toHexString为输出十六进制。

(BigInteger可表示任意大的整数)


二、浮点型

浮点型分为double和float

float ,4字节

double ,8字节

相同的字节数但是浮点型所表示的大小要比整形大很多,甚至4个字节的float表示的范围比8个字节的long表示的范围还大。因为一个范围内整数的数量是一定的,而小数的数量是无穷的。

并且需要注意的是,浮点型在比较大小时是不准确的

如图:

因此尽量在比较大小时避免用浮点型,可用BigDecimal类型代替。


科学计数法表示,如314e2=31400,314e-2=3.14;


在初始化赋值时系统默认小数类型为double型,若float=3.15,则会报错,需要在字符后加F或f;


三、字符型

char型,2个字节,表示Unicode字符集

单引号修饰,如:‘A’,----------------不能“A”,双引号表示字符串   若要表示有特殊含义的字符需要加转义字符'/' 如:'/'' 输出单引号‘

char类型可直接当作整形进行操作,如char a='a'  int i=a+1;  此处a表示其ASCII码值;    但是int转为char类型需要强制类型转换,如char a=(char) i;


四、bool型

bool型,占1位,不是一个字节,一个字节占8位。

假设bool b=true; 则判断时可用if(b)或者if(b==true)  一定要双等号


五、类型转换

类型容量小的可自动转化为容量大的类型。容量大的类型需强制类型转换才可以转换为小容量类型,但int可在不超出目标类型容量的前提下自动转换为byte、short、char型。

基本转换规则如图:


类型转换中的向上转型问题:如:int i=10;long l=100; int c=i+l;此处会报错,因为l是long型,所以i+l时会自动转型为long型,复值给int型的c时则会报错。

另外若int i=10亿,int b=20;long c=i*b;此时会报错,因为int表示范围为21亿左右,两个int乘积依然为int型,赋值给long c时溢出,需要long c=(long)i*b;


1 0