Comprensión de los principiantes del boxeo automático y el unboxing automático (matriz de caché de IntegerCache)


Entiendo algo de boxeo y unboxing automáticos, y espero que sea útil para todos.


El método de boxeo automático y unboxing automático:
Método de boxeo automático: el código fuente de Java es el siguiente:
private static class IntegerCache{
        static final Integer cache[];
        static{
                 对-128到127对象的创建
                 }
}
public static Integer  valueOf(int i){
       if(i <= IntegerCache.high && i >= IntegerCache.low)
              return IntegerCache.chache[i - IntegerCache.low];
      return new Integer(i);
}
clase Entero tiene una clases internas estáticas IntegerCache la (clase de nivel clases internas), lo que para algunos números int comúnmente utilizados, para ser exactos es un número entre -128 y 127 creado objeto Integer y se colocan en un estático array tampón Medio (caché entero []).
Entero i = 100; El código real para completar es: Entero i = Integer.valueOf (100); Dado que 100 está en el rango de valores en caché (-128-127), no se crea un nuevo objeto Integer, sino una referencia Los objetos en la matriz Integer cache [] dentro de IntegerCache (datos estáticos, compartidos por objetos de este tipo).
Integer j = 200; El código real para completar es: Integer i = Integer.valueOf (100); pero llama al nuevo Integer (200); el constructor crea el objeto.
Ejemplos:
  public static void main(String[] args) {  
              Integer a=100;  
              Integer b=100;   
              Integer c=200;  
              Integer d=200;   
             System.out.println(a==b);   //1  
             System.out.println(a==100); //2     
             System.out.println(c==d);   //3  
             System.out.println(c==200); //4  
     }  
El resultado es verdadero verdadero falso verdadero
Unboxing llama al código fuente de Java de la siguiente manera:
private final int value;
public Integer(int value){
    this.value = value;
}
public int  intValue(){
   return value;
}




26 artículos originales publicados · elogiados 0 · visitas 9936

Supongo que te gusta

Origin blog.csdn.net/weixin_38246518/article/details/78704999
Recomendado
Clasificación