Создать сервер lineage 2       Галерея       Hex цвета ника       Ла2 хостинг       Интерлюд сборки Evo team




i1

Ваш сервер стоит на Java сборке? Тогда эта статья будет Вам интересна!
Вот, например, многие у нас говорят: «ява, ява», так давайте разберем все-таки что это такое и с чем «едят».
Java — объектно-ориентированный язык. Разработан компанией Sun Microsystems, под контролем которой и развивается.
Что такое объектно-ориентированный язык? — это язык программирования, поддерживающий понятие объектов, их свойств и методов обработки (объектный язык программирования, поддерживающий наследование и полиморфизм).


Первая черта — переносимость.
Изначально Java разрабатывался согласно принципу WORA: Write Once — Run Anywhere. Из этого, в частности, следует техническая особенность реализации: java-код компилируется в т.н. байт-код, который исполняется виртуальной машиной. Что означает следующее — код, написаный на Java и скомпилированный, может быть перенесен на любую систему, где есть виртуальная машина, и будет исполняться на этой системе без каких-либо изменений. Другими словами яву можно запукать и в винде и на никсах, да хоть на маках (которые в свою очередь сделаны на основе BSD-UNIX).

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

Сравним Java и C++ (java сборки и птс сборки).
Синтаксис языка программирования Java похож на C++, будучи объектно-ориентированным языком. Как писал Bruce Eckel в своей книге «The biggest potential stumbling block is speed: interpreted Java runs in the range of 20 times slower than C.» Т.е он говорил о том, что ява намного медленнее работает чем C++, но на самом деле это не совсем так. В 2004 году программист Кейт Ли опубликовал результаты тестов показывающие, что бытующее мнение о медленной работе Java не вполне справедливо.
javavscpp
Сравнению подвергались программы на С++, скомпилированные при помощи G++ (GCC) 3.3.1, и программы на Java, скомпилированные при помощи Sun Java 1.4.2_01. Для выполнения Java-программ использовалась виртуальная машина Sun версии 1.4.2_01. Измерения велисть на ноутбуке с процессором Pentium 4 и 512 Мб памяти, который работает под управлением ОС Red Hat Linux 9 / Fedora Test 1 с ядром версии 2.4.20-20.9.
В ходе тестирования выяснилось, что ключевым моментом, влияющим на производительность программ на Java являются настройки виртуальной машины. Как видно из диаграммы, при использовании «клиентского» варианта настроек (он установлен по умолчанию) практически все операции программы на Java выполняют медленнее, чем программы на C++, хотя и не так сильно, как можно было бы предположить. Зато при включении «серверных» настроек, в которых нет столь жестких ограничений по занимаемому объему памяти, преимущество в большинстве тестов оказалось на стороне Java. Причем ряд операций, например, вызов метода и хэширование, выполняется в программах на Java в несколько раз больше, чем в программах на C++. Впрочем, в основной массе тестов скорости Java и C++ оказались сопоставимыми, что, конечно, тоже может служить аргументом против мнения о медленной работе Java.
Данный тест проводился на Java 2, когда сейчас есть уже Java 5 и выше. Поэтому показатели могут быть другими.
Но если копать глубже, то стандартно Java-машина вместе со своим знаменитым сборщиком мусора пишется на чем как минимум на С, возможно даже с использованием классов, а это уже с++.
А как С может работать быстрее самого себя?))….
Вот получается какая-то путаница. Тут вообщем спор ни о чем, потому, что как мы можем спорить о том что быстрее двоичный код или код который выполняется виртуальной машиной?
Да, виртуальная машина может работать быстро, но почему же тогда винду на джаву не перенести?)

Короче, подводя итоги, можно сделать вывод, что JAVA во многом произошел от С/С++, у которых были позаимствованы синтаксис и базовая семантика. Однако связь между ними не ограничивается только этим. Используя JNI (JAVA NATIVE INTERFACE), можно вызывать С/С++-функции из JAVA-программы и, наоборот, из программы, написанной на С/С++, можно создавать JAVA-объекты и вызывать JAVA-методы. Несмотря на то, что использование JNI в большинстве случаев ведет к потере многоплатформенности JAVA-кода, данная возможность расширяет сферу применения самого языка JAVA на приложения, для которых это условие не является необходимым. В таких системах использование JNI позволяет сочетать современный объектно-ориентированный подход JAVA — главное преимущество этой технологии, с существующим (LEGACY) системно-зависимым (PLATFORM SPECIFIC) кодом на С/С++. Это является важным и необходимым условием перехода к использованию JAVA-технологии при разработке компонентов сервера.

Были использованы материалы:
http://ru.wikipedia.org/wiki/Java
http://c2p.ru/java
http://java-research.blogspot.com/

Статья подготовлена Максим (Blackmouse) Минаков и защищена частью 4 Гражданского Кодекса Российской Фередации. При копировании ссылка на la2vampire.ru обязательная.

3 комментария на “Статья: Java как объектно-ориентированный язык программирования”

  1. izen высказал:

    Мде бред полный относительно ява быстрее С++!

    [ссылка]

    ЗЫ: Бейсик быстрее С++ :))) Только если в си отключина развертка цикла, и цикл на миллиард итераций!!!

  2. Максим высказал:

    Так никто и не утверждает что ява быстрее с++. Дочитай до конца статью =)

  3. cepera99 высказал:

    Куплю готовый сервер и сайт к нему,чтоб просто зашел поиграл,чтоб сервак был установлен на сайте а не на компе:-)
    Icq 386-487
    Cepera-tm@mail.ru

Комментировать

Вы должны войти для того, чтобы оставить комментарий.