Java基础数据类型

本文介绍了计算机存储的基本单位,从位(bit)到字节(Byte),并详细阐述了Java中的数据类型及其存储需求。Java拥有8种基本类型,包括整型、浮点型、字符型和布尔型,每种类型都有特定的字节数和取值范围。此外,还讲解了数据类型的转换,包括隐式转换和显式转换的规则,强调了类型转换时需要注意的精度损失和潜在问题。最后,提到了引用类型如String的默认值为null。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机存储单元

定义:变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。
常用存储单元关系
1B= 8b 1KB = 1024B 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB

数据类型

java是一种强类型语言,这也就意味着必须为每一个变量声明一种类型,在java中,共有8中基本类型,其中4中整型、2种浮点类型、1中字符类型

数据类型存储需求取值范围默认值
short2字节-32768 - 32767 (2^15 - 2^15-1)0
int4字节-2,147,483,648 - 2,147,483,647 (2^31 - 2^31-1)0
long8字节-9,223,372,036,854,775,808 - 9,223,372,036,854,775,807 (2^63 - 2^63-1)0L
byte1字节-128 - 127 (2^7 - 2^7-1)0
double8字节-9,223,372,036,854,775,808 - 9,223,372,036,854,775,807 (2^63 - 2^63-1)0.0d
float4字节-2,147,483,648 - 2,147,483,647 (2^31 - 2^31-1)0.0f
char一般为2字节(0 - 2^16-1)‘u0000’
boolean不明确true和falsefalse

对于数据类型大的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已常量的形式定义在对应的包装类中了。

// 例如
public static void main(String[] args) {
  // int
  System.out.println("基本类型: int 二进制位数:" + Integer.SIZE);
  System.out.println("包装类: java.lang.Integer");
  System.out.println("最小值: Integer.MIN_VALUE = " + Integer.MIN_VALUE);
  System.out.println("最大值: Integer.MAX_VALUE = " + Integer.MAX_VALUE);
} 

在java中,所有的数字类型所占据的字节数与平台无关,java没有任何无符号(unsigned)形式的整数类型。
double类型的精度值是float的两倍,float类型的数值有一个后缀F或f,没有后缀的被默认为是double类型。

引用类型

除基本数据类型外都是引用类型,如 String

String或者any object的默认值都是null

数据类型转换

定义:数据类型的转换是在所赋值的数值类型和被变量接收的数据类型不一致时发生的,它需要从一种数据类型转换成另一种数据类型。

分类

隐式转换


  定义:在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。自动转换的规则是从低级类型数据转换成高级类型数据。

  转换规则:

    数值型数据的转换:byte→short→int→long→float→double。

    字符型转换为整型:char→int。

  转换条件:自动类型转换的实现需要同时满足两个条件:①两种数据类型彼此兼容,②目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)。例如 byte 类型向 short 类型转换时,由于 short 类型的取值范围较大,会自动将 byte 转换为 short 类型。

显式转换

  定义:当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。


  语法格式

目标类型 变量名 = (目标类型) (被转换的数据);

  举例:int b = (byte)(a + b);


  注意:如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同

不建议强制转换,因为会有精度的损失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值