English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Comprender profundamente la palabra clave final en java

 Explicación detallada del keyword final en Java:

Prólogo:

El keyword final en Java es muy importante y se puede aplicar a clases, métodos y variables. En este artículo, te llevaré a ver qué es el keyword final? ¿Qué representa declarar variables, métodos y clases como final? ¿Cuáles son las ventajas de usar final? Finalmente, también hay algunos ejemplos de uso del keyword final. El final se utiliza a menudo junto con static para declarar constantes, también verás cómo el final mejora el rendimiento de la aplicación.

Significado del keyword final63;

El keyword final en Java es un keyword reservado que puede declarar variables de miembro, métodos, clases y variables locales. Una vez que declare una referencia como final, no podrá cambiar esta referencia, el compilador verificará el código y si intenta inicializar la variable nuevamente, el compilador generará un error de compilación.

¿Qué es una variable final?

Cualquier variable de miembro o variable local (las variables en el método o en el bloque de código se llaman variables locales) declarada como final se llama variable final. Las variables finales se utilizan a menudo junto con el keyword static, como constantes. A continuación se muestra un ejemplo de variable final:

public static final String LOAN = "loan";
LOAN = new String("loan") //error de compilación inválido

Las variables finales son de solo lectura.

¿Qué es un método final?63;

La palabra clave final también puede declarar métodos. Si se antepone la palabra clave final a un método, significa que ese método no puede ser sobrescrito por métodos de la subclase. Si crees que una función de un método ya es suficientemente completa y no necesita cambios en la subclase, puedes declarar ese método como final. Los métodos finales son más rápidos que los métodos no finales, ya que ya están vinculados estáticamente en la compilación y no necesitan vinculación dinámica en tiempo de ejecución. A continuación se muestra un ejemplo de método final:

class PersonalLoan{
  public final String getName(){
    return "personal loan";
  }
}
class CheapPersonalLoan extends PersonalLoan{
  @Override
  public final String getName(){
    return "cheap personal loan"; //error de compilación: el método sobrescrito es final
  }
}

¿Qué es una clase final?

Una clase que se declara con final se llama clase final. Las clases finales suelen ser completas y no pueden ser heredadas. Java tiene muchas clases que son finales, como String, Interger y otros paquetes de envoltura. A continuación se muestra un ejemplo de clase final:

 class PersonalLoan final{
  }
  class CheapPersonalLoan extends PersonalLoan{ //error de compilación: no se puede heredar de una clase final
}

  Beneficios de la palabra clave final

A continuación, se resumen algunos beneficios del uso de la palabra clave final

  1. La palabra clave final mejora el rendimiento. El JVM y la aplicación Java cachearán las variables finales.
  2. Las variables finales pueden compartirse de manera segura en entornos multihilo sin necesidad de开销同步 adicionales.
  3. El uso de la palabra clave final permite que el JVM optimice métodos, variables y clases.

Clases inmutables

Para crear una clase inmutable, se debe usar la palabra clave final. Una clase inmutable es aquella en la que sus objetos, una vez creados, no pueden ser modificados. String es un ejemplo de clase inmutable. Las clases inmutables tienen muchos beneficios, como que sus objetos son de solo lectura, pueden compartirse de manera segura en entornos multihilo sin necesidad de开销同步 adicionales, etc.

Conocimientos importantes sobre final

  1. La palabra clave final se puede usar para variables miembro, variables locales, métodos y clases.
  2. Las variables miembro finales deben ser inicializadas en el momento de su declaración o en el constructor, de lo contrario se generará un error de compilación.
  3. No puedes asignar un valor a una variable final más de una vez.
  4. Las variables locales deben ser inicializadas en el momento de su declaración.
  5. Todas las variables en una clase anónima deben ser variables finales.
  6. Los métodos final no pueden ser sobreescritos.
  7. Las clases final no pueden ser heredadas.
  8. La palabra clave final es diferente de la palabra clave finally, que se utiliza para el manejo de excepciones.
  9. La palabra clave final es fácil de confundir con el método finalize(), que está definido en la clase Object y es llamado por el JVM antes de la recolección de basura.
  10. Todas las variables declaradas en una interfaz son final.
  11. Las palabras clave final y abstract son inversamente proporcionales, una clase final no puede ser abstracta.
  12. Los métodos final se enlazan en la fase de compilación, lo que se conoce como enlace estático (static binding).
  13. Las variables final que no se inicializan en el momento de la declaración se conocen como variables final en blanco (blank final variable), deben inicializarse en el constructor o mediante la llamada this(). De lo contrario, el compilador generará un error de compilación: "La variable final (nombre del variable) debe inicializarse".
  14. Declarar una clase, método o variable como final puede mejorar el rendimiento, de modo que el JVM tenga la oportunidad de estimar y optimizar.
  15. Siguiendo la convención del código Java, las variables final son constantes y, generalmente, los nombres de las constantes deben estar en mayúsculas:
private final int CONTADOR = 10;

Para declarar un objeto de conjunto como final significa que la referencia no puede ser modificada, pero puedes agregar, eliminar o cambiar el contenido. Por ejemplo:

private final List Préstamos = new ArrayList();
lista.add("préstamo hipotecario"); //Válido
lista.add("préstamo personal"); //Válido
préstamos = new Vector(); //No válido

Ya sabemos qué son las variables final, métodos final y clases final. Usar final cuando sea necesario, puede escribir código más rápido y mejor.

 Gracias por leer, espero que pueda ayudar a todos, gracias por el apoyo a nuestro sitio!

Te gustará