在Java中有8种基本数据类型,它们分别被用来处理3种类型的数据,数值型、字符型和布尔型。
1.数值型:整数类型(byte、short、int、long),浮点类型(float、double)
2.字符型:char
3.布尔类型:boolean
一.整数类型
整数类型用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。整型数据在Java程序中有3种表示形式,分别为十进制、八进制和十六进制。
十进制:十进制的表现形式大家都很熟悉,如120、0、-127
八进制:如0123(转换成十进制为83 1*8^2+2*8^1+3*8^0=83)、-0123(转换成十进制数为-83)
十六进制:如0x25(转换成十进制为37)、0Xb01e(转换成十进制为45086)
整型数据根据它所占内存大小的不同,可分为byte、short、int、long这4种类型。它们具有不同的取值范围:
1.byte(字节型):内存空间(8位 1字节) 取值范围(-128~127)
2.short(短整型):内存空间(16位 2字节) 取值范围(-32768~32767)
3.int(整型):内存空间(32位 4字节) 取值范围(-2147483648~2147483647)
4.long(长整型):内存空间(64位 8字节) 取值范围(-9223372036854775808~9223372036854775807)
在项目中创建类Number,在主方法中创建不同数值型局部变量,并将这些局部变量相加,将和输出,代码如下:
package com.it.cast.cn; public class Number { public static void main(String[] args) { byte myByte = 124; short myShort = 32564; int myInt = 45784612; long myLong = 46789451L;//注意这里末尾加上了L,定义long型数据习惯性加上L,作用是强转 long result = myByte + myShort + myInt + myLong; System.out.println("结果为: " + result); } }
运行结果:
二.浮点类型
浮点类型表示有小数部分的数字。Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),它们具有不同的取值范围。
1.float(单精度浮点类型):内存空间(32位 4字节) 取值范围(1.4E-45~3.4028235E38)
2.double(双精度浮点类型):内存空间(64位 8字节) 取值范围(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;
三.字符类型
1.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表中的位置在控制台上输出:
package com.it.cast.cn; public class Gess { public static void main(String[] args) { char word='d',word2='@'; int p=23045,p2=45213; 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); } }
2.转义字符:转义字符是一种特殊的字符变量,它以反斜杠“\”开头,后跟一个或多个字符。转义字符具有特别的含义,不同于字符原有的意义,故称“转义”。例如printf函数的格式串用到的“\n”就是一个转义字符,意思是“回车换行”。Java中的转移字符如下:
\ddd:1~3位八进制数据所表示的字符,如\123
\uxxxx:4位十六进制数据所表示的字符,如\u0052
\':单引号字符
\\:反斜杠字符
\t:垂直制表符,将光标移到下一个制表符的位置
\r:回车
\n:换行
\b:退格
\f:换页
将转义字符值给字符常量时,与字符常量值一样需要使用单引号。
使用转义字符,代码如下:
char c1='\\'; char char1='\u2605'; System.out.println("c1是: "+c1); System.out.println("char1是: "+char1);
3.布尔类型:布尔类型又称逻辑类型,通过关键字boolean来定义布尔类型变量,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中作为判断条件。
boolean b;//定义布尔类型变量b boolean b1, b2;//定义布尔类型变量b1、b2 boolean b = true;//定义布尔类型变量b,并赋给初值true