Java中的基本数据类型

来源:互联网 发布:python归并排序算法 编辑:程序博客网 时间:2024/06/15 09:33

在Java中有8种基本数据类型来存储数值、字符和布尔值,如下图所示:

这里写图片描述

整数类型

整数类型用来存储整数数值,即没有小数部分的数值。可以是整数,也可以是负数。整数数据在Java程序中有3种表示方式,分别是十进制、八进制和十六进制。

十进制:十进制的表现形式大家都很熟悉的,如110、0、-23等。

需要注意的是:不能以0作为十进制数的开头。

八进制:如0123(转换成十进制数为83)、-0123(转换成十进制数为-83)。

需要注意的是:八进制必须以0开头。

十六进制:如0x25(转换成十进制数为37)、0Xb01e(转换成十进制数为45086)。

需要注意的是:十六进制必须以0X或者是0x开头。

整数数据类型根据它所占内存大小的不同,可分为byte、short、int和long4种类型,它们具有不同的取值范围,如表所示:
这里写图片描述

Java中提供了一个类,用来实现很长的整数:BigDecimal
定义一个int型变量,代码如下:

int x;  //定义int型变量xint x,y;  //定义int型变量x、yint x=450,y=-462; //定义int型变量x、y并赋值

在定义以上四种类型变量时,要注意变量的取值范围,超出相应的范围就会出错。对于long型值,若赋给的值大于int型的最大值或小于int型的最小值,则需要在数字后加 L 或 l ,表示该数值为长整数,如long num = 2147483650L。此处建议使用大小的L,因为小写的l会被人误认为是数字1。尽量不要单独用l来命名,否则会出现不必要的错误。
例子,在主方法中创建不同数值型变量,并将这些变量相加,将和输出:

public class Demo{ //创建类    public static void main(String[] args){ //主方法        byte mybyte = 124;  //声明byte型变量并赋值        short myshort = 32564; //声明short型变量并赋值        int myint =457846112;  //声明int型变量并赋值        long mylong = 46789451; //声明long型变量并赋值        long result= mybyte + myshort + myint + mylong; //获得各数相加后的结果        System.out.println("结果为:"+result); //将以上变量相加的结果 输出    }}

程序运行的结果如图所示:
这里写图片描述

//如何将10转换成二进制来表示?public class Demo{    public static void main(String[] args){        int a=10;  //声明int型的变量并赋值        System.out.println(a); //打印a        System.out.println(Interger.toBinaryString(a));//将a转换成二进制的字符串来表示并打印,其中Binary就是二进制System.out.println(Interger.toOctalString(a));//将a转换成八进制的字符串来表示并打印,其中Octal就是八进制System.out.println(Interger.toHexString(a));//将a转换成十六进制的字符串来表示并打印,其中Hex就是十六进制    }}

结果分别是:
二进制:1010
八进制:12
十六进制:a
整型常量的默认类型就是int,int a5=10;表示把一个int变量给了一个int常量。long a6 =200;把四个字节的数,放在八个字节的数里也是可以的。byte b2=100;整型常量赋值的时候,如果数据的大小没有超过byte、short、char的表述范围,可以自动转型。当byte b2=200时,就会出现错误,错误的提示是精度缺失;

浮点类型

浮点类型表示有小数部分的数字。Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),它们具有不同的取值范围,如下图所示:
这里写图片描述
在默认情况下,小数都被看作是double型,若使用float型小数,则需要在小数后面添加F或者f。可以使用后缀D或者d来明确表明这是一个double类型的数据,不会d不会出错,但声明float型变量时如果不加f,系统会认为变量是double类型而出错。通过下面这个例子来了解如何声明浮点型变量的方法。
Java中浮点数类型常量有两种表示方法:
十进制数形式,例如:
3.14 314.0 0.314
科学记数法形式,如
314e2 314E2 314E-2
double f =314e2; //314*10^2 –> 31400.0
double f2=314e-2; //314*10^(-2) –> 3.14
浮点数值默认为double类型,要将其变为float类型,需要在后面增加F/f.如:3.14F。

float f1 = 13.23f;double d1 = 4562.12d;double d2 = 45678.1564;

浮点数存在舍入误差,很多字不能精确表示,如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

字符类型

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型显示转换。

//实现Unicode表中某些位置上的字符以及一些字符在Unicode表中的位置在控制台上输出public class Demo{ //创建类    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中的转义字符如表所示:
这里写图片描述

将转义字符赋值给字符变量时,与字符变量值一样需要使用单引号,使用转义字符的代码如下;

char c1 = '\\'; //将转义字符'\\'赋值给变量c1char char1 = '\u2605'; //将转义字符'\2605'赋值给变量char1System.out.print(c1);  //输出结果System.out.println("=============");System.out.print(char1);  //输出结果

运行的结果如下:
这里写图片描述

布尔类型

布尔类型又称逻辑类型,通过关键字boolean来定义布尔类型变量,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。布尔值不能与整数类型进行转换。布尔类型通常被用作在流程控制中作为判断条件。
声明boolean型变量,代码如下:

boolean b; //定义布尔类型变量bboolean b1,b2; //定义布尔类型变量b1、b2boolean b = true ; //定义布尔类型变量b,并赋值为true
原创粉丝点击