Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #17532 > unrolled thread

automatically initialized to null?

Started by"bob smith" <bob.smith@1:261/38.remove-k2r-this>
First post2012-08-09 18:44 +0000
Last post2012-08-09 18:44 +0000
Articles 9 — 8 participants

Back to article view | Back to comp.lang.java.programmer


Contents

  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

#17532 — automatically initialized to null?

From"bob smith" <bob.smith@1:261/38.remove-k2r-this>
Date2012-08-09 18:44 +0000
Subjectautomatically initialized to null?
Message-ID<5023FE3C.56481.calajapr@time.synchro.net>
From: bob smith <bob@coolfone.comze.com>

I always forget stuff like thisa

If I have

Bitmap[] bmps = new Bitmap[256];

Are all 256 positions automatically initialized to null?

--- 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

[toc] | [next] | [standalone]


#17537

From"markspace" <markspace@1:261/38.remove-k2r-this>
Date2012-08-09 18:44 +0000
Message-ID<5023FE3C.56486.calajapr@time.synchro.net>
In reply to#17532
  To: bob smith
From: markspace <-@.>

On 8/8/2012 12:23 PM, bob smith wrote:
> I always forget stuff like thisa
>
> 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.  And just about every noob tutorial 
and "Learn Java" book.  But yes, all uninitialized static or instance fields 
and all arrays are set to null.  Note this excludes local variables.

--- 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

[toc] | [prev] | [next] | [standalone]


#17538

From"Mike Winter" <mike.winter@1:261/38.remove-k2r-this>
Date2012-08-09 18:44 +0000
Message-ID<5023FE3D.56487.calajapr@time.synchro.net>
In reply to#17537
  To: markspace
From: Mike Winter <usenet@michael-winter.me.invalid>

On 08/08/2012 21:20, markspace wrote:
> On 8/8/2012 12:23 PM, bob smith wrote:
>> I always forget stuff like thisa
>>
>> 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

:-)

--
Mike Winter
Replace ".invalid" with ".uk" to reply by e-mail.

--- 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

[toc] | [prev] | [next] | [standalone]


#17543

From"Lew" <lew@1:261/38.remove-k2r-this>
Date2012-08-09 18:44 +0000
Message-ID<5023FE3E.56492.calajapr@time.synchro.net>
In reply to#17538
  To: Mike Winter
From: Lew <lewbloch@gmail.com>

Mike Winter wrote:
> markspace wrote:
>> bob smith wrote:
>>> I always forget stuff like thisa
>>>
>>> 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.

Pllptpptt! to the naysayers.

--
Lew

--- 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

[toc] | [prev] | [next] | [standalone]


#17544

From"Jim Gibson" <jim.gibson@1:261/38.remove-k2r-this>
Date2012-08-09 18:44 +0000
Message-ID<5023FE3E.56493.calajapr@time.synchro.net>
In reply to#17543
  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

[toc] | [prev] | [next] | [standalone]


#17560

From"bob smith" <bob.smith@1:261/38.remove-k2r-this>
Date2012-08-09 18:44 +0000
Message-ID<5023FE41.56509.calajapr@time.synchro.net>
In reply to#17537
  To: markspace
From: bob smith <bob@coolfone.comze.com>

On Wednesday, August 8, 2012 3:20:08 PM UTC-5, markspace wrote:
> On 8/8/2012 12:23 PM, bob smith wrote:
>
> > I always forget stuff like thisa
>
> >
>
> > 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.  And just about every noob
>
> tutorial and "Learn Java" book.  But yes, all uninitialized static or
>
> instance fields and all arrays are set to null.  Note this excludes
>
> local variables.

Why does Eclipse seem to frequently tell me to explicitly initialize a 
reference to null?

Is it kind of being paranoid?

--- 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

[toc] | [prev] | [next] | [standalone]


#17565

From"Eric Sosman" <eric.sosman@1:261/38.remove-tos-this>
Date2012-08-09 19:46 +0000
Message-ID<50240988.56517.calajapr@time.synchro.net>
In reply to#17560
  To: bob smith
From: Eric Sosman <esosman@ieee-dot-org.invalid>

On 8/9/2012 12:12 PM, bob smith wrote:
> On Wednesday, August 8, 2012 3:20:08 PM UTC-5, markspace wrote:
>> On 8/8/2012 12:23 PM, bob smith wrote:
>>
>>> 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.  And just about every noob
>> tutorial and "Learn Java" book.  But yes, all uninitialized static or
>> instance fields and all arrays are set to null.  Note this excludes
>> local variables.
>
> Why does Eclipse seem to frequently tell me to explicitly initialize a
reference to null?
>
> Is it kind of being paranoid?

     Did you see the part about "excludes local variables?"  Maybe
that's what Eclipse is complaining about, and not about class or instance 
fields, or array elements.

--
Eric Sosman
esosman@ieee-dot-org.invalid

--- 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

[toc] | [prev] | [next] | [standalone]


#17643

From"bob smith" <bob.smith@1:261/38.remove-t9h-this>
Date2012-08-10 18:39 +0000
Message-ID<50254C53.56589.calajapr@time.synchro.net>
In reply to#17565
  To: Eric Sosman
From: bob smith <bob@coolfone.comze.com>

On Thursday, August 9, 2012 1:34:21 PM UTC-5, Eric Sosman wrote:
> On 8/9/2012 12:12 PM, bob smith wrote:
>
> > On Wednesday, August 8, 2012 3:20:08 PM UTC-5, markspace wrote:
>
> >> On 8/8/2012 12:23 PM, bob smith wrote:
>
> >>
>
> >>> 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.  And just about every noob
>
> >> tutorial and "Learn Java" book.  But yes, all uninitialized static or
>
> >> instance fields and all arrays are set to null.  Note this excludes
>
> >> local variables.
>
> >
>
> > Why does Eclipse seem to frequently tell me to explicitly initialize a
reference to null?
>
> >
>
> > Is it kind of being paranoid?
>
>
>
>      Did you see the part about "excludes local variables?"  Maybe
>
> that's what Eclipse is complaining about, and not about class or
>
> instance fields, or array elements.
>
>
>
> --
>
> Eric Sosman
>
> esosman@ieee-dot-org.invalid

I missed that "excludes local variables" part.  I guess that's probably what it 
is.

--- 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

[toc] | [prev] | [next] | [standalone]


#17550

From"Roedy Green" <roedy.green@1:261/38.remove-k2r-this>
Date2012-08-09 18:44 +0000
Message-ID<5023FE3F.56499.calajapr@time.synchro.net>
In reply to#17532
  To: bob smith
From: Roedy Green <see_website@mindprod.com.invalid>

On Wed, 8 Aug 2012 12:23:30 -0700 (PDT), bob smith
<bob@coolfone.comze.com> wrote, quoted or indirectly quoted someone
who said :

>Are all 256 positions automatically initialized to null?

see http://mindprod.com/jgloss/array.html
--
Roedy Green Canadian Mind Products http://mindprod.com A new scientific truth 
does not triumph by convincing its opponents and making them see the light,
but rather because its opponents eventually die, and a new generation grows up 
that is familiar with it.
~ Max Planck 1858-04-23 1947-10-04

--- 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

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.java.programmer


csiph-web