基本数据类型一共有八种,分为四类:整型、浮点型、字符型以及布尔型。
一、整型
整型包含byte、short、int、long四种。如果按大小排序的话:byte<short<int<long。
其中byte规定的保存范围为-128~127,int规定的保存范围为-2147483648~2147483647。如果将一个整型常量赋值给一个long类型的变量,常量后要加l或L(或者在常量前加上(long))来表明这是一个long类型的数据。
如果在byte或者int的最大值加1或者最小值减1,最大值就会变成最小值或者最小值会变成最大值。这就是数据的溢出。如果要解决这个问题,我们就需要扩大数据的类型进行数据的存储。这就涉及到了数据类型的转换原则:
1、小数据类型转换成大数据类型属于自动类型转换
public class IntDemo02
{
public static void main(String[]args){
//1 取得int类型最大保存范围
int max=Integer.MAX_VALUE;
//获得最小值
int min=Integer.MIN_VALUE;
//在int类型最大再加1
System.out.println(max+(long)1);//2147483647
System.out.println(min(long)1);//-2147483648
}
}
2、大数据类型转换成小数据类型需要强制类型转换public class IntDemo03
{
public static void main(String[]args){
// 1 声明一个long类型的number变量 把一个常量10 赋值给long的类型number
long number=2147483648L;
int result=0;
result=(int)number;
System.out.println(result);
}
}
3、byte的保存范围是-128~127,在其范围内,一个整形常量赋值给byte类型的变量,例如10,则不需要强制类型转换也可以编译成功。但是超过这个范围则需要强制类型转换,但是数据会溢出。
如果定义了一个int类型的变量要赋值给byte类型的变量,即使变量值在byte限制的范围内,也需要强转,否则也会编译失败。
二、浮点型
浮点型包括float和double两种类型,其中double的精度大于float的精度。
在给float类型变量赋值时,需要在常量后面加f来表明这是一个浮点型常量,否则默认为double类型,这样的话需要强转才可以解决问题。
三、字符型
字符型用char关键字来表示,而在java中定义一个字符需要用两个单引号 ' ' 来表示。
char型可以与int型相互转换,因为每一个字符在ASCII码中都有对应的int型数据表示,下面的代码就是将'a'这个字母转换成int类型的数据并且打印出来:
public class CharDemo01
{
public static void main(String[]args){
char c='a'; //定义了一个字符
//a的ASCII值是97
int y=c; // 把char类型赋值int类型
System.out.println(y);
}
}
四、布尔型
布尔型用boolean关键字来表示,boolean型主要用于逻辑判断,其取值范围是true和false。
五、基本数据类型变量的默认值
在类中定义的变量,如果没有赋初始值,在方法中调用时就会有一个默认值,其中:
整型变量的默认值是0,浮点型变量的默认值是0.0,字符型变量默认值为/u0000,布尔型变量的默认值为false。
注:在方法中定义的临时变量如果要使用,一定要赋初始值,否则将会报错。