Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #36531
| From | Arne Vajhøj <arne@vajhoej.dk> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Generics and downcasts |
| Date | 2017-04-25 16:20 -0400 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <odob39$s00$1@gioia.aioe.org> (permalink) |
| References | <generics-20170424231405@ram.dialup.fu-berlin.de> <odoaaj$9q$1@gwaiyur.mb-net.net> |
On 4/25/2017 4:07 PM, Marcel Mueller wrote: [bunch of good stuff deleted] > It has to pay for the concept of type erasure with compatibility to old > code. > > If you dislike that, choose another language. .NET for instance has > strong typing at IL level and does not share this impact. .NET got generics relative early in its history, so MS decided that compatibility with old collection classes was not that important. Java was in a different situation, so type erasure and collection compatibility was chosen. And we have to live with it. > There are other pitfalls that are by far more expensive. > E.g. if you miss to declare a trivial Java method as final. This > prevents the JIT from inlining the method body. This may add an overhead > of an order of magnitude or even more. I think this is a myth. https://www.ibm.com/developerworks/library/j-jtp1029/ (Brian Goetz 2002) <quote> Like many myths about Java performance, the erroneous belief that declaring classes or methods as final results in better performance is widely held but rarely examined. The argument goes that declaring a method or class as final means that the compiler can inline method calls more aggressively, because it knows that at run time this is definitely the version of the method that's going to be called. But this is simply not true. Just because class X is compiled against final class Y doesn't mean that the same version of class Y will be loaded at run time. So the compiler cannot inline such cross-class method calls safely, final or not. Only if a method is private can the compiler inline it freely, and in that case, the final keyword would be redundant. </quote> Arne
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: Generics and downcasts Marcel Mueller <news.5.maazl@spamgourmet.org> - 2017-04-25 22:07 +0200
Re: Generics and downcasts Arne Vajhøj <arne@vajhoej.dk> - 2017-04-25 16:20 -0400
Re: Generics and downcasts Eric Douglas <e.d.programmer@gmail.com> - 2017-04-25 13:35 -0700
Re: Generics and downcasts Arne Vajhøj <arne@vajhoej.dk> - 2017-04-25 19:54 -0400
Re: Generics and downcasts Marcel Mueller <news.5.maazl@spamgourmet.org> - 2017-04-25 22:40 +0200
Re: Generics and downcasts Eric Sosman <esosman@comcast-dot-net.invalid> - 2017-04-25 18:13 -0400
Re: Generics and downcasts Arne Vajhøj <arne@vajhoej.dk> - 2017-04-25 19:53 -0400
csiph-web