2012-04-05 38 views
38

Me preguntaron en la entrevista qué lenguaje de programación se utilizó para implementar Java. Estaba aturdido: nunca pensé en esto. Solo sé que las clases principales de Java están en Java.¿Qué lenguaje de programación se usa para desarrollar Java?

¿Qué lenguaje de programación se utiliza para desarrollar Java?

+1

núcleo de Java está escrito en Java, son u preguntando qué idiomas son los compiladores están escritos en y traducir Java para? ¿O preguntas por la JVM? – Churk

+4

http://stackoverflow.com/q/1220914/1130032 – Ved

+2

http://stackoverflow.com/questions/410320/what-is-java-written-in – OguzOzkeroglu

Respuesta

64

La misma pregunta ya contestada por una de las personas que escriben JDK aplicación cheque de sol aquí Wiki Answers

El lenguaje Java es un lenguaje de especificación - usted no escribe un lenguaje en un idioma, es una especificación. Eso sería como preguntando "¿Escribes francés en alemán?"

Lo que estoy asumiendo que el interlocutor realmente quería saber es "¿En qué lenguaje de está desarrollado el JDK?" Es decir, ¿cuál es la lenguaje que subyace a toda la máquina virtual de Java y bibliotecas de clases desarrolladas en

La respuesta es:. De la máquina virtual, que varía, ya que hay múltiples implementaciones de VM diferentes. Sin embargo, las bibliotecas de Clase están SIEMPRE escritas en Java, ya que están destinadas a ejecutarse utilizando Java VM . Ciertas bibliotecas que utilizan JNI (Java Native Interface) pueden ser escritas parcialmente en una variedad de otros idiomas, ya que son y están destinadas a ser utilizadas FUERA de la JVM.

La máquina virtual Sun/Oracle está escrita en C++. El BEA/Weblogic/Oracle VM es escrito en C. IBM's J9 está (creo) escrito en C++. Hay un par de máquinas virtuales de realmente escritas en Java, y una incluso escrita en Lisp. La gran mayoría de las JVM también incluyen código de ensamblador para acelerar ciertas áreas "calientes" .

+4

"no escribes un idioma en un idioma" Esto no siempre es cierto. GCC se ha escrito en C++ desde 2012 ([cita] (https://www.quora.com/C-programs-are-compiled-using-gcc-which-itself-is-written-in-C-so-how -code-for-gcc-is-compiled)) y el compilador de Scala está escrito en Scala ([citación] (http://stackoverflow.com/a/19580470/1478636)). Ambas páginas hacen referencia al proceso de [bootstrapping] (https://en.wikipedia.org/wiki/Bootstrapping_ (compiladores)) para lograr esto. –

+1

No lo obtuviste. El "Idioma" es una descripción que no necesita ser "escrita". Solo tiene que ser descrito. Incluso * si * esta especificación incluye un mecanismo como bootstrapping (que creo que no), la descripción todavía sería solo una descripción. – ospf

-1

Java se ejecuta en la máquina virtual JVM - Java. La implementación de la JVM varía.

+4

no exactamente ... hay varias implementaciones y la más común (la JVM de Sun/Oracle) está escrita en C++. – s1lence

+1

¡Malditos profesores desinformando! Gracias por la corrección :) – RyanS

1

Básicamente java está utilizando C a través de API nativa en java. Puedes verificar el código fuente de cualquier clase en Java como clase Object y verificar que cada vez que quiera usar el lenguaje C hayan llamado a la API nativa en java.

como public native int hashCode();

12

El Java Virtual Machine (JVM) por Oracle en el que se ejecuta código Java está escrito en C++.

Existen otras máquinas virtuales de otras partes que se implementan en otros lenguajes e incluso en Java. Una lista de algunos de ellos está disponible en wikipedia here.

Para que usted entienda, debe saber que la Máquina Virtual Java ejecuta bytecode que es generada por un compilador Java al construir proyectos. Este bytecode está en un nivel adecuado para todos los sistemas operativos y plataformas posibles y, por lo tanto, funcionará en máquinas virtuales para plataformas específicas.(Así es como Java logra la compatibilidad del sistema cruzado)

También existen varios compiladores Java. (Los que compilan el código Java en bytecode) El más común es el compilador javac de Oracle que se escribe principalmente en C. Más información acerca de estos here.

6

Las bibliotecas Java (java.lang, java.util etc, often referred to as the Java API) son a su vez escrito en Java, aunque los métodos marcados como native.

El JVM de Sun está escrito en C, JVM se ejecutan en el equipo es un platform-dependent executable y por lo tanto podría haber sido originalmente escrito en cualquier idioma.
Oracle JVM (HotSpot) está escrito en el C++ programming language.

compilador Java proporcionado por Oracle está escrito en Java en sí ..

Cuestiones relacionadas