Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!news.albasani.net!.POSTED!not-for-mail From: Jan Burse Newsgroups: comp.lang.java.programmer Subject: Re: Autoboxing and Performance ? Date: Wed, 21 Aug 2013 11:54:05 +0200 Organization: albasani.net Lines: 37 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.albasani.net JiwsKoWf9Y8vILBv+7Z3QhLQUQBRryN9/dA/edWRh2EGfube/xAXh9CPVsDOoMk6XJdDPcNLDGJFgu7x/mnY+g== NNTP-Posting-Date: Wed, 21 Aug 2013 09:54:05 +0000 (UTC) Injection-Info: news.albasani.net; logging-data="KiOses+qlwO0sDCVb/yTH6V+t4ye+cFiuhdoLLQaIU2f88mdBZu1LrwMEQ/b4A5tgRw+33O4oH2YaDv6wMAAbB+miTZGKZljpXu/s03Ajr+b91/IV88BPiQdRSqn5sQk"; mail-complaints-to="abuse@albasani.net" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:23.0) Gecko/20100101 Firefox/23.0 SeaMonkey/2.20 In-Reply-To: Cancel-Lock: sha1:9KbVBjTs4taKJpFnsWD53NHxp68= Xref: csiph.com comp.lang.java.programmer:25089 A little up in the source code one finds also: /** * Cache to support the object identity semantics of * autoboxing for values between -128 and 127 (inclusive) * as required by JLS. * * The cache is initialized on first usage. The size of the cache * may be controlled by the -XX:AutoBoxCacheMax= option. > P.S.: Here is the JDK 1.7.25 source code of Integer.valueOf: > > /** > * Returns an {@code Integer} instance representing the specified > * {@code int} value. If a new {@code Integer} instance is not > * required, this method should generally be used in preference to > * the constructor {@link #Integer(int)}, as this method is likely > * to yield significantly better space and time performance by > * caching frequently requested values. > * > * This method will always cache values in the range -128 to 127, > * inclusive, and may cache other values outside of this range. > * > * @param i an {@code int} value. > * @return an {@code Integer} instance representing {@code i}. > * @since 1.5 > */ > public static Integer valueOf(int i) { > assert IntegerCache.high >= 127; > if (i >= IntegerCache.low && i <= IntegerCache.high) > return IntegerCache.cache[i + (-IntegerCache.low)]; > return new Integer(i); > } > >