前言:

    经过两日安装,环境我们以基本搭建完毕,今日学习Java最基础的内容之一 -- 数据类型转换

Java实际项目中如何比较两个类是否相等 java比较两个char相等_强制转换

一、数据类型种类

Java实际项目中如何比较两个类是否相等 java比较两个char相等_比double精度更高的数据类型_02

以及数据类型boolean.该项只有用判断,本身只有两个值"true"以及"false"

整型 

byte、short、int、long 数据类型都是表示整数的,但是它们的取值范围可不一样。

byte 的取值范围:-128~127(-2的7次方到2的7次方-1)

short 的取值范围:-32768~32767(-2的15次方到2的15次方-1)

int 的取值范围:-2147483648~2147483647(-2的31次方到2的31次方-1)

long 的取值范围:-9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)

由上可以看出 byte、short 的取值范围比较小,而long的取值范围是最大的,所以占用的空间也是最多的。int 取值范围基本上可以满足我们的日常计算需求了,所以 int 也是我们使用的最多的一个整型类型。

浮点型

float 和 double 都是表示浮点型的数据类型,它们之间的区别在于精确度的不同。

float(单精度浮点型)取值范围:3.402823e+38~1.401298e-45(e+38 表示乘以10的38次方,而e-45 表示乘以10的负45次方)

double(双精度浮点型)取值范围:1.797693e+308~4.9000000e-324(同上)

double 类型比float 类型存储范围更大,精度更高。

通常的浮点型数据在不声明的情况下都是double型的,如果要表示一个数据时是float 型的,可以在数据后面加上 "F" 。

浮点型的数据是不能完全精确的,有时候在计算时可能出现小数点最后几位出现浮动,这是正常的。

字符型(char)

char 有以下的初始化方式:

char ch = 'a'; // 可以是汉字,因为是Unicode编码

char ch = 1010; // 可以是十进制数、八进制数、十六进制数等等。

char ch = '\0'; // 可以用字符编码来初始化,如:'\0' 表示结束符,它的ascll码是0,这句话的意思和 ch = 0 是一个意思。

Java是用unicode 来表示字符,“中” 这个中文字符的unicode 就是两个字节。

布尔型(boolean)

boolean 没有什么好说的,它的取值就两个:true 、false 。

Java实际项目中如何比较两个类是否相等 java比较两个char相等_强制转换_03

二、数据类型转换

    Java程序中要求参与计算的数据,必须要保证数据类型一致,如果数据类型不一致将发生类型的转换

转换分为自动转换和强制转换:

自动转换(隐式):无需任何操作。

强制转换(显式):需使用转换操作符(type)。

将6种数据类型按下面顺序排列一下:

double > float > long > int > short > byte

如果从小转换到大,那么可以直接转换,而从大到小,或char 和其他6种数据类型转换,则必须使用强制转换。

自动转换

举例:一个 int 类型变量和一个 byte 类型变量进行加法运算, 结果会是什么数据类型?

Java实际项目中如何比较两个类是否相等 java比较两个char相等_取值范围_04

答案是变量的类型将是 int 类型,这就是出现了数据类型的自动类型转换现象。

自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型 。

转换原理图解

byte 类型内存占有1个字节,在和 int 类型运算时会提升为 int 类型 ,自动补充3个字节,因此计算后的结果还 是 int 类型。

Java实际项目中如何比较两个类是否相等 java比较两个char相等_数据类型_05

同样道理,当一个 int 类型变量和一个 double 变量运算时, int 类型将会自动提升为 double 类型进行运算。

Java实际项目中如何比较两个类是否相等 java比较两个char相等_比double精度更高的数据类型_06

    其结果是变量的类型将是 double 类型,这就是出现了数据类型的自动类型转换现象。

强制转换

    但编程中经常会出现从大的变成小的的情况,就如上例中失败的提示一般,我们就需要用到强制转换.

    比较而言,自动转换是Java自动执行的,而强制转换需要我们自己手动执行

强制转换格式:数据类型 变量名 = (数据类型)被转数据值;

将 1.5 赋值到 int 类型,代码修改为:

Java实际项目中如何比较两个类是否相等 java比较两个char相等_取值范围_07

同样道理,当一个 short 类型与 int 类型相加,我们知道会类型提升,但是还想给结果赋值给 short 类型变量, 就需要强制转换。

Java实际项目中如何比较两个类是否相等 java比较两个char相等_数据类型_08

转换原理图解

Java实际项目中如何比较两个类是否相等 java比较两个char相等_取值范围_09

Java实际项目中如何比较两个类是否相等 java比较两个char相等_JAVA中两个char类型相加_10

至此就是数据类型转换的基础内容了,下期我们分享Java中的"运算符"使用.