Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #17544
| From | "Jim Gibson" <jim.gibson@1:261/38.remove-k2r-this> |
|---|---|
| Subject | Re: automatically initialized to null? |
| Message-ID | <5023FE3E.56493.calajapr@time.synchro.net> (permalink) |
| Newsgroups | comp.lang.java.programmer |
| References | <5023FE3E.56492.calajapr@time.synchro.net> |
| Date | 2012-08-09 18:44 +0000 |
| Organization | tds.net |
To: Lew
From: Jim Gibson <jimsgibson@gmail.com>
In article <90ca1dd2-f3eb-49d8-882c-de7f7a8e5d42@googlegroups.com>, Lew
<lewbloch@gmail.com> wrote:
> Mike Winter wrote:
> > markspace wrote:
> >> bob smith wrote:
> >>> I always forget stuff like this*
> >>>
> >>> If I have
> >>>
> >>> Bitmap[] bmps = new Bitmap[256];
> >>>
> >>> Are all 256 positions automatically initialized to null?
> >
> >> Yes. I'm sure that's in the JLS someplace.
> >
> > "[If] there is no array initializer, and [...] a single [array
> > dimension expression] appears, a one-dimensional array is created
> > of the specified length, and each component of the array is
> > initialized to its default value ($4.12.5)."
> > -- 15.10.1 Run-time evaluation of Array Creation Expressions
> >
> > "For all reference types ($4.3), the default value is null."
> > -- 4.12.5 Initial Values of Variables
> >
> > :-)
>
> See? The JLS is easy to use and very authoritative, and highly useful.
Not really. That extract of paragraph 15.10.1 is embedded in a long section
discussing the allocation of arrays. It is statement 9 of 11 as quoted here:
"15.10.1. Run-time Evaluation of Array Creation Expressions
At run-time, evaluation of an array creation expression behaves as follows:
If there are no dimension expressions, then there must be an array
initializer.
A newly allocated array will be initialized with the values provided
by the array initializer as described in $10.6.
The value of the array initializer becomes the value of the array
creation expression.
Otherwise, there is no array initializer, and:
- First, the dimension expressions are evaluated, left-to-right. If
any of the expression evaluations completes abruptly, the expressions to the
right of it are not evaluated.
- Next, the values of the dimension expressions are checked. If the
value of any DimExpr expression is less than zero, then a
NegativeArraySizeException is thrown.
- Next, space is allocated for the new array. If there is
insufficient space to allocate the array, evaluation of the array creation
expression completes abruptly by throwing an OutOfMemoryError.
- Then, if a single DimExpr appears, a one-dimensional array is
created of the specified length, and each component of the array is initialized
to its default value ($4.12.5).
- Otherwise, if n DimExpr expressions appear, then array creation
effectively executes a set of nested loops of depth n-1 to create the implied
arrays of arrays.
A multidimensional array need not have arrays of the same length at each
level."
From:
<http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.10.
1>
If you think that text is easy to find and parse to figure out how array
elements are initialized, then my hat is off to you. I was unable to find it by
scanning the table of contents. I would have expected it to be in Section 10:
Arrays
> Pllptpptt! to the naysayers.
Back at you. :)
--
Jim Gibson
--- BBBS/Li6 v4.10 Dada-1
* Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
automatically initialized to null? "bob smith" <bob.smith@1:261/38.remove-k2r-this> - 2012-08-09 18:44 +0000
Re: automatically initialized to null? "markspace" <markspace@1:261/38.remove-k2r-this> - 2012-08-09 18:44 +0000
Re: automatically initialized to null? "Mike Winter" <mike.winter@1:261/38.remove-k2r-this> - 2012-08-09 18:44 +0000
Re: automatically initialized to null? "Lew" <lew@1:261/38.remove-k2r-this> - 2012-08-09 18:44 +0000
Re: automatically initialized to null? "Jim Gibson" <jim.gibson@1:261/38.remove-k2r-this> - 2012-08-09 18:44 +0000
Re: automatically initialized to null? "bob smith" <bob.smith@1:261/38.remove-k2r-this> - 2012-08-09 18:44 +0000
Re: automatically initialized to null? "Eric Sosman" <eric.sosman@1:261/38.remove-tos-this> - 2012-08-09 19:46 +0000
Re: automatically initialized to null? "bob smith" <bob.smith@1:261/38.remove-t9h-this> - 2012-08-10 18:39 +0000
Re: automatically initialized to null? "Roedy Green" <roedy.green@1:261/38.remove-k2r-this> - 2012-08-09 18:44 +0000
csiph-web