KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gcc > util > IntegerCache


1 /*
2  * Copyright 2004 The Apache Software Foundation or its licensors, as
3  * applicable.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
14  * implied.
15  *
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */

19 package gcc.util;
20
21 public abstract class IntegerCache
22 {
23     private static final int MIN_VALUE = -999;
24     private static final int MAX_VALUE = 9999;
25
26     private static final Integer[] CACHE = getCache();
27
28     public static Integer get(int i)
29     {
30         if (i >= MIN_VALUE && i <= MAX_VALUE)
31         {
32             return CACHE[i - MIN_VALUE];
33         }
34         else
35         {
36             return new Integer(i);
37         }
38     }
39
40     private static Integer[] getCache()
41     {
42         Integer[] cache = new Integer[1 + MAX_VALUE - MIN_VALUE];
43         for (int i = MIN_VALUE; i <= MAX_VALUE; i++)
44         {
45             cache[i - MIN_VALUE] = new Integer(i);
46         }
47         return cache;
48     }
49 }
50
Popular Tags