Diferencias entre Java 11 al 21

Alguien sabe si OpenJDK a cambiado mucho desde su version 11 a la 21? por que tengo instalada la ultima que me permitio dnf :

sudo dnf install java-latest-openjdk

que al parecer es la 21.0.7 estoy utilizando un recurso de 2022 ‘Head First Java’ 3rd Edicion , en ella utilizan java 11 la mayoria del tiempo, alguien me puede decir por que? y aun mas importante hay una gran diferencia entre estas versiones? al menos para alguien que tiene que disenar el Backend y la GUI con swing ?

Gracias ;D

1 me gusta

Buenas,
En principio yo diría que las nuevas versiones son compatibles con las anteriores. Supongo que habrá algún caso en específico que no, pero en principio no debería de haber muchos problemas a la hora de ejecutar un código antiguo con un JDK más nuevo.

Sobre porque la aplicación que mencionas usa esa versión de Java, pues no lo sé, quizás cuando empezó el desarrollo era una versión estable y así se a quedado, aunque no me hagas mucho caso, no sabría decirte.

Sobre Swing no te preocupes, las nuevas versiones suelen traer nuevas clases o funcionalidades, pero no te van a quitar nada de Swing.

La versión 21 esta bien, es estable y moderna, aunque si te da cosa te puedes ir a por la 19 o algo así, eso ya es tu elección. Por lo poco que se de tu caso, creo que la 21 está bien.

Un saludo : ) .

2 Me gusta

Te lo agradezco : ) creo que me voy a quedar de momento como voy haber si tengo algun problema lo revisare manualmente

2 Me gusta

Hola,

Hay unas cuantas diferencias entre esas versiones, ya que hay otra versión importante entre medias (17) que implemento diversas cosas nuevas como:

Records
Clases inmutables sin tanto código:

public record Persona(String nombre, int edad) {}

Persona p = new Persona(“Luis”, 30);

Switch Expressions
El switch puede devolver valores:

int n = switch (dia) {

case "LUNES" -> 1;

case "MARTES" -> 2;

default -> 0;

};

Y en la 21 lo cambios mas importantes son:

Virtual Threads (Project Loom)
Record Patterns

Que son cosas nuevas.

En resumen que me enrollo mucho xd

Si tienes cualquier tipo de problema por cosas que queden deprecadas añade a los parametros de compilacion - - release 11 y compilaras para esa versión.