强制类型转换

注意强制类型转换只能由高精度变为低精度,以下为由低到高顺序:
byte->short->int->long->float->double
注意高变低需要强制类型转换,但是低变高可以直接变(系统自动转换)

基础数据类

  • 比较相关:以Integer为例,注意对象等号比较的是地址
  1. Integer i01=59;
  2. int i02=59;
  3. Integer i03=Integer.valueOf(59);
  4. Integer i04=new Integet(59);
  1. 对于i02,Integer对象与int变量比较时,会将Integer进行拆箱,所以比较一定为true
  2. 对于i01与i03,当值在-127到128之间时,实际上Integer的方式相同,只要非new那么==
  3. 对于new的对象,与其他对象比较,一定不同,假设又new了Integer i05
    i05、i04与(i03、i01)对应的59在常量池(堆)中并非一个位置(如下图)
    6316247_1468761643205_9F7B85AB04292CF73778D98998A20ED1.png

PS:对于Byte,Short,Integer,Long,Character,传递的整型变量在-127到128间,才可以使用常量池
对于String类,同理,如果没有new则是对应常量池