di per se Java non fa, "pilota", nel senso che ciò che viene fatto direttamente dalla JVM è relativamente poco, gran parte del lavoro è invece contenuto in delle libreria, collegate a Java come metodi nativi, che hanno lo stesso nome su tutti i sistemi operativi ma il contenuto adatto ad essere eseguito sul sistema opsite, questo significa che quando tu chiami il comando astratto, generico di altissimo livello "CreaThread" la JVM eseguirà il codice contenuto nella funzione importata dalla libreria nativa Thread.qualcheè (tanto per fare un esempio).
Infatti quando vuoi importare un metodo nativi da una libreria in Java scrivi

Sustem.loadLibrery("NomeLibreria");

senza specificare l'estensione visto che sarà la JVM a decidere qualè quella usata dal sistema(così puoi tenere vicine Libreria.a e Libreria.dll, tu chiami Libreria e la funzione func, quale sarà quella giusta lo decide la JVM).

Ovviamente però la Sun non può astrarre tutte le funzioni possibili di un sistema operativo, o in genere, di un dispositivo come cellulari ecc... quindi per farlo in Java, anche qui con relativamente poche righe, devi usare dei metodi nativi che insegnino a Java a pilotare questa funzionalità del sistema operativo, che però non esistono nella core standard quindi o li scrivi tu o cerchi una libreria già esistente e in Java "al 99% c'è sempre qualcuno che ci ha già pensato".