JVMs tend to load classes as they are needed, which means the first time you need a class in a piece of software, it takes longer to use.
The system boots when you load the embedded driver, org.apache.derby.jdbc.EmbeddedDriver. In a server framework, the system boots when you start the server framework. Booting Derby loads basic Derby classes.
Booting the first database loads some more Derby classes. The default behavior is that the first database boots when the first connection is made to it. You can also configure the system to boot databases at startup. Depending on your application, one or the other might be preferable.
Compiling the first query loads additional classes.
For any of these events, you can control the impact they have on users by starting them in separate threads while other tasks are occurring.
In addition, if you are using PreparedStatements, prepare them in a separate thread in the background while other tasks are occurring.