10.整形数据类型

java整型包括:byte/short/int/long
java语言整数型常量有三种表示方法:
十进制
八进制:八进制以0开头,如013
十六进制:十六进制0x开头 如0x23
java语言整数型默认为int类型,如果要声明=成long类型在变量值后加入L,如:long 1=999999999L;


int i4 =100;//将一个int类型100字面值赋给i4变量

//将一个int类型的123字面值赋给long类型的i1
//int 类型容量小于long类型
//以下程序存在类型转换,只不过叫"自动类型转化"
long i2=123;

 

//由于123后面有一个L,所以上来就会把123看做long类型,
//所以以下类型不存在类型转化,只是一个普通的赋值运算
long i3 =123L;


//可以int类型-->long类型,自动转换
long i3=2147483647;


//程序将2147483648看做int类型,但是这个数据本身已经超出了int的取值范围。
long i4=2147483648;//所以会报错因为是过大的整数

long i4=2147483648L;//这样不会报错。


public class DateTypeTest02{
public static void main(String[] args){
long i1=1000L;

//将long类型转换成int类型,不能自动类型转化;编译无法通过
int i1=11;

//需要强制转化;需要加强制转化符;加
//加强制转化符后,虽然编译通过了,但是程序在运行阶段可能损失精度,所以一定要谨慎使用
int i1=(int)i1;


//记忆一个规则,如果这个整数没有超出byte的取值范围,可以直接将这个整数赋值给byte类型
byte b1=10;
byte b2=127;//这两个都是可以通过的

byte b3=128;//128本身已经超出了byte的取值范围,所以会编译失败,此时应加强制类型转化符。

//如果整数本身没有超出short的取值范围,可以将这个证书直接赋值给short
short s1=32767;

//若果整数本身已经超出了short的取值范围,则无法编译通过,需要加强制类型转化符
short s2=short(32768);


//最后结论:如果整数没有超过byte,short,char的取值范围,可以直接将这个证书赋值给byte,short,char
char u1=97;
char u2=65535;

char u3=65536;


}
}

int 类型转换成long类型只要不超过int的取值范围就可以自动转换
超过了以后可以在后面加一个L就能正常转换了
但long类型转换成int类型必须用强制类型转换

 

posted @ 2017-04-01 11:19  Melvon  阅读(411)  评论(0编辑  收藏  举报