整型类型
在java中任意一个整形类型都是int型.
在整型的操作的过程中也会存在有一个数据溢出的问题,指的是当已经达到整型的最大值或最小值,进行数学计算而可能产生的错误数据.
变量的命名使用小驼峰法:maxValue;
Integer.MAX_VALUE;最大值
Integer.MIX_VALUE;最小值
public class Intyichu{
public static void main(String args[]){
int num = Integer.MAX_VALUE;//最大值
System.out.println(num + 1);//溢出,加一变为最小值
}
}
解决int溢出问题,解决方案只有一个那就是跟换数据类型,使用long类型.
- 将int的数据变量赋值给long类型再计算
public class Intyichu{
public static void main(String args[]){
int num = Integer.MAX_VALUE;//得到整形最大值
long result = num;//将其赋给long数据类型
System.out.println(result + 1);//这样就不会存在数据溢出的问题了
}
}
- 将int的数据类型变为long
public class Intyichu{
public static void main(String args[]){
int num = Integer.MAX_VALUE;//得到整形最大值
long result = (long)num + 1;//先将其变为long数据类型
System.out.println(result);//这样就不会存在数据溢出的问题了
}
}
大的数据类型塞到小类型里面:
public class Intyichu{
public static void main(String args[]){
//任何的整数其默认类型都是int,但是该数据已经超过了int可以保存的数据范围
//那么现在就需要将这个数据明确的表示这是个long型的
long num = 2147483648L ; //'L'或'l'都可以
//在强制的时候设置其目标类型,这种操作都有可能会丢失其精度
int result = (int)num;//大的类型变为小的类型,必须强制
System.out.println(result);//-2147483648
}
}
- 范围小的数据类型可以自动变为大的数据类型型
- 数据范围大的数据类型只有强制转换才可以转换为小的数据类型
- 尽量不要使用以上操作
public class Intyichu{
public static void main(String args[]){
int num ;//定义一个num变量
System.out.println(num);//错误,可能尚未初始化
}
}
两种解决方案:
- 在变量输出前为变量设置内容
public class Intyichu{
public static void main(String args[]){
int num ;//定义一个num变量
num = 10;//在输出前为其设置内容
System.out.println(num);//错误,可能尚未初始化
}
}
这种方式在老版本中也会出错.
- 通用做法
public class Intyichu{
public static void main(String args[]){
int num = 10;//在输出前为其设置内容
System.out.println(num);//错误,可能尚未初始化
}
}
说到整型,不得不去考率byte数据类型,他的保存范围是:-128~127之间。
范例:声明byte类型
public class Intyichu{
public static void main(String args[]){
//10是int,int的范围要大于byte范围,那么理论上需要强制转换
//可是没有转换,因为其数据量没有超出byte范围,符合byte要求
byte data = 10 ;//10是int类型在byte范围内
System.out.println(data) ;
}
}
如果现在你为byte赋值的内容大于byte的范围,这个时候就需要强制转换了。
public class Intyichu{
public static void main(String args[]){
byte data = (int)128 ;
System.out.println(data) ;//-128
}
}
同时需要注意的是,如果要将int常量直接赋值给byte变量,那么要求只能够是常量,而不能是int变量。
错误实例:
public class Intyichu{
public static void main(String args[]){
Int num = 10;
byte result = num;
System.out.println(result);
}
}
正确实例:
public class Intyichu{
public static void main(String args[]){
Int num = 10;
byte result =(byte) num;
System.out.println(result);
}
}
在开发中,byte和int经常会一起出现。