Thus the first pass through a block is done at interpreter speed, then you pay the cost of compilation, then further passes are done at compiled code speed. This means that if you try to just run the code straight off the CD, you might get the wrong class definition. But Java spots this, and gives an error message. To avoid it, always compile a teaching example before running it. This is not usually what you want.
Shallow copy is a copy of just the top level.
Deep copy is shallow copy plus a recursive copy of any objects that this object references. Likewise for 10 to the power 78. Also show what i is called in each place, i.e. i, super.i, foo.i etc. It doesn't add much and it causes confusion. After that the secret got out.