2011-04-26 82 views

Respuesta

8

Echa un vistazo a este white paper on Java.

Básicamente están diciendo que, además de ejecutarse en múltiples entornos (debido a que se interpretan dentro de la JVM), también se ejecuta igual independientemente del entorno. El primero es lo que lo hace portátil, este último es lo que lo hace neutral a la arquitectura. Por ejemplo, el tamaño de un int no varía según la plataforma; está establecido por la JVM.

+0

¡Gran enlace, gracias! – Sergey

+1

Creo que es ambiguo, pero ambos esencialmente significan lo mismo. Puede ser portado a cualquier arquitectura. – xploreraj

+0

No, en absoluto. Si un programa puede ser portado a cualquier arquitectura, pero se ejecutará de manera diferente en arquitecturas diferentes, entonces no es neutral en arquitectura. –

1

Con arquitectura neutra, el libro significa que el código de bytes es independiente de la plataforma subyacente en la que se ejecuta el programa. Por ejemplo, no importa si su sistema operativo es de 32 bits o de 64 bits, el código de bytes de Java es exactamente el mismo. No tiene que volver a compilar el código fuente de Java para 32 bits o 64 bits. (Entonces, "arquitectura" se refiere a la arquitectura de la CPU).

"Portable" significa que un programa escrito para ejecutarse en un sistema operativo funciona en otro sistema operativo sin cambiar nada. Con Java, ni siquiera tiene que volver a compilar el código fuente; un archivo * .class compilado en Windows, por ejemplo, funciona en Linux, Mac OS X o cualquier otro sistema operativo para el que tenga una máquina virtual Java disponible.

Tenga en cuenta que debe tener cuidado con algunas cosas para que su código Java sea realmente portátil. Si, por ejemplo, utiliza rutas de archivos de estilo de Windows (C: \ Users \ Myself ...) en su aplicación Java, no funcionará en otros sistemas operativos.

1

Sospecho que quiere decir que el código puede ejecutarse en muchas plataformas sin necesidad de recompilarlo. También es posible escribir código que trate con el sistema subyacente sin reescrituras o condiciones.

E.g. Los objetos serializados de un sistema Windows de 32 bits se pueden leer en un sistema Linux de 64 bits.

2

Mirando a mi alrededor encontré otro libro que describe la diferencia entre los dos.

Para la arquitectura neutral, el compilador generará un archivo de objeto neutral a la arquitectura, lo que significa que el código compilado de Java (bytecode) puede ejecutarse en muchos procesadores dada la presencia de un tiempo de ejecución de Java.

Para portátiles significa que no hay aspectos dependientes de la implementación de la especificación. Por ejemplo, en C++, una int puede ser de 16 bits o 32 bits, dependiendo de quién implemente la especificación, ya que en Java una int es siempre de 32 bits.

Obtuve mi información de un libro diferente (Core Java 2: Fundamentals) por lo que puede diferir de su significado. Aquí hay un enlace: Core Java 2: Fundamentals

8

Un programa en C portátil:

#include <stdio.h> 
#include <stdlib.h> 

int main(void) 
{ 
    printf("Hello, World!"); 

    return (EXIT_SUCCESS); 
} 

Puede tomar ese programa de C y compilarlo en cualquier máquina con un compilador C y hacer que funcione (suponiendo que soporta printf ... Supongo que algunas cosas pueden no serlo).

Si compila en Windows e intenta ejecutar ese binario en una Mac, no funcionará.

El mismo tipo de programa escrito en Java también se compilará en cualquier máquina con un compilador Java instalado, pero el archivo .class resultante también se ejecutará en cualquier máquina con una máquina virtual Java. Esa es la parte arquitectónica neutral.

Por lo tanto, portátil es una idea de código fuente, mientras que arquitectónico neutral es una idea ejecutable.

+0

+1 para comparar C y Java en este escenario ... – iAmLearning

1

hay 3 funciones relacionadas en java.

  1. plataforma independiente -> esto significa que el programa java se puede ejecutar en cualquier sistema operativo sin tener en cuenta su proveedor. Se implementa utilizando el CÓDIGO MÁGICO llamado "CÓDIGO BYTE". La JVM interpreta esto en el tiempo de ejecución o utiliza la compilación JIT (Just in Time) para compilarlo en código máquina para la arquitectura en la que se está ejecutando (por ejemplo, i386).
  2. arquitectura neutral -> significa que el programa java se puede ejecutar en cualquier procesador, independientemente de su proveedor y arquitectura. por lo que evita el problema de reconstrucción.
  3. portátil -> un lenguaje de programación/tecnología se dice que es puramente portátil si cumple con las dos características anteriores.
0

.class file es portable porque se puede ejecutar en cualquier sistema operativo. El motivo es que el archivo .class generado por JVM es el mismo para todos los sistemas operativos. Por otro lado, JVM se diferencia de OS, pero genera el mismo archivo .class para todos los SO, por lo que JVM es arquitectónicamente neutral.

0

¿Cuál es la diferencia entre Architecture Neutral y Portable? Neutral de arquitectura: Java es un lenguaje de programación neutral de arquitectura porque, java permite que su aplicación se compile en una arquitectura de hardware y se ejecute en otra arquitectura de hardware. Portátil: Java es un lenguaje de programación portátil porque Java puede ejecutar su aplicación y todo el sistema operativo y todo el sistema de hardware.

0

en términos de Java

Java arquitectura neutra - Aquí estamos hablando de la Arquitectura del Sistema Operativo es decir, el java Generar el Intermedio byte de código (código binario) (mango por la JVM) y permitir que el código Java para ejecute en cualquier sistema operativo para el que tenga disponible una máquina virtual Java (independientemente de su arquitectura de sistema operativo para gestionar la asignación de memoria, cobro, manejo de registro, procesamiento de código de bit de 32 o 64 bits), interprete el código como cada intérprete ejecute el código línea por línea - esto es manejado por jvm con respecto a la configuración de Hardware y sistema operativo).

portátil (sentido genérico como transferibles, Plataforma Independiente, o incluso en términos del código fuente es fijar para todos, es decir, simplemente significa el apoyo a muchos)

Java medios portátiles código java máquina de escritura en una sola máquina y que se extenderá en cualquier máquina que tenga una JVM adecuada con respecto al sistema operativo

Cuestiones relacionadas