Leonard Slatkin said:
"compile" (which should recreate the changed .class files, anyways,
right)?
Not always... try it with a static final variable in class A that gets used
in class B. A compiler, seeing that the variable is final and not allowed
to change at runtime, has the option to inline the _value_ of the variable
into class B. Javac is oblivious to that kind of change, and will not see
that B needs to be recompiled.
That's why you have to occasionally clean and "build" all the classes
together, but how often you do it is up to you. There's a tradeoff between
the speed of compiling only what's changed, and knowing that it really does
compile from the ground up.
I nearly always clean and compile from scratch. That said, I make .jar
files of the libraries I have developed in the past that are being used in
the current project. So there's typically not a lot of "loose" code. For
example in my current Struts app, the data access layer is in a .jar file,
having been written a while ago, and only the Actions and Forms need to be
compiled in order to "build" the project.