That's a complicated one, because strings are a special case:
Interning of String in Java - GeeksforGeeks[
^]
But for all other reference types, the answer is "run time only" - the compiler does not execute your code, so no object instances are actually created.
For example, if your class constructor always creates a file on disk, the file will not exist until your app has been compiled successfully, executed, and the code creates an instance of that class.