Well in (very) general:
Compile time error - is an error that your compiler will catch, or one that your compiler "knows" is incorrect. For example if you try to assign an incorrect type:
Integer myInteger = new ArrayList();
Your compiler complain that there is a type mismatch... so it's "saving you from yourself" or in other words pointing out any syntactic error that can be picked up from
Java's grammar.
Runtime errors - these are errors that could not have been for foreseen before the application actually *ran* and therefore the error will be thrown at runtime, or when the application is executing. So a good example is if you have a method that does simple division and accepts two integers, it's quite possible that one of the integers passed will be 0 and if you try to divide by zero you'll get a runtime error. There was no way for Java to foresee that you will pass that value. (this is a dumb example but illustrates the point)
After you get past this I suggest you read more into the differences between checked and unchecked errors in java...