¿El código Java utiliza automáticamente múltiples núcleos de procesador si está disponible?

Si hay varios núcleos disponibles en un procesador determinado, ¿se utilizarán automáticamente cuando JVM ejecute un código Java escrito por el usuario? ¿O el código tendrá que escribirse específicamente para aprovechar los múltiples núcleos?

Quiero decir, ¿tenemos que crear el código de manera diferente para que JVM pueda aprovechar múltiples núcleos mientras lo ejecuta, digamos por medio del programador que crea múltiples hilos en el código de usuario? Y digamos que si no utilizamos subprocesos múltiples en el código de Java, JVM no podrá aprovechar múltiples núcleos sin importar cuántos núcleos estén disponibles. Probablemente este sea el caso, pero no estoy seguro.

Respuestas a la pregunta(2)

Su respuesta a la pregunta