java溢出问题_Java溢出问题.doc

Java溢出问题

1、JAVA常把整数常量的数据类型均视为int型,因此,如果在程序中使用了超过2147483647这个大小的常量

编译时将发生错误,如:

2、Java提供的整数的最大值与最小值的标识符及常量值。

范例:

public class test3 {

public static void main(String[] args) {

long long_max=java.lang.Long.MAX_VALUE ;//得到长整形的最大值

int int_max=java.lang.Integer.MAX_VALUE;//得到整形的最大值

short short_max=java.lang.Short.MAX_VALUE;//得到短整形的最大值

byte byte_max=java.lang.Byte.MAX_VALUE;//得到BYTE型的最大值

System.out.println("LONG的最大值: "+long_max);

System.out.println("INT的最大值: "+int_max);

System.out.println("SHORT的最大值: "+short_max);

System.out.println("BYTE的最大值: "+byte_max);

long long_min=java.lang.Long .MIN_VALUE;

int int_min=java.lang.Integer.MIN_VALUE;

short short_min=java.lang.Short.MIN_VALUE;

byte byte_min=java.lang.Byte.MIN_VALUE;

System.out.println("LONG的最小值: "+long_min);

System.out.println("INT的最小值: "+int_max);

System.out.println("SHORT的最小值: "+short_max);

System.out.println("BYTE的最小值: "+byte_max);

System.out.println("float_max="+java.lang.Float.MAX_VALUE);

System.out.println("float_min="+java.lang.Float.MIN_VALUE);

System.out.println("double_max="+java.lang.Float.MAX_VALUE);

System.out.println("double_min="+java.lang.Float.MIN_VALUE);

}

}

结果:

LONG的最大值: 9223372036854775807

INT的最大值: 2147483647

SHORT的最大值: 32767

BYTE的最大值: 127

LONG的最小值: -9223372036854775808

INT的最小值: 2147483647

SHORT的最小值: 32767

BYTE的最小值: 127

float_max=3.4028235E38

float_min=1.4E-45

double_max=3.4028235E38

double_min=1.4E-45

数据的溢出

当最大值加上1时,结果反而变成表示范围中的最小值;

当最大值加上2时,结果反而变成表示范围中次小的值;这就hi数据类型的溢出。

如:范例

package C3;

public class test5 {

public static void main(String[] args) {

int x=java.lang.Integer.MAX_VALUE;//声明整型变量X,并赋值为整数最大值,即2147483647

System.out.println("x="+x);

System.out.println("x+1="+(x+1));//发生溢出,运行结果变为-2147483648

System.out.println("x+2="+(x+2));

System.out.println("x+2="+(x+2L));//用强制类型进行了转换,为避免溢出发生,在表达式常量部分2后加L

System.out.println("x+3="+(x+3));

System.out.println("x+3="+(long)x+3);//用强制类型进行了转换,为避免溢出发生,在表达式整数部分X前加上long

}

}

结果:

x=2147

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值