Java基本类型总结

  • 1.JVM、JRE和JDK的区别:
    JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。
    java语言是跨平台,jvm不是跨平台的。
    JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。
    JDK(Java Development Kit):java的开发工具,包括jre+开发工具
  • 2.Java基本数据类型总结
    2.1首先复习一下java的基本数据类型,见下图
    在这里插入图片描述
    在这里插入图片描述

2.2比较他们的字节数
备注:1字节(Byte)=8位(Bit)
2.3转换中的知识点
(1)java中整数类型默认的int类型;小数类型默认的double;
(2)char 可以当做一中特殊的整数类型;
(3)int无法转换为boolean;
(4)小数类型转为整数类型,小数可能被舍弃,所有出现精度损失,所以需要强制转换;
(5)boolean 类型不能转换成任何其它数据类型;
(6)java中整数类型默认的int类型;小数类型默认的double;

	//编译时,进行检查,看赋值大小是否超过变量的类型所容纳的范围
    //如果超过,报错:从int转换到byte可能会有损失,如果没超过,编译通过
    byte b2 = 120;
   
    //因为默认的是double,如果这样转换,有可能失去小数点,必须强制转换
    float f1 = 100.9;
    // 小数转为整数,小数可能丢失,需要强制转换
    long l3 = (long)1000.9f;
    
    double d2 = 10.9d;
    int i2 = d2; //错误: 不兼容的类型: 从double转换到int可能会有损失
   
    char c1 = 'a';
    int i3 = c1; //自动转换

    int i4 = 100;
   //char c2 = i4;// 错误: 不兼容的类型: 从int转换到char可能会有损失

2.4.四则运算中
(1)如果两个操作数中有一个是double类型,另一个就会转换为double类型;
(2)否则,如果有一个操作数是float,另一个就会转化为float;
(3)否则,如果有一个操作数是long,另一个就会转换为long;
(4)否则,两个操作数都将转换为int类型。

面试陷阱1

byte b1 = 10;
byte b2 = 11;
//错误: 不兼容的类型: 从int转换到byte可能会有损失
//否则,两个操作数都将转换为int类型。
byte b3 = b1 + b2 //错误
byte b3 = (byte)(b1 + b2); //正确

面试陷阱2

short s1 = 1; 
s1 = s1 + 1; //错误: 不兼容的类型: 从int转换到short可能会有损失
short s2 = 1; 
s2 += 1; // 等同于short s2 = (short)(s2 + (short)1); //正确

2.6面试:什么是不可变对象(immutable object)?

解析:不可变对象指对象一旦被创建,状态就不能再改变。任何修改都会创建一个新的对象,如String、Integer及其它包装类。

2.7隐式类型转换

当将占位数少的类型赋值给占位数多的类型时,java自动使用隐式类型转换(如int型转为long型)

2.8显式类型转换

当把在级别高的变量的值赋给级别低变量时,必须使用显式类型转换运算(如double型转为float型)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值