在Java中有8种基本数据类型来存储数组、字符和布尔值。如下:
基本数据类型:数值型、字符型、布尔型。
数值型:整数类型(byte、short、int、long)、浮点类型(float、double)
整数类型
整数类型用来存储整数数值,即没有小数部分的数组。可以是正数,也可以是负数。整型数据在Java程序中有3种表形式,分别为十进制、八进制和十六进制。
十进制:十进制的表现形式大家都很熟悉,如120、0、-127。
注意:不能以0作为十进制数的开头(0除外)。
八进制:如0123(转换成十进制数为83)、-0123(装换成十进制数为45086)。
注意:八进制必须以0开头。
十六进制:如0x25(转换成十进制数为37)、0Xb01e(装换成十进制数为45086)。
注意:十六进制必须以 0X 或 0X 开头。
整型数据根据它所占内存大小的不同,可分为byte、short、int 和 long 4种类型。它们具有不同的取值范围,如下表所示:
数据类型 | 内存空间(8位等于1字节) | 取值范围 |
byte | 8位 | -128~127 |
short | 16位 | -32768~32767 |
int | 32位 | -2147483648~2147483647 |
long | 64位 | -9223372036854775808~9223372036854775808 |
下面以int型变量为例讲解整型变量的定义。
定义int型变量,实例代码如下:
int x; //定义int型变量x
int x,y; //定义int型变量x、y
int x = 450, y = -462; //定义int型变量x、y并赋给初值
在定义以上4种类型变量时,要注意变量的取值范围,超出相应范围就会出错。对于long型值,若赋给的值大于int型的最大值或小于int型的最小值,则需要在数字后加L或1,表示该数值为长整数,如long num = 2147483650L。
在项目中创建类Number,在主方法中创建不同数值型变量,并将这些变量相加,将和输出。
public class Number { //创建类
public static void main(String[] args){ //主方法
byte mybyte = 124; //声明 byte 型变量并赋值
short myshort = 32564; //声明 short 型变量并赋值
int myint = 45784612; //声明 int 型变量并赋值
long mylong = 46789451; //声明 long 型变量并赋值
long result = mybyte + myshort + myint + mylong; //获得各数相加后的结果
System.out.println("结果为:" + result); //将以上变量相加的结果输出
}
}
程序运行结果如图:
浮点类型
浮点类型表示有小数部分的数字。Java 语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),它们具有不同的取值范围,如表所示:
数据类型 | 内存空间(8位等于1字节) | 取值范围 |
float | 32位 | 1.4E-45~3.4028235E38 |
double | 64位 | 4.9E-324~1.7976931348623157E308 |
在默认情况下,小数都被看作double型,若使用float型小数,则需要在小数后面添加F或f。可以使用后缀d或D来明确表明这是一个double类型数据,不加d不会出错,但声明float型变量时如果不加f,系统会认为变量是double类型而出错。下面举例介绍声明浮点类型变量的方法。
定义浮点类型变量,实例代码如下:
float f1 = 13.23f;
double d1 = 4562.12d;
double d2 = 45678.1564;
字符类型
char型
字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示,如's'表示一个字符,而's'则表示一个字符串,虽然只有一个字符,但由于使用双引号,它仍然表示字符串,而不是字符。
使用char关键字可定义字符变量,下面举例说明。
声明字符型变量,实例代码如下:
char x = 'a';
由于字符a在unicode表中的排序位置是97,因此允许将上面的语句写成:
char x = 97;
同C和C++语言一样,Java语言也可以把字符作为整数对待。由于unicode编码采用无符号编码,可以存储65536个字符(0x0000~0xffff),所以Java中的字符几乎可以处理所有国家的语言文字。若想到一个0~65536之间的数所代表的unicode表中相应位置上的字符,也必须使用char型显式装换。
在项目中创建类Gess,编写如下代码,实现将unicode表中某些位置上的字符以及一些在字符在unicode表中的位置在控制台上输出。
public class Gess { //定义类
public static void main(String[] args){ //主方法
char word = 'd',word2 = '@'; //定义char型变量
int p = 23045,p2 = 45213; //定义int 型变量
System.out.println("d在unicode表中的顺序位置是:" + (int)word);
System.out.println("@在unicode表中的顺序位置是:" + (int)word2);
System.out.println("unicode表中的第23045位是:" + (char)p);
System.out.println("unicode表中的第45213位是:" + (char)p2);
}
}
运行结果如图所示:
转义字符
转义字符是一种特殊的字符变量,它以反斜杠 "\" 开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称"转义"。例如,printf函数的格式串中用到的"\n"就是一个转义字符,意思是 "回车换行"。Java中的转义符如表所示:
转义字符 | 含义 |
\ddd | 1~3位八进制数据所表示的字符,如\123 |
\uxxxx | 4位十六进制数据所表示的字符,如\u0052 |
\' | 单引号字符 |
\\ | 反斜杠字符 |
\t | 垂直制表符,将光标移到下一个制表符的位置 |
\r | 回车 |
\n | 换行 |
\b | 退格 |
\f | 换页 |
将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号。
使用转义字符,实例代码如下:
char c1 = '\\'; //将转义字符'\\'赋值给变量c1
char char1 = '\u2605'; //将转义字符'\u2605'赋值给变量char1
System.out.println(c1); //输出结果\
System.out.println(char1); //输出结果★
布尔类型
布尔类型又称逻辑类型,通过关键字boolean来定义布尔类型变量,只有true和false两个值,分别代表布尔逻辑中的"真" 和 "假"。布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中作为判断条件。
声明boolean型变量,实例代码如下:
boolean b; //定义布尔型变量 b
boolean b1,b2; //定义布尔型变量b1、b2
boolean b = true; //定义布尔型变量b,并赋值给初值true