There are quite a few optimizations with strings, for sure. Such as replacing
concatenation using "+" operator with StringBuilder and concatenation of
literals with a single literal (*).
There's an interesting exception to that rule. The following will work as
expected:
"one " + "two " + "three"
gets turned into
"one two three"
However, in the context of this:public String getOne() { return "one "; }
this: getOne() + "two " + "three"
will not get turned into
getOne() + "two three"
Sorry if this was off-topic.
Alexey
2001 Honda CBR600F4i (CCS)
1992 Kawasaki EX500
http://azinger.blogspot.com
http://bsheet.sourceforge.net
http://wcollage.sourceforge.net
________________________________
From: Marcelo Fukushima <[email protected]>
To: [email protected]
Sent: Wednesday, August 26, 2009 1:32:28 PM
Subject: Re: Optimizations? was Re: [The Java Posse] A quick and dirty way to
throw unchecked exceptions
i guess nowadays javac translates almost literally the source code
into bytecode, leaving the hard work for JIT
On Wed, Aug 26, 2009 at 7:29 AM, Christian
Catchpole<[email protected]> wrote:
>
> of course it's need a return if it's NOT being JITted... im talking a
> load of crap tonight.. aload_0 f crap.. get it! :)
>
> On Aug 26, 8:09 pm, Christian Catchpole <[email protected]>
> wrote:
>> yeah, don't take too much notice of that. i noticed that if you
>> disassemble a "throw", it doesn't have a return. but the a=a does.
>> maybe its requirement of bytecode that a method that does return,
>> finishes with return byte code. but its like Java strings being a
>> char array with a size. there's no need to terminate it. it cant run
>> off the end.
>>
>> On Aug 26, 7:53 pm, Fabrizio Giudici <[email protected]>
>> wrote:
>>
>>
>>
>> > Christian Catchpole wrote:
>> > > Compile this.. (any package you like, or no package at all)
>>
>> > > public class Rethrow {
>> > > public static void unchecked(Throwable t) {
>> > > t=t;
>> > > }
>> > > }
>>
>> > > javap reports the byte code as..
>>
>> > > public static void unchecked(java.lang.Throwable);
>> > > Code:
>> > > Stack=1, Locals=1, Args_size=1
>> > > 0: aload_0
>> > > 1: astore_0
>> > > 2: return
>>
>> > I'm surprised - I expected that the compiler would optimize out the
>> > useless operation and only output the return...
>>
>> > --
>> > Fabrizio Giudici - Java Architect, Project Manager
>> > Tidalwave s.a.s. - "We make Java work. Everywhere."
>> > weblogs.java.net/blog/fabriziogiudici-www.tidalwave.it/blog
>> > [email protected] - mobile: +39 348.150.6941
> >
>
--
http://mapsdev.blogspot.com/
Marcelo Takeshi Fukushima
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The
Java Posse" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---