Integer cache

时间:2023-03-08 17:47:04
Integer cache
  1. View.findViewById采用深度遍历,找到第一个匹配的控件
  2. Integer Cache
         public static void testIntegerCache() {
    Class cache = Integer.class.getDeclaredClasses()[0];
    try {
    Field f = cache.getDeclaredField("cache");
    f.setAccessible(true);
    Integer[] array = (Integer[]) f.get(cache);
    array[130] = array[131];
    } catch (Exception e) {
    e.printStackTrace();
    }
    System.out.printf("1+1=%d", 1+1);
    }
  3. 上面关键在于Integer.valueOf()方法
         public static Integer valueOf(int i) {
    if(i >= -128 && i <= IntegerCache.high)
    return IntegerCache.cache[i + 128];
    else
    return new Integer(i);
    }