强制类型转换
注意强制类型转换只能由高精度变为低精度,以下为由低到高顺序:
byte->short->int->long->float->double
注意高变低需要强制类型转换,但是低变高可以直接变(系统自动转换)
基础数据类
- 比较相关:以Integer为例,注意对象等号比较的是地址
Integer i01=59;
int i02=59;
Integer i03=Integer.valueOf(59);
Integer i04=new Integet(59);
- 对于i02,Integer对象与int变量比较时,会将Integer进行拆箱,所以比较一定为true
- 对于i01与i03,当值在-127到128之间时,实际上Integer的方式相同,只要非new那么==
- 对于new的对象,与其他对象比较,一定不同,假设又new了Integer i05
i05、i04与(i03、i01)对应的59在常量池(堆)中并非一个位置(如下图)
PS:对于Byte,Short,Integer,Long,Character,传递的整型变量在-127到128间,才可以使用常量池
对于String类,同理,如果没有new则是对应常量池