Java数据类型及类型转换「详解」

一,基本数据类型

Java 中的基本数据类型包括整型、浮点型、字符型和布尔型。

1,整型

Java 中的整型有四种:byte、short、int 和 long。它们的取值范围如下:

数据类型取值范围
byte-128 ~ 127
short-32768 ~ 32767
int-2147483648 ~ 2147483647
long-9223372036854775808 ~ 9223372036854775807

其中,byte 类型占 8 位,short 类型占 16 位,int 类型占 32 位,long 类型占 64 位。一般情况下,我们使用 int 类型。

2,浮点型

Java 中的浮点型有两种:float 和 double。它们的取值范围如下:

数据类型取值范围
float1.4E-45 ~ 3.4028235E38
double4.9E-324 ~ 1.7976931348623157E308

其中,float 类型占 32 位,double 类型占 64 位。一般情况下,我们使用 double 类型。

3,字符型

Java 中的字符型只有一种:char,它用于存储单个字符。char 类型占 16 位,它的取值范围是 0 ~ 65535。

4,布尔型

Java 中的布尔型只有一种:boolean,它用于存储 true 或 false 值。布尔型只占一位。

二,引用数据类型

Java 中的引用数据类型包括类、数组和接口。

1,类

在 Java 中,类是一种引用数据类型。我们可以使用关键字 class 来创建一个类。例如:

public class MyClass {
    // 类的成员变量和方法
}

2,数组

在 Java 中,数组也是一种引用数据类型。我们可以使用关键字 new 来创建一个数组。例如:

int[] myArray = new int[10];

这段代码创建了一个长度为 10 的整型数组。

3,接口

在 Java 中,接口也是一种引用数据类型。我们可以使用关键字 interface 来创建一个接口。例如:

public interface MyInterface {
    // 接口的方法
}

这段代码创建了一个名为 MyInterface 的接口。

三,变量声明和初始化

在 Java 中,变量必须先声明,然后才能使用。声明变量的语法格式为:

数据类型 变量名;

例如,声明一个 int 类型的变量:

int num;

声明变量后,需要初始化才能使用。初始化变量的语法格式为:

变量名 = 值;

例如,初始化一个 int 类型的变量:

int num = 10;

当然,如果不想初始化变量,Java会赋给给它一个默认值。Java 中的基本数据类型都有默认值,如下表所示:

数据类型默认值
byte0
short0
int0
long0L
float0.0f
double0.0d
char'\u0000'
booleanfalse

四,类型转换

在 Java 中,如果要将一个数据类型转换成另一个数据类型,可以使用类型转换运算。类型转换运算分为两种:隐式类型转换和显式类型转换。

在Java中整型、实型(常量)、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)->int->long->float->double

简单数据类型之间的转换又可以分为:

  • 低级到高级的自动类型转换
  • 高级到低级的强制类型转换
  • 包装类过渡类型能够转换

1,隐式类型转换

如果将一个小类型的变量赋值给一个大类型的变量,Java 会自动进行类型转换,这种转换叫做隐式类型转换。例如:

int num = 10;
double d = num;

在这个例子中,int 类型的变量 num 被赋值给 double 类型的变量 d,Java 会自动将 num 转换成 double 类型。

同样,下面的语句可以在Java中直接通过,但是将double型变量赋值给float变量,不加强转的话会报错:

byte b;
int i=b;
long l=b;
float f=b;
double d=b;

如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如:

  char c='c';
  int i=c;
  System.out.println("output:" i);//output:99

注意:byte、short、int三种类型(平级)都是整型,如果在操作整型数据时,最好统一使用int型。

2,显式类型转换

如果将一个大类型的变量赋值给一个小类型的变量,Java 不会自动进行类型转换,必须使用显式类型转换。例如:

double d = 10.5;
int num = (int) d;

在这个例子中,double 类型的变量 d 被赋值给 int 类型的变量 num,需要使用强制类型转换运算符将 d 转换成 int 类型。

可以预见,这种转换可能会导致溢出或精度的下降。

3,包装类过渡类型转换

在 Java 中,有些数据类型是基本数据类型,例如 int、double 等,而有些数据类型是对象类型,例如 Integer、Double 等。这些对象类型称为包装类,它们是为了让基本数据类型具有对象特性而设计的。在实际编程中,我们经常需要将基本数据类型转换成包装类,或者将包装类转换成基本数据类型。

  • 包装类可以将基本数据类型转换成对象类型,从而可以将基本数据类型作为对象来处理。
  • 包装类提供了一些方法,例如 toString()、valueOf() 等,可以方便地对基本数据类型进行操作。
  • 包装类可以作为泛型参数,从而使泛型可以处理基本数据类型。

在 Java 中,每种基本数据类型都有对应的包装类,如下表所示:

基本数据类型包装类
booleanBoolean
byteByte
charCharacter
shortShort
intInteger
longLong
floatFloat
doubleDouble

3.1基本数据类型和包装类的转换

1⃣️基本数据类型转换成包装类

在 Java 中,可以使用包装类的 valueOf() 方法将基本数据类型转换成包装类。例如:

int num = 10;
Integer i = Integer.valueOf(num);

在这个例子中,int 类型的变量 num 被转换成了 Integer 类型的对象 i。

2⃣️包装类转换成基本数据类型

在 Java 中,可以使用包装类的 xxxValue() 方法将包装类转换成基本数据类型。例如:

Integer i = 10;
int num = i.intValue();

在这个例子中,Integer 类型的对象 i 被转换成了 int 类型的变量 num。

五,类型推断

Java 10 引入了类型推断功能,可以通过 var 关键字推断出变量的类型。例如:

var str = "hello";

在这个例子中,Java 会根据 "hello" 的类型推断出 str 变量的类型为 String。

六,总结

Java 中的变量必须先声明,然后才能使用,变量的类型决定了它能够存储的数据类型。在使用变量之前,需要先初始化。类型转换运算符可以将一个数据类型转换成另一个数据类型,类型转换分为隐式类型转换和显式类型转换。Java 10 引入了类型推断功能,可以使用 var 关键字推断出变量的类型。

以上仅是我个人的一些总结,不足之处希望大家在评论区指正。

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林上奇数

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值