任何一个数字常量(列如:30、100)那么都属于int类型的数据类型。即:在Java之中所有在设置的整数内容,默认情况下都是int型数据。
范例:int数据类型
和c++基本相同;
定义完后可以实现对变量的四则运算。
实际上变量与常量最大的区别只有一个:常量的内容是固定的,二变量的内容内容是可以改变的。
和c++基本相同。
每一种数据类型都有其对应的数据类型的保存范围。
范例:如果超过了int的最大值或最小值的结果
public class TestDemo{
public static void main(String args[]){
int max=Integer.MAX VALUE;//取出最大值
int min=Integer.MIN VALUE;//取出最小值
System.out.println(max);//2147483647
System.out.println(min);//-2147483647
//int变量+-int型常量=int型数据
System.out.println(max+1);//最大值加1:-2147483647
System.out.println(min-1);//最小值减1:2147483647
System.out.println(min-2);//最小值减2:2147483647
}
}
现在整个的代码变为了一种循环的形式,最大值如果继续增加就变为了最小值,随后一直向其次的最小值进行循环,反之最小值减1就变为了最大值。因为任何的数据的计算都是按照二进制进行的,第一位是符号位,而其它的31位是数据位
此种现象称为数据的溢出,那么如果想要去解决这种溢出的问题,就只能够通过扩大数据范围的方式来实现,那么比int范围更大的是long类型。
范例:扩大数据类型
public class TestDemo{
public static void main(String args[]){
int max=Integer.MAX VALUE;//取出最大值
int min=Integer.MIN VALUE;//取出最小值
System.out.println(max);//2147483647
System.out.println(min);//-2147483647
//int变量+-int型常量=int型数据
System.out.println(max+1L);//最大值加1:2147483648
System.out.println(min-(long)1);//最小值减1:-2147483649
System.out.println((long)min-2);//最小值减2:-2147483650
}
}
在程序的世界里,数据类型的转换有以下规律:
数据范围小的数据与数据范围大的数据进行数学计算的时候,自动向大的范围的数据类型转换后计算;
数据范围大的数据要变成数据范围小的数据,那么必须采用强制转换;
如果是常量进行强制转换,有两种是;常量标记(L、I),使用“(数据类型)”。
范例:将范围大的数据类型变为范围小的数据类型
如果将long变为int时所保存的数据超过了int的范围,那么依然会出现数据溢出的现象。
public class TestDemo{
public static void main(String args[]){
long num=214783650L
int x=(int)num;//把long变成int
System.out.println(x);
}
}
在整型数据之中,byte型数据是一个非常有用处的数据类型,首先对于byte型数据它的取值范围:-128~127之间。
范例:观察byte转换
public class TestDemo{
public static void main(String args[]){
int num=130;//此范围超过了byte定义
byte=(byte)num;//由int变为byte
System .out.println(x);
}
}
但是由于byte使用的特殊性,Java对其有了一些很好的改善。
范例:观察byte操作
public class TestDemo{
public static void main(String args[]){
byte num=100;
System.out.println(num);
}
}
虽然任何一个整数有属于int型,但是Java编译的时候,如果使用的数据变量类型为byte,并且设置的内容没在byte数据范围之内,那么就会自动的帮助用户实现数据类型的转换。反之,如果超过了,则依然会以int型为主。
提示:所有的变量在使用的时候一定不要去相信默认值,都设置具体内容
如果在方法里面定义的默认值是不起任何作用的。
public class TestDemo{
public static void main(String args[]){
int num;//没有默认值
num=0;//在使用此变量之前设置内容
System.out.println(num);
}
}
以上的操作形式是属于先定义一个变量num,但是此变量没有设置内容,而后设置了num变量的内容,最后再使用此变量,可是以上的代码如果在JDK1.4及其以前的版本那么是不可能编译通过的。