从零开始学java系列第一季第三期:java语言的数据类型以及取值范围分析

本文详细介绍了Java语言中的数据类型,包括基本数据类型(整数、浮点、字符、布尔)及其取值范围,以及引用数据类型(类、接口、数组)。特别地,讨论了整数和浮点类型的字节数、二进制位和取值范围,并举例说明了byte类型的最大值在二进制表示。此外,还提到了基本数据类型的默认初始值。下一期将聚焦于类型转换。
摘要由CSDN通过智能技术生成

1、java语言的数据类型

java语言的数据类型分为原始数据类型(基本类型)引用数据类型(复合类型)

基本数据类型包括以下8种:

  • 整数类型:byte、short、int、long
  • 浮点类型:float、double
  • 字符类型:char
  • 布尔类型:boolean

引用数据类型主要包括3中:

  • 类class
  • 接口interface
  • 数组Array

2、基本数据类型

2.1、整数类形


java定义了四种整数类型,它们都是带符号的,也就是取值范围有正有负。

类型字节数二进制位取值范围
byte字节型1个字节8-128~127(-[2^ 7]~2^7-1)
short短整形2个字节16-32768~32767(-[2^ 15]~2^15-1)
int整形4个字节32-2147483648~2147483642(-[2^ 31]~2^31-1)
long长整形8个字节64-9223372036854775808~9223372036854775807(-[2^ 63]~2^63-1)

细节说明:当我们定义一个函数并赋值为一个整数时,一般情况下默认为int类型。

2.2、浮点类型


java定义两种浮点类型,即doublefloat

类型字节数二进制位取值范围
float单精度4个字节321.4E-45~3.4028235E38
double单精度8个字节644.9E-324~1.7976931348623157E308

细节说明:这里需要提一下的是,double类型的小数点后最多可保存16个小数,而float最多可保存7个小数。另外,当我们定义了一个float的时候,在赋值是如果是一个小数的话必须在小数的最后加上f或F,因为一个小数默认为double类型,double类型的数据赋值给float类型,在java里面是不允许的,如果一定要将double类型赋值给float的话,必须要使用强制类型转换,
float f = (double)3.14;

2.3、字符类型


char用来定义字符型,java使用Unicode码代表字符,比如字符a是用97来表示的。不同于C语言的ASCII码,java中的char是占据2个字节的,所以它是16位。因为char无符号,所以取值范围是0-2^16-1(0~65535)

2.4、布尔类型


boolean用来定义布尔类型,只包含true和false两个值,多用于流程控制语句的判断。

3、基本数据类型的默认初始值


3.1、基本数据类型的默认初始值

序号数据类型默认值
1byte0
2short0
3int0
4long0
5float0.0
6double0.0
7char/u0000(空字符,不是null)
8booleanfalse

4、整形的取值范围验证

这里我们用byte来进行举例说明:
在前面我们提到了byte占据一个字节,也就是8个二进制位,现在我们定义一个byte的数据byte b = 127(byte的最大值);那么,它的二进制数据是多少呢?我们来进行一个换算(详细的换算过程请参考这篇进制的转换

127:
127 / 2 = 63 ...1
63 / 2 = 31 ...1
31 / 2 = 15 ...1
15 / 2 = 7 ...1
7 / 2 = 3 ... 1
3 / 2 = 1 ...1
1 / 2 = 0 ...0

byte10的换算后的二进制数据为:011111110,二进制的第一个进制位为符号位,用来表示二进制数的正负,0表示正,1表示负,那么,按道理来说,8位的二进制数最大不是应该为:01111111吗?为什么会是011111110呢?这是因为,在正数部分将0也算进去了,所以我们需要-1,故最大数就是011111110,转换换成十进制为127,您也可以将二进制的最大数转换成十进制进行验证

进制的转换请参考这篇:进制之间的相互转换

这一期到此就结束了,下一期主要是对类型转换的介绍,如果这篇文章对您有帮助的话,还请点赞、关注支持一下,非常感谢您的观看!!!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值