初识Java——Java基础数据类型
Java中的几种数据类型
1.整型
整型数据一共有4个数据类型,按照保存的范围大小分别为byte(包装类为Byte),short(包装类为Short),int(包装类为Integer),long(包装类为Long),它们分别占1个字节,2个字节,4个字节,8个字节。在Java中任何一个整型常量(如:30,77这样的数字),其默认的类型都是int型。
观察数据溢出问题
public class Text {
public static void main(String[] args) {
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println("最大值+1结果=" + (max+1));
System.out.println("最小值-1结果=" + (min-1));
}
}
运行结果
要解决数据溢出的问题,就只能通过扩大数据范围来实现,比int范围更大的是long数据类型,将int型转为long型有以下两种形式。
1.使用数字后加L或l(L的小写)一般推荐L,小写l不容易辨认容易看出1和大写字母I。
2.使用“(long)加变量名称”,如(long)a。
解决数据溢出
public class Text {
public static void main(String[] args) {
long max = Integer.MAX_VALUE;
long min = Integer.MIN_VALUE;
System.out.println("int型最大值+1结果=" + (max+1));
System.out.println("int型最小值-1结果=" + (min-1));
}
}
public class Text {
public static void main(String[] args) {
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println("int型最大值+1结果=" + (max+1L));
System.out.println("int型最小值-1结果=" + (min-1L));
}
}
通过以上两种方法都可以解决数据溢出问题,运行结果如下:
2.浮点型
浮点型描述的是小数,按照精度大小分别为float(包装类为Float),double(包装类为Double),它们分别占4个字节和8个字节。在Java中任何一个小数常量默认的类型都为double,但是由于计算机本身的二进制原因,计算机世界里没有一个小数是精准的,所以以后在描述小数时应使用精度高的double来定义。
观察整除法计算
public class Text {
public static void main(String[] args) {
int a = 5;
int b = 2;
System.out.println("计算结果= " + (a / b));
}
}
运行结果
由于使用的数据类型是int,在进行除法时只保留了整数位,要想解决这个问题就要将其中一个变量类型转化为float或double,在计算时另一个变量也会自动向上转型,最终才可以得出正确的结果。
解决除法中的小数点问题
public class Text {
public static void main(String[] args) {
int a = 5;
int b = 2;
System.out.println("计算结果= " + ((double)a / b));
}
}
结果正确
3.字符型
在计算机世界里,一切都已编码的形式出现。Java使用的使十六进制的Unicode编码,因此可以保存任意的文字和字母,在定义时使用char(包装类为Character)关键字来定义,占用2个字节。其中
大写字母的编码范围为:65(‘A’)- 90(‘Z’)
小写字母的编码范围为:97(‘a’)- 122(‘z’)
数字字符的编码范围为:48(‘0’)- 57(‘’9)
使用char保存汉字,以及查看汉字的中文编码
public class Text {
public static void main(String[] args) {
char a = '杰';
int b = a;
System.out.println("输出汉字:" + a);
System.out.println("汉字\'杰\'对应的中文编码为:" + b);
}
}
4.布尔型
布尔型是一种逻辑结果,只有两种取值“ture”表示真和“false”表示假,Java中并不存在“0”表示“false”,“1”表示“true”的说法,在定义时使用boolean关键字来定义,Java中并没有规定具体在jvm中占多少个字节。
boolean类型的使用
public class Text {
public static void main(String[] args) {
boolean flag = true;
if(flag){ //判断flag中的内容,如果为true运行if{}中的内容,如果为false运行else{}中的内容
System.out.println("flag中的类容为\'true\'");
}
else {
System.out.println("flag中的内容为\'false\'");
}
}
}
运行结果
定义每种类型的变量并输出
public class Text {
public static void main(String[] args) {
byte num = 2; //定义byte型变量
short num_1 = 7; //定义short型变量
int a = 10; //定义int型变量
long b = 11L; //定义long型变量
float c = 5.8F ; //定义float型变量
double d = 5.6 ; //定义double型变量
char e = 'e' ; //定义char型变量
boolean f = true ; //定义boolean型变量
System.out.println("输出byte型数据num=" + num); //输出byte型变量
System.out.println("输出short型数据num_1=" + num_1); //输出short型变量
System.out.println("输出int型数据a=" + a); //输出int型变量
System.out.println("输出long型数据b=" + b); //输出long型变量
System.out.println("输出float型数据c=" + c); //输出float型变量
System.out.println("输出double型数据d=" + d); //输出double型变量
System.out.println("输出char型数据e=" + e); //输出char型变量
System.out.println("输出boolean型数据f=" + f); //输出boolean型变量
}
}
运行结果