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.

public 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.

  • Escriba el código anterior en un editor de texto. Luego, guarde el archivo como DemoProgram.java. Tenga en cuenta que el nombre del archivo debe ser el mismo que el nombre de la clase.
  • Abra la ventana del símbolo del sistema con la ruta al directorio donde guardó este archivo.
  • Escriba este comando - javac DemoProgram.java. Pulse la tecla Intro. El comando javac compila un programa Java. Toma un archivo .java como entrada y lo cambia a un archivo de código de bytes. Este paso inicia la compilación del código. El cursor se mueve a la siguiente línea una vez que la compilación se realiza correctamente y sin errores.
    C :\Users\PC > javac DemoProgram.java
    
  • Luego, escribe este comando - java DemoJava. Aquí no usamos .java con el nombre del archivo. La razón es que el comando java toma el código de bytes como entrada y da la salida final según el código fuente. En pocas palabras, esta vez, DemoProgram no es un archivo Java sino un código de bytes.
    C :\Users\PC > java DemoProgram
    
  • El comando anterior hace que el programa se ejecute, y puede ver el resultado como:
    Hello Java
    

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:

public 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 :

C:\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:

// 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:

C :\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:

C :\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