¿Cuáles son las desventajas y los límites del uso de Java para el desarrollo de aplicaciones iOS y Mac?

En primer lugar, solo para dejar en claro que Java no es compatible con Apple para el desarrollo de iOS y Mac. No estaba claro en su pregunta, así que tuve que mencionarlo.

En segundo lugar, los marcos para el desarrollo de aplicaciones iOS se han escrito históricamente en Objective-C, que se puede usar con C. ¿Por qué una empresa querría rehacer una década de trabajo solo para admitir otro idioma hasta que tenga una razón …?

lo que nos lleva al tercer punto. No hay una razón real En la era moderna, Java no es un gran lenguaje. Es detallado, no tiene suficientes características de lenguaje moderno como “closers” y no puede hacer programación funcional (programadores Haskell: ni siquiera programación pseudo funcional). Scala es el sucesor natural de Java y a Apple se le ocurrió el lenguaje más cercano posible a Scala, que es Swift.

También Apple tiene ciertas características de diseño del sistema operativo, un pequeño ejemplo de las cuales es que en iOS todos los cambios en la interfaz de usuario ocurren en el hilo principal. Sin embargo, esto sería bloqueado constantemente por el recolector de basura JVM. Podría haber formas de diseñar eso o, si tiene el talento, puede diseñar un nuevo lenguaje de programación que hicieron con Swift.

No puedes crear aplicaciones iOS en Java. Pero puedes hacerlo para Mac.
Si desea utilizar algunas soluciones multiplataforma, es mejor utilizar, por ejemplo, Xamarin para dispositivos móviles y Electron para equipos de escritorio.