Да, в Java есть поддержка многоядерных процессоров. Java предоставляет средства для параллельного программирования через многопоточность, что позволяет эффективно использовать многоядерные системы. Многопоточность в Java реализуется через класс Thread и интерфейс Runnable, а также с помощью более высокоуровневых инструментов, таких как ExecutorService, ForkJoinPool, и библиотека java.util.concurrent, которые позволяют управлять потоками и выполнять задачи асинхронно.
Гугли "многопоточность в java" в книгах и прочих туториалах. Скорость увеличивается прямо пропорционально умению программиста писать многопоточный код - код, написанный таким образом, что синхронизационные примитивы блокируют параллельное выполнение, будет выполнятся медленнее, чем его же однопоточная версия.