за счет чего достигается кроссплатформенность java
Русские Блоги
Как Java достигает кроссплатформенности
1. Как Java обеспечивает кроссплатформенность
2. JVM виртуальной машины Java отвечает за перевод файлов байт-кода на определенные платформы. Машинный код Тогда беги. Другими словами, если вы устанавливаете соответствующую JVM на разных платформах, вы можете запускать файлы байт-кода и писать программы Java, которые мы пишем.
Итак, для тысяч Java-разработчиков и Java-программ Java является кроссплатформенной.
2. Что такое JRE, JDK, JVM
3. Установите и настройте среду Java.
1. Сначала загрузите и установите jdk, Сначала Baidu ищет jdk для загрузки, перейдите на официальный сайт Orcle для загрузки, установите после загрузки
2. После установки будут две папки jdk и jre
Структура каталогов после открытия JDK показана на следующем рисунке:
3. Сконфигурируйте переменные окружения, откройте окно установки переменных окружения системы windons, под win10:
Откройте cmd, введите javac, появится следующий рисунок, свидетельствующий об успешной настройке:
4. Написание и компиляция программ на Java.
2. Откройте 111.java, отредактируйте и введите следующий код:
3. Откройте cmd, введите диск D, введите javac 111.java , Это команда для компиляции, javac означает компиляцию
4. После успешной компиляции файл байт-кода Hello.class будет создан в том же каталоге.
5. Запустите JVM и выполните файл байт-кода, синтаксис: имя класса java с основной функцией. Пример java Hello
6. Консоль выводит «Hello World».
5. Базовая грамматика Java
1. java строго чувствителен к регистру
2. В исходном файле java может быть несколько классов, но только один открытый класс, и имя исходного файла должно совпадать с именем класса.
3. Когда в исходном файле Java есть N классов Java, после компиляции будут сгенерированы N копий байт-кода, и имя байт-кода будет соответствовать имени класса одну за другой.
4. Предложение: определите только один класс в исходном файле и измените его как общедоступный.
Русские Блоги
Как Java обеспечивает независимость от платформы (кроссплатформенность)?
1Что такое независимость от платформы
Независимость от платформы заключается в том, что работа языка на компьютере не ограничивается платформой: он компилируется один раз и выполняется везде (Write Once, Run Anywhere).
Другими словами, исполняемые двоичные программы, созданные на Java, могут работать на нескольких платформах без изменений.
Преимущества независимости от платформы
Как платформенно-независимый язык, он выделяется как с точки зрения собственной разработки, так и с точки зрения удобства для разработчиков.
Благодаря независимости от платформы, программы Java могут работать на различных устройствах, особенно на встроенных устройствах, таких как принтеры, сканеры и факсы. С наступлением эры 5G к сети будет подключено больше терминалов, и я считаю, что платформенно-независимая Java также может внести свой вклад.
Для разработчиков Java использование Java снижает стоимость и время разработки и развертывания на нескольких платформах. Скомпилируйте один раз и запускайте везде.
2Независимость от платформы
Основа принципа составления
Когда дело доходит до спецификаций языка Java, файлов классов и виртуальной машины Java, вы должны упомянуть, как работает Java.
В компьютерном мире компьютеры распознают только 0 и 1, поэтому на самом деле компьютер выполняет двоичный файл, состоящий из 0 и 1.
Однако все C, C ++, Java, Python и т. Д., Которые мы используем в нашей повседневной разработке, являются языками высокого уровня, а не двоичными языками. Следовательно, если вы хотите, чтобы компьютер распознал написанный нами код Java, вам необходимо «перевести» его в двоичный файл, состоящий из 0 и 1. Этот процесс называется компиляцией. Инструмент, отвечающий за обработку этого процесса, называется компилятором.
На платформе Java, если вы хотите скомпилировать файл Java в двоичный файл, вам необходимо пройти два этапа компиляции, компиляции внешнего интерфейса и компиляции внутреннего интерфейса:
Внутренняя компиляция в основном предназначена для перевода промежуточного кода на машинный язык. В Java этот шаг выполняется виртуальной машиной Java.
Итак, о чем мы говорим, реализация платформенной независимости Java в основном действует на вышеуказанных этапах. Как показано ниже:
Давайте познакомим вас с этими тремя главными действующими лицами сзади наперед: виртуальная машина Java, файл класса, спецификация языка Java.
Виртуальная машина Java
Так называемая независимость от платформы означает возможность беспрепятственного подключения на нескольких платформах. Однако для разных платформ оборудование и операционные системы определенно различаются.
И эта работа в основном выполняется нашей виртуальной машиной Java. Хотя язык Java не зависит от платформы, JVM действительно зависит от платформы, и соответствующая JVM должна быть установлена в разных операционных системах.
На рисунке выше показано руководство по загрузке JDK с официального сайта Oracle.Различные операционные системы должны загружать соответствующую виртуальную машину Java.
С виртуальной машиной Java, если вы хотите выполнить операции a + b, виртуальная машина в операционной системе A переведет инструкции в 10001000, а виртуальная машина в операционной системе B переведет инструкции в 11101110.
Ps: содержимое файла класса на рисунке является фиктивным содержимым
Следовательно, причина, по которой Java может быть кроссплатформенной, заключается в том, что виртуальная машина Java действует как мост. Он действует как буфер между исполняемой программой Java и базовым оборудованием и операционной системой.
Мы говорим, что язык Java может писать один раз, запускать где угодно. Запись здесь фактически относится к процессу создания файлов классов.
Поскольку файлы классов Java могут быть созданы на любой платформе, а также могут быть загружены и выполнены виртуальной машиной Java любой платформы, эта платформа не зависит от Java.
Спецификация языка Java
Теперь, когда есть унифицированный файл класса и виртуальная машина Java, которая может переводить файлы классов в соответствующие двоичные файлы на разных платформах, может ли Java быть полностью кроссплатформенной?
На самом деле это не так. Язык Java также предпринял некоторые усилия в области кросс-платформенности. Эти усилия определены в спецификации языка Java.
Например, диапазон и поведение основных типов данных в Java определяются сами по себе. В C / C ++ базовый тип данных определяется его размером, а размер определяется платформой. Таким образом, на разных платформах результаты компиляции одной и той же программы на C ++ будут выглядеть по-разному.
Чтобы дать простой пример, для типа int в Java int занимает 4 байта, что является фиксированным.
Но в C ++ это не исправлено. На 16-разрядном компьютере длина типа int может составлять два байта; на 32-разрядном компьютере это может быть 4 байта; когда 64-разрядные компьютеры станут популярными, длина типа int может достигать 8 байтов. (То, что здесь сказано, возможно!)
Обеспечивая согласованность основных типов данных на всех платформах, язык Java обеспечивает надежную поддержку независимости от платформы.
3резюме
Спецификация языка Java
За счет указания диапазона значений и поведения основных типов данных на языке Java
Все файлы Java должны быть скомпилированы в единый файл класса.
Виртуальная машина Java
Используйте виртуальную машину Java для преобразования файла класса в двоичный файл соответствующей платформы и т. Д.
Независимость Java от платформы основана на зависимости виртуальной машины Java от платформы, поскольку виртуальная машина Java скрывает различия между базовой операционной системой и оборудованием.
4Независимость от языка
Фактически, независимость Java отражается не только в независимости платформы. Расширяясь вовне, Java также не зависит от языка. Точнее, виртуальная машина Java не зависит от языка.
Мы упоминали ранее. На самом деле JVM взаимодействует не с файлами Java, а с файлами классов. Другими словами, когда JVM работает, она не зависит от языка Java.
Сегодня коммерческие организации и организации с открытым исходным кодом разработали большое количество языков, которые могут работать на JVM в дополнение к языку Java, например Groovy, Scala, Jython и т. Д. Это может поддерживаться, потому что эти языки также могут быть скомпилированы в байт-код (класс Wenjin). Виртуальной машине все равно, на каком языке скомпилирован байт-код.
Почему выбирают язык программирования Java или Основная идея курса «Обучение Java. Для школьников (и не только)»
В начале нулевых годов, попробовав программировать в IDE Delphi и Borland C++ Builder, я не на шутку увлекся процессом создания программ. И это увлечение оказалось настолько устойчивым, что я программирую по сей день. Примерно в тоже самое время фирму Borland с ее линейкой продуктов для быстрой разработки, так полюбившейся российским программистам, активно начала вытеснять с рынка корпорация Microsoft с ее Visual Studio. Почти одновременно у меня появилось увлечение операционной системой (ОС) Linux как альтернативой порядком надоевшей всем ОС Windows, совсем небесплатной и так горячо любимой вирусописателями.
Реализовать эту идею ему удалось в компании Sun Microsystems в 1995 году. Безусловно, за универсальность виртуальной машины (ВМ) Java приходится чем то заплатить. В общем случае Java-программы выполняются медленнее аналогичных, написанных на C, C++ (см., например, Википедия). И это, определенно, «минус» самой идеи ВМ. Однако, в случаях, где скорость выполнения программы некритична, у технологий Java появляются определенные преимущества. А именно, простой и понятный синтаксис языка, близкий к C, что, кстати, способствует быстрому переходу на него C-программистов (не исключен и обратный процесс).
Далее, отказавшись от косвенной адресации объектов (указателей) создатели языка существенно упростили жизнь начинающим программистам, т.к. в общем случае при этом была повышена надежность кода и увеличена скорость разработки по сравнению с тем же C-C++ (см. Брюс Эккель «Философия Java», 4-е издание, с.13). И это, как оказалось, действительно облегчает работу программиста.
Желающим познакомиться с Java рекомендую вышеуказанную книгу Б.Эккеля, которая знакомит читателя с языком постепенно, с помощью несложных примеров, показывая правильное (с точки зрения создателей языка) применение заложенных в него технологий. Также рекомендую книгу Якова Файна «Программирование на Java для детей, родителей, дедушек и бабушек» (см. комментарий).
На веб-страницах сайта «Учись программировать», будут выкладываться материалы для занятий, которые могут помочь начинающим в изучении Java и применении этих технологий на практике, в том числе для программирования мобильный устройств, работающих под управлением операционной системы Android. Конечно, знание какого либо другого языка программирования (например Pascal), не повредит, но будет сделана попытка подать материал для людей не имеющих в программировании опыта, за эталон возьмем школьника старших классов, интересующегося программированием и понимающего что такое файл и текстовый редактор.
В чём кроссплатформенность JAVA?
Средний 5 комментариев
Ведь я не могу всё так же запустить написанное на JAVA в Linux, на Windows,к примеру
Почему это? У вас единная кодовая база на все платформы, все это компилируется в байт-код и дальше интерпретируется JVM.
Так еще и там нужно 150 строк кода писать ради простой программы.
Не пойму о чем вы, какие 150 строк? Пакет, класс, метод main?
написанные программы на С++ будут работать вечно, ведь они не зависят от системы
Вкратце:
В том что байт код для JVM может исполняться везде где установлена JVM.
Код не нужно перекомпилировать под каждую из платформ.
все горели, но я всё равно остаюсь на С++
у него не было ничего, ни jar ников, ни питон интерпретатора, так мы потом час устанавливали все скрипты и интерпретатор что бы запустить программу
Есть два способа распространения программы на С++: в виде бинарника и в виде исходного кода.
В виде бинарника вам нужно будет каждую новую версию компилировать под разные версии Windows и разные дистрибутивы Linux. Не представляю, сколько такая программа должна стоить, чтобы это приносило доход.
Программа на Java распространяется в виде zip-архива с исходным кодом и требует от пользователя только установки дистрибутива Java на свой компьютер. Что на порядок удобнее для разработчика. А работать способна даже в Android (условно говоря).
Что такое Java? История создания
Платформа Java
Итак, Java обладает длинной и непростой историей развития, однако настало время рассмотреть, что же получилось у создателей, какими свойствами обладает данная технология.
Многие разработчики поначалу жестко критиковали смелый лозунг Sun «Write once, run everywhere», обнаруживая все больше и больше несоответствий и нестыковок на различных платформах. Однако надо признать, что они просто были слишком нетерпеливы. Java только появилась на свет, а первые версии спецификаций были недостаточно исчерпывающими.
Очень скоро специалисты Sun пришли к выводу, что просто свободно публиковать спецификации (что уже делалось задолго до Java ) недостаточно. Необходимо еще и создавать специальные процедуры проверки новых продуктов на соответствие стандартам. Первый такой тест для JVM содержал всего около 600 проверок, через год их число выросло до десяти тысяч и с тех пор все время увеличивается (именно его в свое время не смог пройти MS IE 4.0). Безусловно, авторы виртуальных машин все время совершенствовали их, устраняя ошибки и оптимизируя работу. Все-таки любая, даже очень хорошо задуманная технология требует времени для создания высококачественной реализации. Аналогичный путь развития сейчас проходит Java 2 Micro Edition ( J2ME ), но об этом позже.
Конечно, разрабатывая новую технологию, авторы Java опирались на широко распространенный язык программирования по целому ряду причин. Во-первых, они сами на тот момент считали C++ своим основным инструментом. Во-вторых, зачем придумывать что-то новое, когда есть вполне подходящее старое? Наконец, очевидно, что незнакомый синтаксис отпугнет разработчиков и существенно осложнит внедрение нового языка, а ведь Java должна была максимально быстро получить широкое распространение. Поэтому синтаксис был лишь слегка упрощен, чтобы избежать слишком запутанных конструкций.
Но, как уже говорилось, С++ принципиально не годился для новых задач, которые поставили себе разработчики из компании Sun, поэтому модель Java была построена заново, причем в соответствии с совсем другими целями. Дальнейшие лекции будут постепенно раскрывать конкретные различия.
Что же касается объектной модели, то она скорее была построена по образцу таких языков, как Smalltalk от IBM, или разработанный еще в 60-е годы в Норвежском Вычислительном Центре язык Simula, на который ссылается сам создатель Java Джеймс Гослинг.
Однако опытные разработчики были недовольны тем, что они не могут полностью контролировать все, что происходит с их системой. Нет точной информации, когда именно будет удален объект, ставший ненужным, когда начнет работать (а значит, и занимать системные ресурсы) поток сборщика мусора и т.д. Но, при всем уважении к опыту таких программистов, необходимо отметить, что подавляющее количество сбоев программ, написанных на С/С++, приходится именно на некорректную работу с памятью, причем порой это случается даже с широко распространенными продуктами весьма серьезных компаний.
Кроме того, особый упор делался на легкость освоения новой технологии. Как уже было сказано, ожидалось (и эти ожидания оправдались, в подтверждение правильности выбранного пути!), что Java должна получить максимально широкое применение, даже в тех компаниях, где никогда до этого не занимались программированием на таком уровне (бытовая техника типа тостеров и кофеварок, создание игр и других приложений для сотовых телефонов и т.д.). Был и целый ряд других соображений. Продукты для обычных пользователей, а не профессиональных программистов, должны быть особенно надежными. Internet стал Всемирной Сетью, поскольку появились непрофессиональные пользователи, а возможность создавать апплеты для них не менее привлекательна. Им требовался простой инструмент для создания надежных приложений.
Наконец, Internet-бум 90-х годов набирал обороты и выдвигал новые, более жесткие требования к срокам разработки. Многолетние проекты, которые были в прошлом обычным делом, перестали отвечать потребностям заказчиков, новые системы надо было создавать максимум за год, а то и за считаные месяцы.
Наконец, существует механизм подписания апплетов и других приложений, загружаемых по сети. Специальный сертификат гарантирует, что пользователь получил код именно в том виде, в каком его выпустил производитель. Это, конечно, не дает дополнительных средств защиты, но позволяет клиенту либо отказаться от работы с приложениями ненадежных производителей, либо сразу увидеть, что в программу внесены неавторизованные изменения. В худшем случае он знает, кто ответственен за причиненный ущерб.
Совокупность описанных свойств Java позволяет утверждать, что язык весьма приспособлен для разработки Internet- и интранет (внутренние сети корпораций)-приложений.
Но не следует считать, что более легкое освоение означает, что изучать язык не нужно вовсе. Чтобы писать действительно хорошие программы, создавать большие сложные системы, необходимо четкое понимание всех базовых концепций Java и используемых библиотек. Именно этому и посвящен данный курс.
Основные версии и продукты Java
Сразу оговоримся, что под продуктами здесь понимаются программные решения от компании Sun, являющиеся «образцами реализации» ( reference implementation ).
Итак, впервые Java была объявлена 23 мая 1995 года. Основными продуктами, доступными на тот момент в виде бета-версий, были:
Спецификация языка была составлена настолько удачно, что практически без изменений используется и по сей день. Конечно, было внесено большое количество уточнений, более подробных описаний, были добавлены и некоторые новые возможности (например, объявление внутренних классов), однако основные концепции остаются неизменными. Данный курс в большой степени опирается именно на спецификацию языка.
Первая версия содержала всего 8 стандартных библиотек:
Финальная версия JDK 1.0 была выпущена в январе 1996 года.
Выход следующей версии Java 1.2 много раз откладывался, но в итоге она настолько превзошла предыдущую 1.1, что ее и все последующие версии начали называть платформой Java 2 (хотя номера, конечно, по-прежнему отсчитывались как 1.х.х, см. выше описание правил нумерации). Первая бета-версия стала доступной в декабре 1997 года, а финальная версия была выпущена 8 декабря 1998 года, и за первые восемь месяцев ее скачали более миллиона раз.
Список появившихся возможностей очень широк, поэтому перечислим наиболее значимые из них:
С февраля 1999 года исходный код самой JVM был открыт для бесплатного доступа всем желающим.
Самое же существенное изменение произошло 15 июня 1999 года, спустя полгода после выхода JDK 1.2. На конференции разработчиков JavaOne компания Sun объявила о разделении развития платформы Java 2 на три направления:
J2ME является усечением Standard Edition, чтобы удовлетворять жестким аппаратным требованиям небольших устройств, таких как карманные компьютеры и сотовые телефоны.
За первые пять месяцев j2sdk 1.4 было скачано более двух миллионов раз. В августе 2002 года уже была предложена версия 1.4.1, остающаяся на данный момент самой современной.
В заключение для демонстрации уровня развития Standard Edition приведем стандартные диаграммы, описывающие все составляющие технологии, из документации к версиям 1.3 и 1.4.