Local variables in Java are thread-safe because they are stored on the stack memory, which is private to each thread. This means that each thread has its own copy of the local variables, which eliminates the possibility of concurrent access and modification by other threads.