[NTLUG:Discuss] Java/Linux versus school teacher.
Rusty Haddock
rusty at fe2o3.lonestar.org
Mon Mar 19 12:24:05 CDT 2007
Patrick R. Michaud wrote:
>steve wrote:
>> Do we have any Java/Linux guru's in the house?
I play one on TV. Does that count? :-)
>> [...]
>> Assume x and y are String variables with x="Hello" and y=null.
>> [...]
>> 2) It the operation y="Hello"; is performed then the result
>> of (x==y) is:
>> a) true
>> b) false
>> c) x and y becoming aliases
>> d) x being set to the value null
>> e) a run-time error
>>
>> Question 2 is a problem. My son said "(a) true" but the
>> teacher says that the answer is "(b)false" - and whilst
>> I'm not a Java expert (I'm a C++ person) I can see why.
>
>Actually, the answer in this case is "(a) true". IIRC,
>Strings in Java are immutable, and so the compiler optimizes
>the compiled code such that any repeated constants are
>folded to always refer to the same String object. Thus, with
Immutable is irrelevant in this case. It has nothing to do with repeated
constants getting stored once or n-times. :-)
>> String x="Hello";
>> String y="Hello";
>
>The compiler generally optimizes this so that x and y both
>refer to the same String object. Thus with
And this has been the case with the Java Language since Day 1, I believe.
>> if ( x==y )
>> println ( "true" ) ;
>> else
>> println ( "false" ) ;
>
>the answer comes out "true". :-)
>
>A useful test might be to try something like:
>
> String x = "Hello";
> String y = "He" + "llo";
I completely agree. This would be a far more pertinent question.
>At any rate, I think that your son has a case to be
>made here. I'm sure that the teacher was intending to
Again, I agree here. I wonder if the teacher didn't understand the
question he/she was asking or was a Microsoft compiler involved.
Microsloth did manage to mangle the Java language while still calling
it Java.
A copy of the standard Java definition should be presented to the
teacher.
Steve, please correct your son's teacher!
-Rusty-
P.S. Teachers are NOT infallible. I once took an exam to skip FORTRAN
programming in an introductory engineering class (IN COLLEGE no less)
because I had had the subject in high school and I was quite good at it.
I changed my grade on that exam from 82% to a 96% simply by showing the
"correct" answers were wrong and had the answer key corrected in about 5
or 6 different places. I was an incoming freshman at the time straight
out of high school. I would have gotten a 100% but I had forgotten
to slash my zeroes in two answers (as I had done with the rest of my
answers). :-(
--
_____ Rusty Haddock = AE5AE = rusty at fe2o3.lonestar.org
|\/ o \ o **Out yonder in the Van Alstyne (TX) Metropolitan Area**
| ( -< O o Every day I think people can't get more stupid.
|/\__V__/ Every day I'm proven horribly wrong.
More information about the Discuss
mailing list