Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #37446
| From | Eric Sosman <esosman@comcast-dot-net.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Are Outer Classes Loaded Lazily? |
| Date | 2017-09-21 16:20 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <oq16v8$sn$1@dont-email.me> (permalink) |
| References | <opu86b$k29$1@news.albasani.net> <oq13am$9v4$1@gwaiyur.mb-net.net> |
On 9/21/2017 3:18 PM, Marcel Mueller wrote:
> On 20.09.17 19.23, j4n bur53 wrote:
>> Assume I have a nested inner class Inner,
>> and I do the following:
>>
>> Class x=Class.forName('../Outer$Inner');
>>
>> And then I do the following:
>>
>> Class y=x.getEnclosingClass();
>>
>> Is the enclosing class '../Outer' already
>> loaded during the Class.forName() or only
>> when I do getEnclosingClass() ?
>
> AFAIK there are no dependencies in static construction of class types,
> regardless whether they are inner, outer or whatever.
> The only guarantee is, that a class initialization is run before any
> member access. No more, no less. So unless you create such a dependency
> you cannot assume the outer class to be initialized.
>
> Of course, the rule "before" is also fulfilled if the outer class would
> be initialized immediately. So at the end it is implementation defined.
> But I assume that it is unlikely that an implementation initializes the
> outer class earlier than required, just because this could break a
> dependency of Outer on Inner. I.e. if the initialization of the outer
> class accesses static members of Inner.
Note that the O.P. did not ask when the classes were
initialized, but when they were loaded. Loading is
described (briefly) in JLS 12.2, linking in 12.3, and
initialization in 12.4. For a more comprehensive (and
harder to follow) description, see JVMS 5.3-5.5.
--
esosman@comcast-dot-net.invalid
Twelve hundred seventeen days to go.
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-20 19:23 +0200
Re: Are Outer Classes Loaded Lazily? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-09-20 17:45 -0400
Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-21 01:18 +0200
Re: Are Outer Classes Loaded Lazily? lewbloch@gmail.com - 2017-09-20 17:28 -0700
Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-21 09:29 +0200
Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-21 09:40 +0200
Re: Are Outer Classes Loaded Lazily? lewbloch@gmail.com - 2017-09-21 11:44 -0700
Re: Are Outer Classes Loaded Lazily? Marcel Mueller <news.5.maazl@spamgourmet.org> - 2017-09-21 21:18 +0200
Re: Are Outer Classes Loaded Lazily? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-09-21 16:20 -0400
Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-22 11:12 +0200
Re: Are Outer Classes Loaded Lazily? Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2017-09-22 15:55 -0400
Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-23 18:33 +0200
Re: Are Outer Classes Loaded Lazily? lewbloch@gmail.com - 2017-09-22 13:48 -0700
Re: Are Outer Classes Loaded Lazily? Joshua Cranmer 🐧 <Pidgeot18@verizon.invalid> - 2017-09-22 23:46 -0400
Re: Are Outer Classes Loaded Lazily? lewbloch@gmail.com - 2017-09-25 13:23 -0700
Re: Are Outer Classes Loaded Lazily? j4n bur53 <janburse@fastmail.fm> - 2017-09-24 17:39 +0200
Re: Are Outer Classes Loaded Lazily? Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-09-25 07:38 -0400
Re: Are Outer Classes Loaded Lazily? lewbloch@gmail.com - 2017-09-25 13:25 -0700
csiph-web