¿Cómo funciona la búsqueda binaria en Java?