常见的五种数据类型(今天了解一下基本数据类型)
常见的五种数据类型(今天了解一下基本数据类型)注意: 八进制必须以 0 开头。 说明:八进制的最大单个数字是 7 , 7 再加 1 就是 10 ,它和十进制的 8 是相等的。八进制的字面量包括“ 0 、 1 、 2 、 3 、 4 、 5 、 6 、 7 ”。例如, 0123 (转化成十进制数为 83 )、 -0123 (转化成十进制数为 -83 ) 注意: 不能以 0 作为十进制数的开头( 0 除外)。 八进制八进制的表现形式以最高位的数字0做区分,如果最高位不是0,那么Java将把它解释为十进制,否则解释为八进制。例如,0123(转化成十进制数为83)、-0123(转化成十进制数为-83)。
整数类型
整数类型用来存储整数数值,即没有小数部分的数值。整数类型可以是正数,也可以是负数。整型常量在Java程序中有3种表示形式,分别为十进制、八进制和十六进制。
十进制
十进制是Java语言默认的数制,所以使用正常的表示形式,例如,120、0、-127、3
注意: 不能以 0 作为十进制数的开头( 0 除外)。
八进制
八进制的表现形式以最高位的数字0做区分,如果最高位不是0,那么Java将把它解释为十进制,否则解释为八进制。例如,0123(转化成十进制数为83)、-0123(转化成十进制数为-83)。
说明:八进制的最大单个数字是 7 , 7 再加 1 就是 10 ,它和十进制的 8 是相等的。八进制的字面量包括“ 0 、 1 、 2 、 3 、 4 、 5 、 6 、 7 ”。例如, 0123 (转化成十进制数为 83 )、 -0123 (转化成十进制数为 -83 )
注意: 八进制必须以 0 开头。
十六进制
十六进制的表现形式是在数的最高位添加“0x”标识,其中“x”字符不区分大小写。例如,0x25(转化成十进制数为37)、0Xb01e(转化成十进制数为45086)。
图1 实例的运行结果
浮点类型
浮点类型表示有小数部分的数字,Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double)。它们具有不同的取值范围,如表1所示。
浮点型数据类型
数据类型
内存空间(8位等于1字节)
取值范围
float 32位 1.4E-45~3.4028235E38
double 64位 4.9E-324~1.7976931348623157E308
Java语言默认使用double双精度类型的浮点数,就像int是默认的整数类型一样。如果将实数赋值给float类型的变量,则需要在实数末尾添加F或f作为后缀,否则被认为是double类型数值。
例 定义浮点类型变量,代码如下:
double sum=3799.39; // 双精度是默认浮点类型
double length=156.34D; // 双精度可以添加D标识
float price=34.50F; // 单精度需要添加F标识
double length1=156.34d; // 双精度可以添加d标识
float price1=34.50f; // 单精度需要添加f标识
System.out.println("sum=" sum); //输出结果为:sum=3799.39
System.out.println("length=" length); //输出结果为:length=156.34
System.out.println("price=" price); //输出结果为:price=34.5
System.out.println("length1=" length1); //输出结果为:length1=156.34
System.out.println("price1=" price1); //输出结果为:price1=34.5
字符类型
1.char型
字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示,例如 's' 表示一个字符。而 "s" 则表示一个字符串,虽然它只有一个字符,但由于使用双引号,所以它仍然表示字符串,而不是字符。
使用char关键字可定义字符变量。
例 声明字符型变量,实例代码如下:
charx ='a';
由于字符a在unicode表中的排序位置是97。因此,允许将上面的语句写成:charx = 97;
同C、C 语言一样,Java语言也可以把字符作为整数对待。由于unicode编码采用无符号编码,可以存储65536个字符(0x0000)~0xffff),所以Java中的字符几乎可以处理所有国家的语言文字。若想得到一个0~65536之间的数所代表的unicode表中的相应位置上的字符,也必须使用char型显示转化。
例 在项目中创建类Gess,编写如下代码,实现将unicode表上某些位置上的字符以及一些字符在unicode表中的位置在控制台上输出。
运行结果如图1所示
图1 实例的运行结果
2.转义字符
转义字符是一种特殊的字符变量。转义字符以反斜线“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。例如,printf函数的格式串中用到的“\n”就是一个转义字符,意思是“回车换行”。Java中转义字符如表1所示。
转义字符含义
\ddd
1到3位8进制数据所表示的字符,如:\456\dxxxx
4位16进制所表示的字符 如:\0052 \’单引号字符 \\反斜杠字符
\t垂直制表符,将光标移到下一个制表符的位置\r回车\n换行\b退格\f换页
将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号将转义字符括起来。
例,分别为字符变量c1赋值为'\\'、字符变量c2赋值为'\''、字符变量c3赋值为'\115'、字符变量c4赋值为'\u0052',字符变量c5赋值为'\u2605',然后输出。
char c1='\\'; //为变量c1赋值转义字符“\\”
char c2='\''; //为变量c2赋值转义字符“\'”
char c3='\115'; //为变量c3赋值转义字符“\115”表示的字符
char c4='\u0052'; //为变量c4赋值转义字符“\u0052”表示的字符
char c5='\u2605'; //为变量c5赋值转义字符“\u2605”表示的字符
System.out.println(c1); //输出结果为:\
System.out.println(c2); //输出结果为:'
System.out.println(c3); //输出结果为:M
System.out.println(c4); //输出结果为:R
System.out.println(c5); //输出结果为:★
图2 控制台输出结果
例在Java中,对字符变量进行如下的赋值也是合法的:
char char1='B' 1; //将字符常量值'B'与十进制整数1相加的结果赋给字符变量char1
charchar2='B' '1'; //将两个字符常量值'B'与'1'相加的结果赋给字符变量char2
charchar3=24 76; //将两个十进制整数24与76相加的结果赋给字符变量char3
charchar4='n'-32; //该操作将得到大写的字母N,'N' 32将得到小写的字母n
System.out.println(char1); //输出结果为:C
System.out.println(char2); //输出结果为:s
System.out.println(char3); //输出结果为:d
System.out.println(char4); //输出结果为:N
图3 控制台输出结果
例 在输出语句中使用转义字符,实例代码如下:
publicclass Temp {
publicstaticvoidmain(String[] args) {
System.out.println("\102"); // 八进制编码的字符
System.out.println("\u0042"); // 十六进制编码的字符
System.out.println("苹果\t橘子\t香蕉"); // 使用制表符分割
System.out.println("\\字符是反斜杠"); // 输出反斜杠
System.out.println("\n换行字符"); // 输出回车
}
}
布尔类型
布尔类型又称逻辑类型,只有两个值true和false,分别代表布尔逻辑中的“真”和“假”,布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中作为判断条件。
例定义布尔型变量,可通过关键字boolean来定义。定义方法如下:
boolean b; //定义布尔型变量b
boolean b1 b2; //定义布尔型变量b1 b2
例分别为布尔型变量married赋值为false,alive赋值为true,然后输出。
booleanmarried=false;
boolean alive=true;
System.out.println("已婚:" married); //输出结果为:false
System.out.println("生命:" alive); //输出结果为:true
在控制台中的运行结果如图1所示。