On 05/26/2012 12:09 AM, Vitaly Davidovich wrote:

Yes, methods/constructors as well - I should've pointed that out but only answered the field question that was originally asked.

Valid points on metadata and stack pollution, although a bit pedantic for real code :).


given that this code is in java.lang, thus use by millions,
I have no problem to agree that when I review this kind of code,
I switch myself in pedandic-mode.

Thanks


cheers,
Rémi

Sent from my phone

On May 25, 2012 6:03 PM, "Rémi Forax" <fo...@univ-mlv.fr <mailto:fo...@univ-mlv.fr>> wrote:

    On 05/25/2012 11:50 PM, Vitaly Davidovich wrote:

        This is specific to private fields in inner classes -


    and methods and constructors

        java allows access to
        them from the outer class, but the JVM doesn't so javac
        generates synthetic
        accessor methods for them.  Don't think it's a problem for JIT
        compiler
        though as it should inline them.


    yes, there are unconditionally inlined so performance is not the
    problem.
    The issues are more that the compiler generates unnecessary code,
    unnecessary class metadata, stack pollution and stacktrace
    pollution too.

    Rémi


        Sent from my phone
        On May 25, 2012 5:23 PM, "Ulf Zibis"<ulf.zi...@gmx.de
        <mailto:ulf.zi...@gmx.de>>  wrote:

            Am 25.05.2012 22 <tel:25.05.2012%2022>:30, schrieb Jeff Hain:

                Hello.

                 In HashMap, the class Holder should not declare the
                static final fields

                    'private' because the compiler will generate an
                    accessor in that case,

                I wasn't aware that making fields private could have a
                downside
                (other than making them non-visible).

                Could you, or anyone, please give (a link to) more
                info about this?

            I'm interested too.

            -Ulf




Reply via email to