浅谈数据类型(JAVA)

 

1.基本数据类型

众所周知Java一共有八种数据类型

基本类型大小最小值最大值包装器类型
int32 bits-2^{31}2^{31}-1Integer
short16 bits-2^{15}2^{15}-1Short

long

64 bits-2^{63}2^{63}-1Long
float32 bitsIEE E_{754}IEE E_{754}Float
double64 bitsIEE E_{754}IEE E_{754}Double
byte8 bits-128127Byte
char16 bitsUnicode 0Unicode 2^{16}-1Character
booleanBoolean

 从此表看出,相交于c语言,Java多了boolean类型,而且各类型的取值范围也有所不同。

且Java字符型不再是以ASCII码值,而是转变成了Unicode这种以往不同的编码。

由科普中国-科学百度我们可以得知二者的不同:

ASCII

 Unicode

由此可见Unicode相较于ASCII码更加全面,可以满足跨语言跨平台进行文本转换,处理的要求。

2.类型转换

类型转换分为隐式自动类类型转换)与显式(强制类型转换)

其中自动类类型转换的特点是:自动

自动类类型转换有两种情况:

1.不同数据类型之间运算:系统会自动的将运算优先级别低的转换成级别高的,结果和运算级别高的数据类型一样。

2.赋值运算符两边类型不一样时,系统会自动将右侧表达式的类型转换成左侧的变量类型,然后再赋值。

例如:

public class Test{
    public static void main(String[] args) {
        double d=3.14;
        int i=10;
        d=i;
        i=d;//double表示数据范围大,直接将int交给double会有数据丢失
        byte b1=100;
        byte b2=258;//超过了byte的数据范围,会数据丢失
    }
}

 强制类型转换的特点是从范围大的到范围小的:

例如

public class Test{
    public static void main(String[] args) {
        int a = 10;
        long b = 100L;
        float f = 3.14F;
        double d = 5.12;
        d = f; //数据范围由小到大,隐式转换
        f = (float)d; //数据范围由大到小,需要强转,否则编译失败
        a = d; // 报错,类型不兼容
        a = (int)d; // double没有int表示的数据范围大,需要强转,小数点之后全部丢弃
        byte b1 = 100; // 100默认为int,没有超过byte范围,隐式转换
        byte b2 = (byte)257; // 257默认为int,超过byte范围,需要显示转换,否则报错
    }
}

 从这两个例子我们可以看出显示与隐式不同的应用环境。

值得注意的是:浮点数到整数的转换会舍弃小数,并非四舍五入得到所值

 并且:boolean类型不能够强转,因为boolean类型返回值是true与false

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值