栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java的八种基本数据类型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java的八种基本数据类型

文章目录
  • 前言
  • 一、整形
  • 二、浮点类型
  • 三、char类型
  • 四、boolean类型


前言

Java有八种基本数据类型,分别是4种整形、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。(String不是基本数据类型)

一、整形

整形用于表示没有小数部分的数值,可以是负数。Java提供了4种整形,它们的具体内容如下:

一般情况下int类型是最常用的。

在Java种,整形的范围与运行Java代码的机器无关,这就解决了软件从一个平台移植到另一个平台或者同一个平台中不同操作系统之间进行程序移植所带来的问题。Java程序必须保证在所有机器上都能够得到相同的运行结果,因此各种数据类型的取值范围都是固定的。

长整型数值有一个后缀L或l(小写的L,如400000000000l)。十六进制数值有一个前缀0x或0X。八进制有一个前缀0,如010则对那个八进制中的8(八进制表示容易混淆,因此不要常用八进制表示)。

从Java7开始,加上0b或者0B就可以表示二进制数了。

同样从Java7开始,还可以为数字字面量加下划线,如用1_000_000表示一百万(其他进制也可以这样表示,Java编译器会去除这些下划线)。

最后注意,Java没有任何无符号(unsigned)形式的int、long、short或byte类型。也就是说这四种整数类型都是有符号的(可以同时表示负数和正数)。
相关代码如下:

1.	long l = 400000000000l;//长整型整数  
2.	int hexNum = 0xCAFE;//十六进制整数表示,也就是十进制的51966  
3.	int octNum = 010;//八进制整数表示,也就是十进制的8  
4.	int bin = 0b1001;//二进制整数表示,也就是十进制的9  
5.	int num = 1_000_000;//十进制数1000000 
二、浮点类型

浮点类型用于表示有小数部分的数值。Java有两种浮点类型:

从上表可以看出,double表示的数值精度是float类型的两倍,因此有人称double为双精度数值。在通常情况下,我们都是在程序中使用double类型,因为float类型的精度在很多情况下都是难以满足需求的。

Float类型的数值有一个F或者f后缀,没有F或f后缀的浮点数值默认为double类型,或者在数值后面添加后缀D或者d。

另外,十六进制也可以表示浮点数,具体看相关代码(涉及到计算机组成原理,不展开讲了,可以记住表示形式就可以了):

1.	//可以使用十六进制表示浮点数  
2.	//表示形式为0x尾数*基数*指数  
3.	//如0.125=2^(-3),0.25=2^(-2);  
4.	//对应的十六进制表示分别为0x1.0p-3,0x1.0p-2;  
5.	//比如0x1.0p-3,0x表示十六进制表示,1.0表示尾数(尾数也是采用十六进制表示),基数p=2而不是10,指数-3采用十进制表示  
6.	double hexDou = 0x1.0p-3;//十六进制表示,相当于十进制0.125  
7.	double hexDou2 = 0x1.0p-2;//表示十进制0.25  

所有的浮点数的计算都是遵循IEEE754规范(计算机组成原理相关)。
在浮点数中,有三个特殊的浮点数值:
8. 正无穷大
9. 负无穷大
10. NaN(不是一个数字)

相关代码及其解释:

12.	  
16.	//注意:除数为整数0会报错,除数为浮点数0.0则不会报错  
17.	System.out.println(Double.POSITIVE_INFINITY);//等于1/0.0,正无穷(infinity)  
18.	System.out.println(1/0.0);//输出infinity(正无穷),不会报错  
19.	System.out.println(Double.NEGATIVE_INFINITY);//等于-1/0.0,负无穷(-infinity)  
20.	System.out.println(-1/0.0);//输出-infinity(负无穷),不会报错  
21.	System.out.println(1/0);//注意会报错,除以整数0会报错  
22.	  
27.	System.out.println(1/0.0);//无穷大是一个数字,输出为true  
28.	System.out.println(Double.isNaN(0.0/0.0));//无穷小乘以无穷大,结果不是一个有意义的数字,输出false 

注意:浮点数值不适用于无法接受舍入误差的金融计算中。例如,命令System.out.println(2.0-1.1)将打印出0.8999999999999999, 而不是人们想象的0.9。这种舍入误差的主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确地表示分数 1/10。这就好像十进制无法精确地表示分数1/3 —样。如果在数值计算中不允许有任何舍入误差, 就应该使用BigDecimal类,

三、char类型

char类型一般用于表示单个字符,其表示的字面量要用单引号括起来。如:

1.	char c = 'A';//表示字符A  
2.	//char c1 = "A";//这是错误的写法,双引号括起来的是字符串类型(String)  
3.	char c2 = 'u0000';//char类型的值也可以表示十六进制值,表示范围从 u0000 到 Uffff。表示的字符可以查表  

注意:转义序列的转义在解析代码之前就会进行处理,因此在编码过程中,如果没有注意这个特点会出现意想不到的结果:

1.	//转义序列在解析代码之前就进行,需要注意编码和注释中的转义序列  
2.	System.out.println("u0022+u0022");  
3.	  
7.	//同时还要注意注释中的代码.注释中的转义字符不是合法的转义也是会报错的  
8.	// Look inside c:users  这一行注释会报错!!!  

报错信息:

四、boolean类型

boolean (布尔)类型有两个值:false和true, 用来判定逻辑条件整型值和布尔值之间不能进行相互转换。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463226.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号