Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #17429

Re: why does this work?

Path csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx02.iad01.newshosting.com!newshosting.com!204.153.247.121.MISMATCH!indigo.octanews.net!news-out.octanews.net!mauve.octanews.net!newspump.sol.net!news-out.readnews.com!transit3.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!53ab2750!not-for-mail
From "Daniel Pitts" <daniel.pitts@1:261/38.remove-qhs-this>
Subject Re: why does this work?
Message-ID <5022AB86.56379.calajapr@time.synchro.net> (permalink)
X-Comment-To dkoleary
Newsgroups comp.lang.java.programmer
In-Reply-To <5022AB86.56377.calajapr@time.synchro.net>
References <5022AB86.56377.calajapr@time.synchro.net>
X-FTN-AREA COMP.LANG.JAVA.PROGRAMMER
X-FTN-MSGID 1:261/38 c848e878
X-FTN-REPLY 1:261/38 4be438ba
Content-Type text/plain; charset=IBM437
Content-Transfer-Encoding 8bit
X-Gateway time.synchro.net [Synchronet 3.16a-Win32 NewsLink 1.98]
Lines 56
Date Wed, 08 Aug 2012 19:04:28 GMT
NNTP-Posting-Host 69.21.70.65
X-Complaints-To news@tds.net
X-Trace newsreading01.news.tds.net 1344452668 69.21.70.65 (Wed, 08 Aug 2012 14:04:28 CDT)
NNTP-Posting-Date Wed, 08 Aug 2012 14:04:28 CDT
Organization tds.net
X-Received-Bytes 3155
Xref csiph.com comp.lang.java.programmer:17429

Show key headers only | View raw


  To: dkoleary
From: Daniel Pitts <newsgroup.nospam@virtualinfinity.net>

On 8/8/12 10:30 AM, dkoleary wrote:
> Hi;
>
> New java programmer.  So new, in fact, that I'm still working my way through
the O'Reilly Head First Java book.  One of the end of chapter questions 
involves identifying if a sample class will compile and what to do to make it 
compile if it won't.
>
> The sample class from chapter 4 is:
>
> class XCopy
> {  public static void main(String[] args)
>     {  int orig = 42;
>        XCopy x = new XCopy();
>        int y = x.go(orig);
>        System.out.println(orig + " " + y);
>     }
>
>     int go(int arg)
>     {  return arg * 2;   }
> }
>
> The book says that it'll compile and run, displaying "42 84" and, sure
enough, it does:
>
> $ javac XCopy.java
> $ java XCopy
> 42 84
>
> How come that isn't recursive?  XCopy.main() instantiates a new XCopy.
Shouldn't that new XCopy instance also instantiate a new XCopy? new XCopy() 
creates a new instance of the XCopy class, which executes Constructors.  main 
isn't executed again because of this.  main is only automatically executed by 
the JVM on start-up, once.
>
> I was figuring this would run until the XCopy.go function tried returning a
number that wouldn't fit in int anymore... That's obviously not the case, but I 
don't know why.
int can fit any number in the range [-2^31, 2^31).  42 and 84 are both within 
that range.  It is possible that if you pass in a number with a large enough 
magnitude, you will end up with an overflow.  In Java (and many 2s-compliment 
integer systems), overflow will simply throw-away the upper bits, and you will 
have what is called "wrap-around".  This actually makes many of the basic 
operations easier, because signed numbers and unsigned numbers behave the same 
way.


Hopefully this helps.

--- BBBS/Li6 v4.10 Dada-1
 * Origin: Prism bbs (1:261/38)
--- Synchronet 3.16a-Win32 NewsLink 1.98
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

why does this work? "dkoleary" <dkoleary@1:261/38.remove-qhs-this> - 2012-08-08 19:04 +0000
  Re: why does this work? "Daniel Pitts" <daniel.pitts@1:261/38.remove-qhs-this> - 2012-08-08 19:04 +0000
    Re: why does this work? "dkoleary" <dkoleary@1:261/38.remove-k2r-this> - 2012-08-09 18:44 +0000
      Re: why does this work? "Lew" <lew@1:261/38.remove-k2r-this> - 2012-08-09 18:44 +0000
  Re: why does this work? "Eric Sosman" <eric.sosman@1:261/38.remove-r72-this> - 2012-08-08 20:06 +0000
  Re: why does this work? "Roedy Green" <roedy.green@1:261/38.remove-k2r-this> - 2012-08-09 18:44 +0000
    Re: why does this work? "glen herrmannsfeldt" <glen.herrmannsfeldt@1:261/38.remove-t9h-this> - 2012-08-10 18:39 +0000

csiph-web