Diferencia entre .java y .class

Shikha Chaudhary 12 octubre 2023
  1. Conceptos básicos para escribir un programa en Java
  2. El archivo .java en Java
  3. El archivo .class en Java
  4. Las diferencias entre los archivos .java y .class
  5. Conclusión
Diferencia entre .java y .class

Java es un lenguaje de programación independiente de la plataforma. Implica un proceso de ejecución de dos pasos en lugar de la compilación habitual de un paso como el lenguaje C.

La ejecución del primer paso se lleva a cabo utilizando un compilador, independiente del sistema operativo. La ejecución del segundo paso se lleva a cabo con la ayuda de una máquina virtual, también llamada JVM o Java Virtual Machine.

Durante la ejecución en dos pasos, se forman archivos con la extensión .java y .class. Este artículo analizará la diferencia básica entre los archivos .java y .class.

Conceptos básicos para escribir un programa en Java

Para comprender el concepto de archivos .java y .class, uno debe saber cómo se ejecuta un programa Java. Veamos el siguiente código como ejemplo.

Java
 javaCopypublic class DemoProgram {
  /* This is a demo Java program that will print 'Hello Java' as the output */

  public static void main(String[] args) {
    System.out.println("Hello Java");
  }
}

Siga estos pasos para ejecutar este programa.

Antes de continuar, tenga en cuenta los siguientes puntos:

  • El código fuente es el código que escribe un programador en cualquier lenguaje de programación. Lo escribimos manualmente para solucionar cualquier problema.

  • En Java, cada programa constituye una class. Puede haber más de una clase en un solo programa dependiendo del propósito de escribir el código. Como en el ejemplo anterior, solo hay una única clase llamada DemoProgram.

Hacemos un archivo de texto en la sección de arriba y lo guardamos con la extensión .java. Este es el archivo fuente que pasa a través del compilador.

Esto codifica el código fuente en una codificación que es independiente de la máquina. Esto se llama Bytecode.

Como ya se mencionó, un programa puede tener una o más clases. Por lo tanto, durante la codificación, el contenido de cada clase va por separado en un archivo .class diferente.

Luego, estos archivos pueden ejecutarse en cualquier sistema, ya que son independientes de la máquina o del sistema operativo.

¿Viste cuando los archivos .java y .class entran en escena? El archivo .java se forma cuando guardamos un código fuente con esta extensión. El archivo .class se forma cuando se realiza la compilación.

El archivo .java en Java

El archivo .java no es más que el propio código fuente en Java.

En pocas palabras, es el archivo que contiene el código que escribimos. Podemos usar un editor de texto simple o cualquier IDE para escribir un programa Java.

Cualquier cosa que usemos, guardamos el programa o el código fuente que hemos escrito. Para guardar un archivo de código fuente de Java, usamos la extensión .java.

Cada idioma tiene una convención diferente para guardar el archivo de código fuente. Al igual que en el lenguaje C, el archivo de código fuente tiene la extensión .c; en python, es .py, y en C++, usamos .cpp.

El archivo .class en Java

El archivo .class es el archivo que contiene el código de bytes de una clase en el código fuente. Este archivo se forma cuando tiene lugar la compilación.

Cuando mencionamos que Java es un lenguaje independiente de la plataforma, se debe a estos archivos de clase. Estos archivos pueden ejecutarse en cualquier sistema operativo o máquina.

Un archivo .class puede considerarse un archivo .java compilado. Es el archivo que se ejecuta en la JVM (Java Virtual Machine).

El número de archivos .class no tiene por qué ser necesariamente uno. Es igual al número de clases que tiene un código fuente, ya que cada clase va a un archivo .class diferente después de la compilación.

Ejemplo 1:

Java
 javaCopypublic class DemoProgram {
  /* This is a demo Java program that will print 'Hello Java' as the output */

  public static void main(String[] args) {
    System.out.println("Hello Java");
  }
}

Producción :

 textCopyC:\Users\PC>javac DemoProgram.java
    
C:\Users\PC>java DemoProgram    
Hello Java

En este código, solo hay una clase, DemoProgram. Entonces, solo obtenemos un archivo .class, DemoProgram, debido a la compilación.

Ahora, veamos otro ejemplo.

Ejemplo 2:

Java
 javaCopy// A class
class TestCase {
  public static void main(String[] args) {
    System.out.println("An example with multiple classes.");
  }
}

// Another class
class Demo {
  public static void main(String[] args) {
    System.out.println("This is an example.");
  }
}

// One more class
class Example {
  public static void main(String[] args) {
    System.out.println("It contains three classes.");
  }
}

Compile el archivo:

Java
 javaCopyC :\Users\PC > javac Example.java

Después de la compilación, obtenemos no uno sino tres archivos .class como salida. Por lo tanto, puede ver que hay tantos archivos .class como clases en el código fuente.

Podemos ejecutar cada archivo .class por separado de la siguiente manera:

Java
 javaCopyC :\Users\PC > java TestCase An example with multiple classes.

               C :\Users\PC
    > java Demo This is an example.

      C :\Users\PC
    > java Example It contains three classes.

Las diferencias entre los archivos .java y .class

La diferencia entre estos dos tipos de archivos se resume en la siguiente tabla.

Archivo .java Archivo .clase
Contiene el código fuente de Java. Contiene el código Java Byte.
Un programador o un individuo lo escribe. Se forma como resultado de la compilación de un archivo .java.
Es legible por humanos. Se utiliza en JVM para la ejecución del programa.
Se forma antes de un archivo .class. Sin esto, no se puede formar un archivo de clase. Siempre se forma después de un archivo .java.
Podemos escribir esto en cualquier editor de texto o IDE de Java. Podemos ejecutar esto en cualquier sistema operativo o máquina.

Conclusión

Este artículo nos enseñó la principal diferencia entre un archivo .java y un archivo .class. También vimos cómo un programa Java se ejecuta a nivel de máquina y de usuario.

Este concepto está en la base de la programación Java y es importante comprenderlo para ejecutar programas y aplicaciones Java de manera eficiente.

Artículo relacionado - Java File

Artículo relacionado - Java Class