2012-04-05 3 views
38

Меня спросили в интервью, какой язык программирования использовался для реализации Java. Я был ошеломлен: я никогда не думал об этом. Я знаю, что основные классы Java находятся на Java.Какой язык программирования используется для разработки Java?

Какой язык программирования используется для разработки Java?

+1

Java ядро ​​написана на Java, которые у спрашивают, что языки являются компиляторы написаны на, и перевести Java в? Или вы спрашиваете о JVM? – Churk

+4

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

+2

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

ответ

64

Тот же вопрос уже ответил один из человека, которые пишут JDK реализации проверки Sun здесь Wiki Answers

Язык Java является спецификация языка - вы не пишите язык в языке, это Спецификация. Это было бы как с вопросом: «Вы пишете французский на немецком языке?»

Что я предполагаю, что вопросник действительно хотел знать: «Что такое Язык - это разработанный JDK?» То есть, что является основным языка всего Java Virtual Machine и библиотеки классов разработаны в

Ответа:. Для VM, она изменяется, так как существует множество различных реализаций VM. Библиотеки классов, однако, представляют собой ВСЕГДА , написанные на Java, поскольку они предназначены для запуска с использованием Java VM . Некоторые библиотеки, использующие JNI (Java Native Interface), могут быть частично написанными на разных языках, так как они предназначены для использования вне JVM.

The Sun/Oracle VM написано на C++. BEA/Weblogic/Oracle VM - , написанная на C. IBM J9 (я полагаю) написана на C++. Есть пара виртуальных машин , написанных на Java, и одна даже написанная в Lisp. Подавляющее большинство JVM также содержат код ассемблера для ускорения определенных «горячих» зон.

+4

«Вы не пишете язык на языке» Это не всегда так. GCC был написан на C++ с 2012 года ([цитата] (https://www.quora.com/C-programs-are-compiled-using-gcc-which-itself-is-written-in-C-so-how -code-for-gcc-is-compiled)), а компилятор Scala написан в Scala ([цитата] (http://stackoverflow.com/a/19580470/1478636)). Обе страницы ссылаются на процесс [начальной загрузки] (https://en.wikipedia.org/wiki/Bootstrapping_ (компиляторы)), чтобы выполнить это. –

+1

Вы этого не поняли. «Язык» - это описание, которое не нужно «писать». Это просто нужно описать. Даже * если * эта спецификация включает в себя такой механизм, как bootstrapping (который, я считаю, это не так), описание все равно будет только описанием. – ospf

-1

Java работает на виртуальной машине JVM - java. Реализация JVM варьируется.

+4

не совсем ... существует несколько реализаций, и наиболее распространенный (Sun/Oracle JVM) написан на C++. – s1lence

+1

Черт побери, вы дезинформируете профессоров! Спасибо за исправление :) – RyanS

1

В основном java использует C через собственный api в java. Вы можете проверить исходный код любых классов в java, как класс Object, и проверить, что всякий раз, когда он хочет использовать язык C, он вызвал собственный api в java.

как public native int hashCode();

12

Java Virtual Machine (JVM) от Oracle, на котором Java код исполняется написан на С ++.

Существуют другие виртуальные машины других сторон, которые реализованы на других языках, а некоторые даже в самой Java. Список некоторых из них доступен по wikipedia here.

Для этого вам необходимо знать, что виртуальная машина Java выполняет bytecode, которая генерируется компилятором Java при создании проектов. Этот байт-код находится на уровне, который подходит для всех возможных операционных систем и платформ и поэтому будет работать на виртуальных машинах для конкретных платформ.(Так Java достигает совместимости с перекрестной системой)

Существует также несколько Компиляторы Java. (Те, которые компилируют Java-код в байт-код). Наиболее распространенным является javac-компилятор с помощью oracle, который в основном написан на C. Более подробная информация об этих here.

6

В Java библиотеки (java.lang, java.util etc, often referred to as the Java API) сами написаны на Java, хотя методы помечаются как native.

The Sun JVM написано в C, JVM работать на вашем компьютере является platform-dependent executable и, следовательно, может быть изначально написан на любой язык.
Oracle JVM (HotSpot) написан в C++ programming language.

Java Compiler, предоставляемые Oracle написано в самой Java ..