Какие языки программирования java

In which language are the Java compiler and JVM written?

In which languages are the Java compiler ( javac ), the virtual machine (JVM) and the java starter written?

10 Answers 10

The precise phrasing of the question is slightly misleading: it is not «the JVM» or «the compiler» as there are multiple JVM vendors (jrockit is one, IBM another) and multiple compilers out there.

  • The Sun JVM is written in C , although this need not be the case — the JVM as it runs on your machine is a platform-dependent executable and hence could have been originally written in any language. For example, the original IBM JVM was written in Smalltalk
  • The Java libraries ( java.lang , java.util etc, often referred to as the Java API) are themselves written in Java, although methods marked as native will have been written in C or C++ .
  • I believe that the Java compiler provided by Sun is also written in Java. (Although again, there are multiple compilers out there)

Actually, one library in Sun’s JRE is written in NetRexx. (It’s one of the arbitrary precision math libraries, either BigInteger, BigNum or BigDecimal. I forgot which one.) In theory, you could use any language to implement the JRE, as long as it can compile to a representation that a Java program can understand.

Читайте также:  Код вставки youtube html

The very first Java compiler was developed by Sun Microsystems and was written in C using some libraries from C++. Today, the Java compiler is written in Java, while the JRE is written in C.

We can imagine how the Java compiler was written in Java like this:

The Java compiler is written as a Java program and then compiled with the Java compiler written in C(the first Java compiler). Thus we can use the newly compiled Java compiler(written in Java) to compile Java programs.

fyi this process of «upgrading» to new compilers by compiling their code in more basic compilers is called «bootstrapping», as in «pulling yourself up by your bootstraps», which is where «booting» a machine comes from. Computerphile on YouTube has a good video about this and «T diagrams»

In theory, you dont’ even need the bootstraping compiler. You can refer to the Java Language Specification and manually translate the Java Compiler code into bytecode(class file), hence bootstrapping. Though I only tried manually do that with a HelloWorld.

Just clarifying, the JVM cannot be written in Java because Java needs JVM to run so if JVM-version2 was written in Java, it would have to run on JVM-version1, thus it would be a VM running on a VM.

Источник

Java

Java — строго типизированный объектно-ориентированный язык программирования общего назначения, разработанный компанией Sun Microsystems.

Освойте профессию «Java-разработчик»

Это один из наиболее известных и популярных языков, который используют во многих компаниях, в том числе в Netflix, AliExpress, Google, Intel, eBay, TripAdvisor и многих других. С момента появления в 1995 году он только набирал популярность, став лидером к концу 2010-х наряду с Python. В рейтинге TIOBE за июль 2022 года Java занимает третье место.

Назначение Java

Написать на языке можно практически все что угодно:

  • приложения для Android (Java — почти единственный язык для их разработки);
  • промышленные программы;
  • десктопные приложения;
  • банковские программы;
  • программы для работы с Big Data;
  • научные программы;
  • корпоративный софт;
  • веб-сервера, веб-приложения, сервера приложений;
  • встроенные системы — от небольших чипов до специальных компьютеров.

Освойте востребованный язык

Group 1321314345 (4)

Свойства Java

Java — мультифункциональный объектно-ориентированный язык со строгой типизацией.

Мультифункциональность. Java не привязан ни к одной из популярных платформ. С одинаковым успехом его можно использовать на Windows или iOS, Linux или Android.

Строгая (сильная) типизация. Она не позволяет смешивать в выражениях различные типы и не выполняет автоматически неявные преобразования.

Объектно-ориентированность. Java создан по модели объектно-ориентированного программирования. Здесь есть классы и объекты. Классы — типы данных, а объекты — представители классов. Разработчик создает их сам, дает названия и присваивает им свойства и операции, которые можно выполнять с ними. Это напоминает конструктор, позволяющий построить то, что хочется.

Преимущества и недостатки Java

У Java, как и у любого другого языка программирования, есть ряд плюсов и минусов, которые и определяют его приверженцев.

К плюсам можно отнести:

  • мультифункциональность;
  • достаточно простой синтаксис;
  • независимость (код сможет работать на любой платформе, поддерживающей Java);
  • надежность (благодаря строгой статической типизации);
  • возможность параллельной разработки;
  • хорошую организацию кода и его легкую поддержку;
  • универсальность использования различных классов.

К недостаткам относятся:

  • требуемое большое количество памяти;
  • низкая скорость по сравнению с С и С++;
  • отсутствие поддержки низкоуровневого программирования;
  • платные с 2019 года обновления для бизнеса и коммерческого использования.

Автоматическая сборка мусора (garbage collection) — спорный пункт. С одной стороны, это плюс, но с другой стороны, когда разработчик не может контролировать процесс, это минус.

Станьте Java-разработчиком
и создавайте сложные сервисы
на востребованном языке

Чем Java отличается от Python

Когда говорят о конкурентах Java, в первую очередь вспоминают Python. Языки соревнуются много лет, постоянно опережая друг друга в рейтингах. Но различия все же есть.

Типизация

У Java она статическая — при вводе переменной необходимо прописывать тип данных. У Python — динамическая: типы данных определяются автоматически. Кроме того, в Python можно смешивать разные типы переменных.

Читаемость

Это отличие связано с предыдущим, потому что то же указание типов оказывает влияние на конечный вид кода. У Java простой синтаксис по сравнению с другими языками, но у Python — еще проще.

У синтаксиса в Python ясная простая структура, его можно даже назвать интуитивным. Язык подойдет новичкам.

Код в Java более комплексный, со множеством знаков и слов: на английском подобный синтаксис называют verbose, то есть многословный код. Он сложнее читается и может вызвать трудности у новичков, хотя многие разработчики чувствуют себя более комфортно со строгим синтаксисом.

Скорость

Python отстает от Java по производительности и скорости. В обоих языках приложения переводятся в байт-код (чтобы быть кроссплатформенными), но различия — в том, когда это происходит. Java компилирует с помощью JIT-компиляции, заранее, а Python — при выполнении программы. Поэтому Java намного быстрее.

Чем Java отличается от C#

Второй возможный конкурент Java — язык программирования C#. У них есть явное сходство: они оба объектно-ориентированные со статической типизацией. Кроме того, имеют похожий синтаксис. Разберем отличия.

Безопасность

Один из важных параметров языков программирования — типобезопасность (безопасность системы типов). В безопасном языке после проверки согласования типов в них не возникнет ошибок во время выполнения.

Ни С#, ни Java не считаются типобезопасными языками, но Java достаточно надежный и разрабатывался так, чтобы не было ошибок в этой области. В C# имеются указатели, и из-за такого доступа к памяти он менее безопасный.

Указатели и управление памятью

Если вам нужны указатели (например, хочется работать с памятью на более низком уровне), желательно выбирать другие языки, например С, С++. Но в C#, в отличие от Java, указатели есть, пусть и ограниченные.

Поддержка платформ

C# разрабатывался непосредственно для экосистемы Microsoft. На нем создается ПО специально для Windows. Java более универсален. На Java можно написать приложения и для Microsoft в том числе. Это делает его применение более широким. При этом C# прекрасно подходит для разработки игр и проектов виртуальной реальности.

Может ли новичок изучить Java

Java легче многих других языков, например С и С++. При изучении Java вам не потребуется осваивать управление памятью. Но, как мы уже говорили, у Python проще синтаксис и свободнее типизация.

Если вы совсем новичок, изучать Java может быть достаточно сложно и можно выбрать языки с более простым синтаксисом. Но если имеется минимальный опыт программирования, то Java — отличный выбор. Он позволит освоить программирование, не тратя время на работу с памятью, а также погрузиться в объектно-ориентированное программирование, которое упрощает работу.

Означает ли это, что не нужно пробовать без опыта? Вовсе нет. Если есть желание работать именно с Java, то вполне реально разобраться в ней с нуля.

Насколько востребован язык Java

На HeadHunter по запросу «программист java» можно найти свыше 2000 вакансий по всей России. Известный ресурс «Хабр Карьера» предлагает более 1000 вакансий. Эти данные совсем свежие, август 2022 года. Разброс в заработной плате довольно большой и обусловлен уровнем программиста. Junior может найти заработок около 60 тыс. рублей. Senior — от 300 тысяч и выше. Важный плюс: практически все вакансии предполагают удаленную работу.

Java — достаточно доступный язык для знакомства с программированием и повышения собственных скиллов. Это популярный мультифункциональный язык, востребованный везде. Ключевое преимущество Java — безграничная возможность для работы с приложениями на платформе Android. Сообщество пользователей Java невероятно широко и в любой момент готово прийти на помощь. Программное обеспечение платформы Java стабильно и регулярно обновляется.

Java уже 20 лет в мировом топе языков программирования. На нем создают сложные финансовые сервисы, стриминги и маркетплейсы. Освойте технологии, которые нужны для backend-разработки, за 14 месяцев.

картинка (67)

Источник

Оцените статью