整数类型(byte、short、int、long)
浮点类型(float、double)
字符型 char
布尔型 boolean
1.整数类型
整数类型是用来存储整数(没有小数部分)数值的,可以是正数,也可以是负数。整数数据根据它所占内存大小的不同,可分为byte、short、int和long这4种类型,不同数据类型有不同的取值范围,如表所示:
数据类型 | 内存空间(8位等于1字节) | 取值范围 |
byte | 8位 | -128~127 |
short | 16位 | -32768~32767 |
int | 32位 | -2147483648~2147483647 |
long | 64位 | -9223372036854775808~9223372036854775807 |
(1)定义int型变量,代码如下:
public class JavaDemo {
public static void main(String[] args) {
//int 变量名称 = 常量
int x = 10;
//整数类型为int,变量名称为x,常量为10
System.out.println(x);
//输出int型变量x
System.out.println(x * x);
//int型变量 * int型变量 = int型数据
}
}
代码运行结果:
10
100
(2)任何数据类型都有其取值范围,如果超出了其取值范围,那么将出现有循环的问题,这些问题在Java中被称之为“数据溢出”。
实例:由int数据类型引发的数据溢出问题。
public class JavaDemo {
public static void main(String[] args) {
int max = Integer.MAX_VALUE;
//获取int的最大值
int min = Integer.MIN_VALUE;
//获取int的最小值
System.out.println("int的最大值为:" + max);
System.out.println("int的最小值为:" + min);
System.out.println("=====以下为int数据溢出的情况=====");
System.out.println("int的最大值+1的结果为:" + (max + 1));
//最大值 + 1 = 最小值
System.out.println("int的最大值+2的结果为:" + (max + 2));
//最大值 + 2 = 次最小值
System.out.println("int的最小值-1的结果为:" + (min - 1));
//最小值 - 1 = 最大值
System.out.println("int的最小值-2的结果为:" + (min - 2));
//最小值 - 2 = 次最大值
}
}
代码运行结果:
int的最大值为:2147483647
int的最小值为:-2147483648
=====以下为int数据溢出的情况=====
int的最大值+1的结果为:-2147483648
int的最大值+2的结果为:-2147483647
int的最小值-1的结果为:2147483647
int的最小值-2的结果为:2147483646
2.浮点类型
浮点类型表示有小数部分的数字,Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),它们也具有不同的取值范围,如表所示:
数据类型 | 内存空间 | 取值范围 |
float | 32位 | 1.4E-45~3.4028235E38 |
double | 64位 | 4.9E-324~1.7976931348623157E308 |
说明:1.4E-45 表示:1.4乘以10的-45次方。
(1)定义double 型和float 型变量,代码如下:
public class JavaDemo {
public static void main(String[] args) {
double x = 10.2;
float y = 10F;
double result = x * y;
//double类型 * int类型 = double类型
System.out.println(result);
}
}
代码运行结果:
102.0
注意:小数默认看作double型,若使用float型小数,则需要在小数后面加上F或 f。
3.字符类型
字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示,如 's' 表示一个字符,而 "s" 则表示一个字符串,虽然只有一个字符,但由于使用双引号,它仍然表示字符串,而不是字符。(另外,Java语言使用的是unicode编码,这种编码可以存储65526个字符;所以Java中的字符几乎可以处理所有国家的语言文字)
(1)定义一个字符型变量,代码如下:
public class Test {
public static void main(String[] args) {
char ch = 'A';
System.out.println(ch);
}
}
代码运行结果:
A
(2)在任何编程语言中,字符都可以与 int 进行互相转换,Java语言也不例外。
public class Test {
public static void main(String[] args) {
char ch = 'B';
int num = ch;
System.out.println(num);
}
}
代码运行结果:
66
(3) 注意:大小写字母的编码是有范围的。
大写字母范围: 'A'(65)~'Z'(90); A编译执行的结果是65 ,Z编译执行的结果是90.
小写字母范围: 'a'(97)~'z'(122); a编译执行的结果是97 ,z编译执行的结果是122.
通过编码范围可以发现大小写字母之间差了32个数字的长度,于是就可以实现字母大小写的转换处理,程序代码如下:
public class Test {
public static void main(String[] args) {
char c = 'x';
int num = c;
num -= 32;
// num -= 32等价于num = nun - 32
System.out.println((char) num);
}
}
代码运行结果:
X
4.布尔类型
布尔类型又称逻辑类型,通过关键字boolean来定义布尔类型变量,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中。
范例:
public class Dream {
public static void main(String[] args) {
int x = 30;
int y = 40;
boolean max = x > y;
//判断x和y的大小关系,x大于y输出true,否则输出false
System.out.println(max);
}
}
代码运行结果:
false