Что такое java: Что такое Java и зачем он нужен

Содержание

Язык программирования Java — это… Что такое Язык программирования Java?

Java
Класс языка:

объектно-ориентированный, структурный, императивный

Появился в:

1995 г.

Автор(ы):

Sun Microsystems

Последняя версия:

Java Standard Edition 6 (1.6.14)

Типизация данных:

строгая полиморфная, статическая, безопасная, именованная (англ.), явная (англ.)

Основные реализации:

многочисленные

Испытал влияние:

C++, Eiffel

Повлиял на:

Ада 2005, C#, D, Groovy, J#, VJ#, PHP, Scala

Java — объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems и официально выпущенный 23 мая 1995 года. В отношении произношения в русском языке, как и в ряде других, образовались две различные нормы — заимствованная англоязычная /ˈdʒɑːvə/[1] и традиционно-национальная «Ява», соответствующая традиционому произношению названия острова Ява.

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

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

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

Программы на Java транслируются в байт-код, выполняемый виртуальной java-машиной (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор, но с тем отличием, что байтовый код, в отличие от текста, обрабатывается значительно быстрее.

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

Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. Данное утверждение было справедливо для первых версий виртуальной машины Java, однако в последнее время оно практически потеряло актуальность. Этому способствовал ряд усовершенствований: применение технологии native-кода в стандартных библиотеках, а также аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология ARM).

Идеи, заложенные в концепцию и различные реализации JVM, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых в среде JVM[2]. Эта идея перекликается с концепцией CLI, заложенной в основу платформы .NET компании

История версий

Java 1.0

Разработка Java началась в 1990 году, первая официальная версия — Java 1.0, — была выпущена только в 1995 году.

Java 2.0

К 1998 году была разработана обновлённая спецификация JDK 1.2, вышедшая под наименованием Java 2. Собственно языковых изменений в данной версии не появилось. Платформа получила следующие дополнения:

Java 5

Спецификация Java 5 была выпущена в сентябре 2004 года. В данной версии разработчики внесли в язык целый ряд принципиальных дополнений:

  • Перечислимые типы (enum). Ранее отсутствовавшие в Java типы оформлены по аналогии с C++, но при этом имеют ряд дополнительных возможностей.
    • Перечислимый тип является полноценным классом Java, то есть может иметь конструктор, поля, методы, в том числе скрытые и абстрактные.
    • Перечисление может реализовывать интерфейсы.
    • Для перечислений имеются встроенные методы, дающие возможность получения значений типа по имени, символьных значений, соответствующих именам, преобразования между номером и значением, проверки типа на то, что он является перечислимым.
  • Аннотации — возможность добавления в текст программы метаданных, не влияющих на выполнение кода, но допускающих использование для получения различных сведений о коде и его исполнении. Одновременно выпущен инструментарий для использования аннотированного кода. Одно из применений аннотаций — упрощение создания тестовых модулей для Java-кода.
  • Средства обобщённого программирования (generics) — механизм, аналогичный шаблонам в C++ (позже также появились и в C#), дающий возможность создавать классы и методы с полями и параметрами произвольного типа. С использованием данного механизма реализованы новые версии коллекций стандартной библиотеки Java.
  • Методы с неопределённым числом параметров.
  • Autoboxing/Unboxing — автоматическое преобразование между скалярными типами Java и соответствующими типами-врапперами (например, между int — Integer). Наличие такой возможности упрощает код, поскольку исключает необходимость в выполнении явных преобразований типов в очевидных случаях.
  • Разрешён импорт статических переменных.
  • В язык введён цикл по коллекции объектов (итератор).

Классификация платформ Java

Внутри Java существуют три основных семейства технологий:

  • J2EE или Java EE (начиная с v1.5) — Java Enterprise Editon, для создания программного обеспечения уровня предприятия;
  • J2SE или Java SE (начиная с v1.5) — Java Standard Editon, для создания пользовательских приложений, в первую очередь — для настольных систем;
  • J2ME, Java ME или Java Micro Edition, для использования в устройствах, ограниченных по вычислительной мощности, в том числе мобильных телефонах, PDA, встроенных системах

Самыми популярными считаются серверные технологии семейства J2EE.

Последним релизом является версия 1.6, в которой было произведено улучшение системы безопасности, улучшение поддержки скриптового языка Mozilla Rhino (англ.), улучшена интеграция с рабочим столом, добавлены некоторые новые возможности в создании графических интерфейсов.

Java и Microsoft

Компанией ОС, начиная с Windows 95. MSJVM была близка к спецификации Sun Microsystems v.1.1.3, но не соответствовала ей по ряду принципиальных характеристик (в частности, по отсутствию поддержки технологий JNI и по наличию нестандартных расширений). Впоследствии это явилось поводом для судебных исков со стороны Sun Microsystems к [3]. В настоящее время компанией .NET предлагается Java-подобный язык J#, не соответствующий официальной спецификации языка Java.

Применения платформы Java

Следующие успешные проекты реализованы с привлечением Java (J2EE) технологий: Amazon[4][5], [6][7], Yandex (неоднозначная информация в отношении Java)

[8][9], [10].

Следующие компании в основном фокусируются на Java (J2EE) технологиях, а не на .NET, хотя имеют дело также и с последними: IBM, Oracle. В частности, СУБД Oracle включает JVM как свою составную часть, обеспечивающую возможность непосредственного программирования СУБД на языке Java, включая, например, хранимые процедуры[11].

Основные возможности

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

Идея пространств имён воплощена в Java-пакетах.

Пример программы

Программа, выводящая «Hello, World!»:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Пример использования шаблонов:

import java.util.*;
public class Sample {
    public static void main(String[] args) {
        // Создание объекта по шаблону.
        List<String> strings = new LinkedList<String>();
        strings.add("Hello");
        strings.add("world");
        strings.add("!");
        for (String s : strings) {
            System.out.print(s);
            System.out.print(" ");
        }
    }
}

Основные идеи

Примитивные типы

В языке Java только 8 скалярных типов: boolean, byte, char, short, int, long, float, double.

Классы-обёртки примитивных типов

Длины и диапазоны значений примитивных типов определяются стандартом, а не реализацией и приведены в таблице. Тип char сделали двухбайтовым для удобства локализации (один из идеологических принципов Java): когда складывался стандарт, уже существовал Unicode-16, но не Unicode-32. Поскольку в результате не осталось однобайтового типа, добавили новый тип byte. Типы float и double могут иметь специальные значения , и «не число» (Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.NaN; для типа float — так же, но с приставкой Float вместо Double. Минимальные положительные значения, принимаемые типами float и double, тоже стандартизованы.

Тип Длина (в байтах) Диапазон или набор значений
boolean не определено true, false
byte 1 −128..127
char 2 0..216-1, или 0..65535
short 2 −215..215-1, или −32768..32767
int 4 −231..231-1, или −2147483648..2147483647
long 8 −263..263-1, или примерно −9.2·1018..9.2·1018
float 4 -(2-2-23)·2127..(2-2-23)·2127, или примерно −3.4·1038..3.4·1038, а также , , NaN
double 8 -(2-2-52)·21023..(2-2-52)·21023, или примерно −1.8·10308..1.8·10308, а также , , NaN

Такая жёсткая стандартизация была необходима, чтобы сделать язык платформенно-независимым, что является одним из идеологических требований к Java и одной из причин её успеха. Тем не менее одна небольшая проблема с платформенной независимостью всё же осталась. Некоторые процессоры используют для промежуточного хранения результатов 10-байтовые регистры или другими способами улучшают точность вычислений. Для того, чтобы сделать Java максимально совместимой между разными системами, в ранних версиях любые способы повышения точности вычислений были запрещены. Однако это приводило к снижению быстродействия. Выяснилось, что ухудшение точности ради платформенной независимости мало кому нужно, тем более если за это приходится платить замедлением работы программ. После многочисленных протестов этот запрет отменили, но добавили ключевое слово

strictfp, запрещающее повышение точности.

Преобразования при математических операциях

В языке Java действуют следующие правила:

  1. Если один операнд имеет тип double, другой тоже преобразуется к типу double.
  2. Иначе, если один операнд имеет тип float, другой тоже преобразуется к типу float.
  3. Иначе, если один операнд имеет тип long, другой тоже преобразуется к типу long.
  4. Иначе оба операнда преобразуется к типу int.

Последнее правило отличает Java от старых реализаций C и C++ и делает код более безопасным. Так, например, в языке Java после выполнения кода

short x = 50, y = 1000;
int z = x*y;

переменной z присваивается значение 50000, а не −15536, как в большинстве безнадёжно устаревших реализаций C и C++. В программе, скомпилированной MS VC++, начиная с версии 7, а также многими другими современными компиляторами (gcc, Intel C++, Borland C++, Comeau и т. д.), значение будет также равно 50000.

Объектные переменные, объекты, ссылки и указатели

В языке Java имеются только динамически создаваемые объекты. Причем переменные объектного типа и объекты в Java — совершенно разные сущности. Переменные объектного типа являются ссылками, то есть неявными указателями на динамически создаваемые объекты. Это подчёркивается синтаксисом описания переменных. Так, в Java нельзя писать:

double a[10][20];
Foo b(30);

а нужно:

double[][] a = new double[10][20];
Foo b = new Foo(30);

При присваиваниях, передаче в подпрограммы и сравнениях объектные переменные ведут себя как указатели, то есть присваиваются, копируются и сравниваются адреса объектов. А при доступе с помощью объектной переменной к полям данных или методам объекта не требуется никаких специальных операций разыменовывания — этот доступ осуществляется так, как если бы объектная переменная была самим объектом.

Объектными являются переменные любого типа, кроме простых числовых типов. Явных указателей в Java нет. В отличие от указателей C, C++ и других языков программирования, ссылки в Java в высокой степени безопасны благодаря жёстким ограничениям на их использование, в частности:

  • Нельзя преобразовывать объект типа int или любого другого примитивного типа в указатель или ссылку и наоборот.
  • Над ссылками запрещено выполнять операции ++, −−, +, − или любые другие арифметические операции.
  • Преобразование типов между ссылками жёстко регламентировано. За исключением ссылок на массивы, разрешено преобразовывать ссылки только между наследуемым типом и его наследником, причём преобразование наследуемого типа в наследующий должно быть явно задано и во время выполнения производится проверка его осмысленности. Преобразования ссылок на массивы разрешены лишь тогда, когда разрешены преобразования их базовых типов, а также нет конфликтов размерности.
  • В Java нет операций взятия адреса (&) или взятия объекта по адресу (*). Звёздочка в Java означает умножение, и только. Амперсанд (&) означает всего лишь «побитовое и» (двойной амперсанд — «логическое и»).

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

Дублирование ссылок и клонирование

Из-за того, что объектные переменные являются ссылочными, при присваивании не происходит копирования объекта. Так, если написать

Foo foo, bar;
…
bar = foo;

то произойдет копирование адреса из переменной foo в переменную bar. То есть foo и bar будут указывать на одну и ту же область памяти, то есть на один и тот же объект; попытка изменить поля объекта, на который ссылается переменная foo, будет менять объект, с которым связана переменная bar, и наоборот. Если же необходимо получить именно ещё одну копию исходного объекта, пользуются или методом (функцией-членом, в терминологии C++) clone(), создающим копию объекта, или же копирующим конструктором.

Метод clone() требует, чтобы класс реализовывал интерфейс Cloneable (об интерфейсах см. ниже). Если класс реализует интерфейс Cloneable, по умолчанию clone() копирует все поля (мелкая копия). Если требуется не копировать, а клонировать поля (а также их поля и так далее), надо переопределять метод clone(). Определение и использование метода clone() часто является нетривиальной задачей [12].

Сборка мусора

В языке Java невозможно явное удаление объекта из памяти — вместо этого реализована сборка мусора. Традиционным приёмом, дающим сборщику мусора «намёк» на освобождение памяти, является присваивание переменной пустого значения null. Это, однако, не значит, что объект, заменённый значением null, будет непременно и немедленно удалён. Данный приём всего лишь устраняет ссылку на объект, то есть отвязывает указатель от объекта в памяти. При этом следует учитывать, что объект не будет удален сборщиком мусора, пока на него указывает хотя бы одна ссылка из используемых переменных или объектов. Существуют также методы для инициации принудительной сборки мусора, но не гарантируется, что они будут вызваны исполняющей средой, и их не рекомендуется использовать для обычной работы.

Классы и функции

Java не является процедурным языком: любая функция может существовать только внутри класса. Это подчёркивает терминология языка Java, где нет понятий «функция» или «функция-член» (англ. member function), а только метод. В методы превратились и стандартные функции. Например, в Java нет функции sin(), а есть метод Math.sin() класса Math (содержащего, кроме sin(), методы cos(), exp(), sqrt(), abs() и многие другие).

Статические методы и поля

Для того чтобы не надо было создавать объект класса Math (и других аналогичных классов) каждый раз, когда надо вызвать sin() (и другие подобные функции), введено понятие статических методов (англ. static method; иногда в русском языке они называются статичными). Статический метод (отмечаемый ключевым словом static в описании) можно вызвать, не создавая объекта его класса. Поэтому можно писать

вместо

Math m = new Math();
double x = m.sin(1);

Ограничение, накладываемое на статические методы, заключается в том, что в объекте this они могут обращаться только к статическим полям и методам.

Статические поля имеют тот же смысл, что и в C++: каждое существует только в единственном экземпляре.

Финальность

Ключевое слово final (финальный) означает разные вещи при описании переменной, метода или класса. Финальная переменная (именованная константа) инициализируется при описании и дальше не может быть изменена. Финальный метод не может быть переопределён при наследовании. Финальный класс не может иметь наследников вообще.

Абстрактность

В Java методы, не объявленные явно как final или private, являются виртуальными в терминологии C++: при вызове метода, по-разному определённого в базовом и наследующем классах, всегда производится проверка времени выполнения.

Абстрактным методом (описатель abstract) в Java называется метод, для которого заданы параметры и тип возвращаемого значения, но не тело. Абстрактный метод определяется в классах-наследниках. В C++ то же самое называется чисто виртуальной функцией. Для того чтобы в классе можно было описывать абстрактные методы, сам класс тоже должен быть описан как абстрактный. Объекты абстрактного класса создавать нельзя.

Интерфейсы

Высшей степенью абстрактности в Java является интерфейс (interface). Все методы интерфейса абстрактны: описатель abstract даже не требуется. Интерфейс не является классом. Класс может наследовать, или расширять (extends) другой класс или реализовывать (implements) интерфейс. Кроме того, интерфейс может наследовать, или расширять другой интерфейс.

В Java класс не может наследовать более одного класса, зато может реализовывать сколько угодно интерфейсов.

Интерфейсы можно передавать методам как параметры, но нельзя создавать объекты их типов.

Маркерные интерфейсы

В Java есть некоторые интерфейсы, которые не содержат методов для реализации, а специальным образом обрабатываются JVM. Это интерфейсы:

  • java.lang.Cloneable
  • java.io.Serializable
  • java.rmi.Remote
Шаблоны в Java (generics)

Начиная с версии Java 5 в языке появился механизм обобщённого программирования — шаблоны, внешне близкие к шаблонам C++. С помощью специального синтаксиса в описании классов и методов можно указать параметры-типы, которые внутри описания могут использоваться в качестве типов полей, параметров и возвращаемых значений методов.

// Объявление обобщённого класса
class GenericClass<E> 
{
  E getFirst() { ... }
  void add(E obj) { ... }
}
 
// Использование обобщённого класса в коде
GenericClass <String> var = new GenericClass<String>();
var.add("qwerty");
String p = var.getFirst();

Допускается обобщённое объявление классов, интерфейсов и методов. Кроме того, синтаксис поддерживает ограниченные объявления типов-параметров: указание в объявлении конструкции вида <T extends A & B & C...> требует, чтобы тип-параметр T реализовывал интерфейсы A, B, C и так далее, а конструкция <T super C> требует, чтобы тип-параметр T был типом C или одним из его предков.

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

Проверка принадлежности к классу

В Java можно явно проверить, к какому классу принадлежит объект. Выражение foo instanceof Foo истинно, если объект foo принадлежит классу Foo или его наследнику, или реализует интерфейс Foo (или, в общем виде, наследует класс, который реализует интерфейс, который наследует Foo).

Далее, функция getClass(), определённая для всех объектов, выдаёт объект типа Class. Эти объекты можно сравнивать. Так, например, foo.getClass()==bar.getClass() будет истинно, если объекты foo и bar принадлежат в точности к одному классу (но это не означает что это два одинаковых объекта).

Кроме того, объект типа Class любого типа можно получить так: Integer.class, Object.class.

Однако прямое сравнение классов не всегда является оптимальным средством проверки на принадлежность к классу. Зачастую вместо него используют функцию isAssignableFrom(). Эта функция определена у объекта типа Class и принимает объект типа Class в качестве параметра. Таким образом, вызов Foo.class.isAssignableFrom(Bar.class) вернёт true в случае, если Foo является предком класса Bar. Так как все объекты являются потомками типа Object, вызов Object.class.isAssignableFrom() всегда вернёт true. В паре с упомянутыми функциями объекта типа Class используются также функции isInstance() (эквивалентно instanceof), а также cast() (преобразует параметр в объект выбранного класса).

Библиотеки классов

  • JDK — содержит набор базовых классов для всего ПО на платформах Java SE и Java EE
  • CDK — для создания химического ПО

Средства разработки ПО

  • JDK — помимо набора библиотек для платформ Java SE и Java EE содержит компилятор командной строки javac и набор утилит, также работающих в режиме командной строки.
  • NetBeans IDE — бесплатная интегрированная среда разработки для всех платформ Java — Java ME, Java SE и Java EE. Пропагандируется Sun Microsystems, разработчиком Java, как базовое средство для разработки ПО на языке Java и других языках (C, C++, Fortran и др.).
  • Java SE и Java EE. Ведутся работы по поддержке в Eclipse платформы Java ME. Пропагандируется C, C++, Fortran и др.)
  • IntelliJ IDEA — коммерческая среда разработки для платформ Java SE, Java EE и Java ME.

Примечания

  1. java (англ.). Merriam-Webster Online Dictionary. Merriam-Webster. — Английская норма произношения слова «Java». Проверено 5 июня 2009.
  2. Robert Tolksdorf. Programming languages for the Java Virtual Machine JVM (англ.). is-research GmbH. — Онлайн-каталог альтернативных языков и языковых расширений для JVM. Проверено 5 июня 2009.
  3. Microsoft Java Virtual Machine Support (англ.). Microsoft (2003-09-12). — Официальное заявление Microsoft о программе поддержки MSJVM. Проверено 5 июня 2009.
  4. Todd Hoff Amazon Architecture (англ.) (2007-09-18). — Обсуждение архитектуры Amazon с использованием Java-технологий. Проверено 6 июня 2009.
  5. Amazon Elastic Compute Cloud (Amazon EC2) (англ.). Amazon Web Services LLC. — Описание технологии и возможностей Amazon EC2 как веб-сервиса. Проверено 6 июня 2009.
  6. Todd Hoff eBay Architecture (англ.) (2008-05-27). — Обсуждение архитектуры eBay на платформе Java. Проверено 6 июня 2009.
  7. Randy Shoup, Dan Pritchett The eBay Architecture (англ.) (PDF). SD Forum 2006 (2006-11-29). — Презентация по истории развития архитектуры eBay. Проверено 6 июня 2009.
  8. Allen Stern Exclusive Interview With Yandex CTO Ilya Segalovich (англ.). CenterNetworks (2008-01-14). — Интервью с техническим директором Яндекса Ильёй Сегаловичем. Проверено 6 июня 2009.
  9. Анатолий Орлов Архитектура Яндекс.Поиска (рус.) (PowerPoint). Материалы встречи JUG в Екатеринбурге (2008-05-24). Проверено 6 июня 2009.
  10. Brian Guan The LinkedIn Blog. Blog Archive. Grails at LinkedIn. (англ.). LinkedIn.com (2008-06-11). — История создания системы LinkedIn на основе Java-технологии Grails. Проверено 5 июня 2009.
  11. OracleJVM and Java Stored Procedures (англ.). Oracle Inc.. — Раздел портала Oracle, посвящённый технологиям Java в составе сервера СУБД Oracle. Проверено 5 июня 2009.
  12. Ссылка на документацию к методу Object.clone()(англ.)

Литература

  • Монахов Вадим Язык программирования Java и среда NetBeans, 2-е издание. — СПб.: «БХВ-Петербург», 2009. — С. 720. — ISBN 978-5-9775-0424-9
  • Джошуа Блох. Java. Эффективное программирование = Effective Java. — М.: «Лори», 2002. — С. 224. — ISBN 5-85582-169-2
  • Кей С. Хорстманн, Гари Корнелл. Java 2. Библиотека профессионала, том 1. Основы = Core Java™ 2, Volume I—Fundamentals. — 7-е изд. — М.: «Вильямс», 2007. — С. 896. — ISBN 0-13-148202-5
  • Кей С. Хорстманн, Гари Корнелл. Java 2. Библиотека профессионала, том 2. Тонкости программирования = Core Java™ 2, Volume II—Advanced Features. — 7-е изд. — М.: «Вильямс», 2007. — С. 1168. — ISBN 0-13-111826-9
  • Брюс Эккель. Философия Java = Thinking in Java. — 3-е изд.. — СПб.: «Питер», 2003. — С. 976. — ISBN 5-88782-105-1
  • Герберт Шилдт, Джеймс Холмс. Искусство программирования на Java = The Art of Java. — М.: «Диалектика», 2005. — С. 336. — ISBN 0-07-222971-3
  • Любош Бруга. Java по-быстрому: Практический экспресс-курс = Luboš Brůha. Java Hotová řešení.. — М.: Наука и техника, 2006. — С. 369. — ISBN 5-94387-282-5

См. также

Ссылки

Wikimedia Foundation. 2010.

☕ Что пишут на Java: области применения

В подготовке данного материала нас поддержал Факультета Java-разработки онлайн-университета GeekBrains. Подробно о плюсах работы с Java мы уже рассказали в статье «Преимущества языка программирования Java». В этот раз поговорим о том, как эти преиущества влияют на использование языка на практике.

Главная черта Java – адаптивность. Программное обеспечение, написанное на одной платформе, запустится и на других устройствах. Программы Java работают на Java Virtual Machine, предоставляющей оптимизацию кода и управление памятью. Java также обеспечивает масштабируемость – одновременную обработку нескольких запросов и многопоточное выполнение программы. Все эти возможности языка, конечно, учитываются разработчиками.

Java используется во многих сферах начиная с e-commerce веб-сайтов и заканчивая приложениями для Android, в научных исследованиях и финансах, играх вроде Minecraft и настольных приложениях Eclipse, Netbeans и IntelliJ.

Мобильные приложения Android

Java Micro Edition – это популярная кроссплатформенная среда, применяемая для создания приложений смартфонов. Примеры мобильных приложений, написанных на Java: Netflix, Tinder, Google Earth, Uber и т. д.

Игры на Java

Сайт Java-Gaming.org полностью посвящен созданию игр на Java. Библиотека LWJGL значительно упрощает этот процесс. Примеры написанных на Java игр перечислены в статье 38 лучших приложений (англ.).

Серверные финансовые приложения

Глобальные инвестиционные банки Goldman Sachs, Citigroup, Barclays, Standard Charted используют Java для написания фронт и бэк-офисов систем электронной торговли, систем расчетов и подтверждения транзакций, обработки данных и т. д.

Веб-приложения на Java

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

Таблица, иллюстрирующая использование языков программирования в крупных технологических компаниях (источник)

На Java создано множество opensource-инструментов для мониторинга и обновления данных. К примеру, Netflix использует Java одновременно для разработки инфраструктуры на Linux и кодирования видео на Windows-машинах. Веб-приложения электронной коммерции применяют Java на таких платформах, как Broadleaf.

Программы для сопровождение кода

Инструментальное программное обеспечение – это набор компьютерных программ, которые разработчики используют для программирования, анализа, обслуживания, отладки и поддержки других программ и приложений. Примеры: Eclipse, IntelliJ Idea и IDE NetBeans.

Встраиваемые системы на Java

Первоначально язык Java был разработан для встраиваемых устройств. Девизом Java было «Напиши один раз – запускай где угодно». В результате Java стал одним из лучших языков для разработки IoT-приложений.

Встроенные модули Java предоставляют различные способы взаимодействия с сервером, а архитектура модели безопасности песочницы обеспечивает высокий уровень защиты данных. Модули Cinterion Java успешно используются в среде межмашинного взаимодействия (M2M-machine to machine), включая умные счетчики, системы управления автопарком, промышленной автоматизации и мобильного здравоохранения.

Технологии больших данных

Большие данные – одна из самых популярных тем в мире новейших технологий. Автоматическая сборка мусора и надежное управление памятью делают Java одним из приоритетных языком для реализации алгоритмов машинного обучения. Многие известные средства обработки больших данных (Hadoop, Spark, Mahout) являются Java-фреймворками.

Square

Компания Square помогает продавцам превращать мобильные устройства в платежные системы. Программное обеспечение Square построено с применением Ruby и C++, но стек обработки денежных транзакций основан на Java.

Java – действительно единственный выбор, когда дело доходит до требований для такой компании, как наша – с высокими требованиями к производительности и экстремальными требованиями к масштабируемости. Альтернативы нет.

CTO компании в интервью журналу Wired

Hadoop

Целиком написанная на Java программная среда Hadoop используется для надежного и масштабного распределения вычислительных систем.

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

Cоздатель Apache Hadoop Дуг Каттинг

Twitter

Для Twitter нет ничего важнее масштабируемости. Приложением пользуются более 500 млн человек. Проект начинался, как демонстрация того, на что способен фреймворк Ruby on Rails. К сожалению, со временем стало понятно, что RoR плохо справляется с обработкой большого числа запросов данных в реальном времени, поиском по определенной теме или хештегам. Одним из преимуществ Java является масштабируемость – это послужило одной из главных причин перехода с Ruby на Java.

Несмотря на то что язык был разработан 25 лет назад, Java по-прежнему остается одним из самых востребованных языков. Большинство компаний-гигантов применяют Java в качестве основного языка. Изучение Java – непростая задача. Чтобы сделать процесс более комфортным и увлекательным, воспользуйтесь курсом Факультета Java-разработки.

Учебная программа охватывает все необходимые темы: синтаксис Java, объектно-ориентированное программирование, базы данных и т. д. Вы подробно изучите основы Java, фреймворки Spring и LibGDX, интеграцию платежных систем. Для практики навыков вы разработаете пять проектов:

  • сетевой чат;
  • кроссплатформенная игра;
  • облачное хранилище;
  • интернет-магазин;
  • бизнес-проект, разработанный в команде на основе вашей идеи.

Все эти проекты послужат отличным дополнением к портфолио для подачи заявки на работу. Онлайн-университет также поможет с трудоустройством.

Начинающим Java программистам / Хабр

Программирую на Java вот уже 7 лет. Но на работе часто приходится обучать новое поколение. В связи с этим и решил сделать некоторую шпаргалку, которая, надеюсь, пригодится и для хабрчан. Если кто-то может помочь дополнить чем-то информацию из этой статьи, то пишите! Итак:
Основные ресурсы для начального обучения

  • www.javable.com — сайт со статьями и tutorial’ом по Java. Все в основном на русском.
  • www.exampledepot.com — очень полезный ресурс, где собраны краткие примеры использования классов для тех или иных пакетов
  • java.sun.com — без первоисточника не обойтись. Для любого Java программиста JavaDoc должен быть истиной в последней инстанции. Так же здесь можно найти серию tutorial’ов на все возможные темы.


Основные Java пакеты

Ниже приведён список Java пакетов, в которых программист должен свободно ориентироваться. Знакомиться с ними рекомендуется как по JavaDoc’ам, так и с помощью www.exampledepot.com. Все пакеты выстроены в рекомендуемом порядке для изучения. Итак:
  1. java.lang — основа основ. Каждый класс в этом пакете нуждается в отдельном внимании.
  2. java.io — ни одна программа не может обойтись без операций с вводом-выводом.
  3. java.util — пакет в основном содержит все необходимое для работы с коллекциями: Collection, Enumeration, Set, List, Map и т.д. и т.п.
  4. java.net — содержит основные классы для работы с сетью.
  5. java.text — все необходимое для форматирования текста
  6. java.lang.reflect — Java не была бы Java’ой если бы не Reflection. Reflection стирает грань между данными и кодом.
  7. javax.sql — все необходимое по работе с базами данных
  8. javax.xml.*, org.w3c.dom.*, org.xml.sax.* — без этих пакетов работа с XML просто немыслима
Ресурсы для расширения кругозора

  • onjava.com — рано или поздно все новости мира Java попадают сюда
  • www.javaspecialists.eu — ресурс полезен как новичкам, так и продвинутым программистам, так как содержит много статей о тонкостях работы с Java.
  • www.theserverside.com — рекомендуется подписаться на RSS, так как часто проскакивают весьма интересные вещи по Java.
Java Библитеки, которые должны знать все

Java не заканчивается знаниями лишь о возможностях JSDK. Чтобы чувствовать себя комфортно необходимо знать еще десятка два сторонних библиотек, используемых Java программистами повсеместно. Итак, начнем с основных:
  • Commons Lang — то что «забыли» включить в JDK
  • Commons Math — отличное дополнение для java.math
  • Commons Logging — логирование должно быть грамотным. За System.out.println для вывода логов начинающим программистам уже через неделю обучения следует отрубать руки.
  • Commons Net — логическое продолжение для пакета java.net. Множество классов для работы с основными сетевыми протоколами.
  • Commons VFS — отличная библиотека для абстрагирования от способа хранения файла. Позволяет достаточно обобщено иметь доступ до файлов по FTP, SFTP, WEBDAV, (G)ZIP и т.д.
  • Commons IO — работа с вводом-выводом часто получается весьма муторной, но с этой библиотекой все становится несколько веселее.
  • HttpClient — библиотека по работе с http ресурсами.
  • JUnit — любой код, должен сопровождаться тестированием. Для автоматизации тестирования и предназначена эта библиотека.

На этом пока все. Если подобные шпаргалки по Java вам интересны, то могу так же выложить свою коллекцию «простейших» задач по Java, которые ориентированы, на то, чтобы быстро освоить основные пакеты Java.

Для чего нужна Java

Многие пользователи сталкиваются на своих компьютерах с программой Java и возникает вполне закономерный вопрос — что это за программа и для чего она нужна?

Java — это технология, которую используют для разработки онлайн-приложений, то есть программ, запускающихся и работающих прямо в вашем браузере.

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

Но для того, чтобы воспользоваться всеми этими преимуществами необходимо, чтобы на вашем компьютере была установлена среда Java. То есть это специальная программа, позволяющая запускать Java-контент прямо в вашем браузере. Если среда не установлена на вашем компьютере, то многие онлайн-приложения и веб-сайты просто не будут работать. Обычно в этом случае когда вы заходите на веб-страницу, содержащую Java-контент, появляется сообщение о необходимости скачать и установить на ваш компьютер Java. Многие это делают даже не задумываясь, а потом возникают вопросы вроде: «что это за программа?», «как она попала на мой компьютер?» и «для чего она нужна?»

Также после установки на компьютер, Java будет отслеживать появление новых обновлений на официальном сайте и как только таковые появятся, вы получите сообщение с предложением их установить.

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

Более подробную информацию о технологии Java, а также ответы на наиболее частые вопросы, касающиеся Java, вы можете получить на официальном сайте — http://www.java.com

Также с официального сайта вы можете скачать последнюю версию Java.

Что такое Java Virtual Machine, или Джава – это вам не Ява!.. Часть 1 | Техника и Интернет

Технология Java была создана как инструмент программирования в компании Sun Microsystems в 1991 г. в рамках небольшого закрытого исследовательского проекта, получившего кодовое название «Green» («Зеленый проект»).
«Зеленая команда» из 13 инженеров и разработчиков под руководством Джеймса Гослинга (James Gosling) в течение полутора лет работала сутками напролет в отдельном офисе на Sand Hill Road в г. Менло Парк (Калифорния; опять Силиконовая долина!), не информируя о своей работе компанию Sun.

Инженеры «Зеленой команды» старались предвосхитить грядущую «новую волну» в программировании и подготовиться к ней. Первоначально они исходили из предположения, что одной из основных тенденций развития будет сближение между цифровой потребительской техникой и компьютерами.
Результатом этой работы стал машинно-независимый язык программирования, получивший кодовое название «Oak» (Дуб).

Чтобы продемонстрировать, как новый язык программирования может в будущем использоваться в цифровой технике, «Зеленая команда» создала домашний портативный интерактивный контроллер для цифрового кабельного телевидения. Но тогда эта идея была слишком новаторской, и цифровое кабельное телевидение не было готово к тому резкому прорыву, который предлагала технология Java.

Однако новаторство технологии Java оказалось востребованным для Интернета, и на первой официальной презентации технологии Java в 1995 г. команда Гослинга смогла объявить, что технология Java будет использована в интернет-обозревателе Netscape Navigator.

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

В целом универсальность, эффективность, безопасность и совместимость с разными платформами делают технологию Java идеальным инструментом для сетевых технологий. Поэтому сегодня она используется более чем в 2,5 млрд. устройств, среди которых:
• более 700 млн. ПК;
• более 1 млрд. мобильных телефонов и других портативных устройств;
• 1,25 млрд. смарт-карт;
• а также телеприставки, принтеры, веб-камеры, игры, автомобильные системы навигации, игровые автоматы, медицинское оборудование, парковочные автоматы и т. д.
В настоящее время технологию Java можно встретить практически в любых сетях и устройствах — от Интернета и суперкомпьютеров до портативных компьютеров и мобильных телефонов, от устройств моделирования биржевых торгов до домашних игровых приставок и кредитных карт.

Почему разработчики программного обеспечения выбирают технологию Java
Язык программирования Java всесторонне дорабатывали, расширяли, тестировали и проверяли на практике более 4 млн. разработчиков программного обеспечения.
Законченная, чрезвычайно надежная и универсальная технология Java неоценима для разработчиков программного обеспечения тем, что она позволяет им:
• писать программное обеспечение на одной платформе и запускать его практически на любой другой;
• создавать программы для работы в веб-обозревателях и веб-службах;
• разрабатывать серверные приложения для интернет-форумов, магазинов, опросов, обработки HTML-форм и др.;
• создавать максимально приспособленные для требований пользователя приложения и службы, комбинируя различные Java-модули;
• писать мощные и эффективные приложения для мобильных телефонов, удаленных процессоров, недорогих потребительских товаров и практически для любых цифровых устройств.

Что такое Java Virtual Machine
Java Virtual Machine (Java VM, JVM) — виртуальная машина Java — основная часть исполняющей системы Java, так называемой Java Runtime Environment (JRE). Виртуальная машина Java интерпретирует и исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java.

В 1996 г. компания Sun выпустила первую версию документа «Голубая книга JVM», в котором описана спецификация виртуальной машины Java, ставшего де-факто отраслевым стандартом платформы Java. Благодаря этому документу появились альтернативные реализации JVM, являющиеся «разработками с чистого листа» (англ. clean room design). В качестве примера можно привести Kaffe.
Начиная с версии J2SE 5.0 изменения в спецификации JVM вырабатываются в соответствии с формализованными пожеланиями заинтересованных сторон. Процесс внесения изменений в спецификации JVM называется Java Community Process.

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

Java-платформа (Java Platform) — виртуальная машина Java и стандартные классы составляют Java-платформу. Java-платформа предоставляет программам унифицированный интерфейс независимо от операционной системы, на которой они работают.

Java Remote Method Invocation (JRMI) — интерфейс вызова удаленных методов. Распределенная объектная модель, определяющая, каким образом производится вызов удаленных методов, работающих на другой виртуальной машине Java.

Java Runtime Environment (JRE) — среда исполнения Java. Подмножество Java Development Kit, предназначенное для конечных пользователей. JRE состоит из виртуальной машины Java (JVM), стандартных классов Java и вспомогательных файлов.

Java Virtual Machine (JVM) — виртуальная машина Java, часть среды исполнения Java, выполняющая интерпретацию Java байт-кода. Java Virtual Machine специфицируется набором команд байт-кода, набором регистров, стеком, сборщиком мусора и пространством хранения методов.

Java байт-код (Java bytecode) — машинно-независимый код, который генерирует Java-компилятор. Байт-код выполняется Java-интерпретатором. Виртуальная машина Java полностью стековая: не требуется сложная адресация ячеек памяти и большое количество регистров. Поэтому команды JVM короткие, большинство из них имеет длину 1 байт, отчего команды JVM называют байт-кодами (bytecodes), хотя имеются команды длиной 2 и 3 байта (средняя длина команды составляет 1,8 байта).
Программа, написанная на языке Java, переводится компилятором в байт-код. Байт-код записывается в одном или нескольких файлах, может храниться во внешней памяти или передаваться по сети. Это особенно удобно благодаря небольшому размеру файлов с байт-кодом. Полученный в результате компиляции байт-код можно выполнять на любом компьютере, имеющем систему, реализующую JVM (в не зависимости от типа какого-либо конкретного процессора и архитектуры ПК). Так реализуется принцип Java: «Write once, run anywhere» — «Написано однажды, выполняется где угодно».

Java-апплеты (Java applets) — Java-приложения, доступ к которым можно получить из веб-браузера.

Является ли Java лучшим языком программирования для начинающих? / Хабр

Привет, Хабр! Представляю вашему вниманию перевод статьи «Is Java The Best Programming language to Learn First?» автора Javin Paul.

Часто получаю вопросы, вроде: «Какой язык программирования изучить первым?», «Java-тот самый язык программирования, на котором стоит начать писать?», «Насколько Java хорош в качестве первого языка программирования?», «Который из языков программирования самый подходящий для начинающих?» или «Начать с Java или Python?».

Ответом на все эти вопросы является то, что Java – один из самых популярных языков программирования, и есть много причин начать его изучать, начиная с карьерных возможностей и заканчивая получением поддержки со стороны сообщества.

По моему мнению, самая веская причина начала программирования на Java или выбора его в качестве первого языка – Java освоить проще.

Некоторые могут утверждать, что Python ещё проще Java и даже не требует компиляции, но лично я нахожу Java языком, понимать и читать на котором много легче (много лёгким для чтения и понимания).

Последнее поколение программистов начинало учиться писать код с Бейсика и только потом переходило на C и C++ с Java в качестве своего второго или третьего языка программирования.
Одной из причин для этого может быть то, что C и C++ были более востребованными в те дни в отличие от Java. Но действительная причина в том, что учебная программа была построена так, что нас обучали C и C++, поскольку тогда ещё не было Python, по крайней мере, в нашем колледже.

И правда, часто нам не приходится выбирать, и мы изучаем в школе или колледже программирование как часть учебной программы. В моё время C был первым языком программирования в нашем инженерном колледже, потом мы изучали C++, VB, VC++, и, наконец, Java.

Сейчас я говорю о том, что Java проще и легче освоить, но помню, как отметил, что он сложнее по синтаксису по сравнению с C++, поскольку мне приходилось прописывать System.out.println() вместо короткой формы записи cout для того, чтобы вывести сообщение на экран, однако это просто кратковременное неудобство.

Когда я начал писать и поддерживать большие программы, я нашёл код на Java более читабельным, и вы можете понять, что делает код. В Java отладка и поиск ошибок были много более удобные, чем в C++ или C.

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

Java – язык программирования, с которого стоит начать?


Несколько причин, почему я считаю Java подходящим языком программирования, чтобы на нём учиться писать код:

  1. Java проще, синтаксис гораздо более читабельный, чем синтаксис C, C++ или другого языка.
  2. Язык Java хорош для изучения объектно-ориентированного программирования, но не для процедурного, где он уступает C. ООП или Объектно-Ориентированное Программирование является полезным навыком, потому что оно достаточно хорошо справляется со сложностью реального приложения. Проще думать с точки зрения класса и объектов.
  3. Java имеет богатый API, и вы можете делать очень много в Java, например, работать с графикой, звуком и, что всего вероятнее, писать небольшие игры, такие как Крестики-Нолики, Тетрис и др. Не то, что вы не можете сделать это на других языках, но тогда вам придётся часто загружать и устанавливать различные программы и библиотеки, что для начинающего программиста работа непростая. Когда вы устанавливаете Java, большая часть всего необходимого для работы устанавливается уже в процессе установки языка.
  4. Java имеет сильную поддержку сообщества, неважно, какого рода вопросы, сомнения или проблемы у вас возникли, Google сможет найти ответы. Если не Google, то есть Stack Overflow, форумы Java и множество других сообществ, которые вам помогут. Это действительно самая главная причина, почему я советую начинающим учиться писать код на Java, поскольку, когда вы начнёте учиться программировать, вы столкнётесь с множеством различных проблем, прежде чем начать понимать основы программирования и сам Java. Поскольку Java-разработчиков насчитывается несколько миллионов и оказывается поддержка сообщества, всего вероятнее вы быстро отыщите ответы без каких-либо разочарований и недовольств.
  5. Java – строго типизированный язык, который исправляет множество ошибок, допущенных начинающими программистами. Также, в меньшей мере, подходит для статической типизации. Это ещё одна причина, по которой я предлагаю начинающим изучать сначала Java, а не Python, потому что Python – язык с динамической типизацией, и вам не нужно определять типы, что обычно запутывает.
  6. Java устанавливается со встроенным Garbage collection (автоматическое управление памятью, что занимают неиспользуемые объекты), что является большим плюсом для абсолютных новичков. Управление памятью – это большое дело в начале обучения программированию.

Это те несколько причин, почему я считаю, что начинающим следует сначала освоить Java и только потом любой другой язык программирования. Я могу быть предвзятым, потому что я Java-программист, но я также знаю Python и я также занимался профессиональным программированием на C и C++.

Исходя из этого опыта, я могу сказать, что Java, несомненно, является одним из лучших языков программирования для начинающих, и вы определённо можете выбрать Java в качестве первого языка программирования для изучения программирования.

Достаточно ли Java для успешной карьеры программиста?


Вопрос не в различии языков программирования, нет. Как программист, вы должны знать много вещей, таких как структура данных, алгоритмы, управление памятью, объектно-ориентированное программирование, скрипты и так далее. А другой язык учит вас другому.

Как только вам будет легко работать с Java, вы можете перейти на другие языки программирования, такие как Scala, JavaScript или выбрать скриптовые языки, например, Python, которые не нужно компилировать.

Самая большая проблема в этой сфере — нужно продолжать учиться и развиваться, чтобы построить успешную карьеру программиста. Если вы любите программирование и осваиваете новые технологии и языки программирования, то эта сфера для вас.

Для того, чтобы быть успешным программистом, также важно развивать навык отладки программ, который основан на умении логически мыслить.

Если вы дружите с логикой и можете сделать вывод, основанный на ограниченной доступной информации, тогда вам не составит труда устранять проблемы и находить ошибки в коде.
Хороший опыт работы с такими интегрированными средами разработки (IDE), как Eclipse, NetBeans или IntelliJ IDEA и действительно отличные инструменты Java также помогут вам в написании кода и его отладке.

На этом всё. На мой взгляд, Java, безусловно, является прекрасным языком, с которого стоит начать, потому что он проще большинства других языков и сосредоточен непосредственно на самом написании кода, а не на управлении системами, такими как управление памятью.

Вкратце, вы определённо можете выбрать Java в качестве своего первого языка программирования, и, когда вы его освоите, попробуйте выучить ещё парочку языков, например, JavaScript или Python.

Java EE | Введение

Что такое Java EE

Последнее обновление: 08.08.2018

Java EE или Java Enterprise Edition представляет платформу для создания корпоративных приложений на языке Java. Прежде всего это сфера веб-приложений и веб-сервисов.

Java EE состоит из набора API и среды выполнения. Некоторые из API:

  • Java Servlets. Сервлеты представляют специальные модули, которые обрабатывают запросы от пользователей и отправляют результат обработки.

  • JavaServer Pages (JSP). Также модули на стороне сервера, которые обрабатывают запросы. Удобны для генерации большого контента HTML. По сути предствляют собой страницы с кодом HTML/JavaScript/CSS с вкраплениями кода на Java

  • Enterprise JavaBeans (EJB) представляют классы, которые хранят бизнес-логику.

  • Contexts and Dependency Injection (CDI) предоставляет механизм для внедрения и управления зависимостями в другие объекты.

  • JSON Processing (JSON-P) позволяет работать со строками JSON в Java

  • JSON Binding (JSON-B) предоставляет функционал для сериализации и десериализации JSON в объекты Java.

  • WebSocket позволяет интегрировать WebSocket в приложения на Java.

  • Java Message Service (JMS) — API для пересылки сообщений между двумя и более клиентами.

  • Security API — API для стандартизации и упрощения задач обеспечения безопасности в приложениях на Java.

  • Java API for RESTful Web Services (JAX-RS) — API для применения архитектуры REST в приложениях.

  • JavaServer Faces (JSF) предоставляет возможности для создания пользовательского интерфейса на стороне сервера.

Эти и ряд других API сообственно и образуют то, что называется Java EE. Стоит отметить, что также в среде веб-разработки на Java популярна еще одна технология Spring. Фреймворк Spring не является частью Java EE и может использоваться как альтернативный подход к созданию веб-приложений на языке Java.

История развития

Предтечей Java EE был проект JPE Project, который стартовал в мае 1998 года. А в декабре 1999 года вышел релиз платформы Enterprise Java Platform (J2EE 1.2), которая объединяла такие компоненты как сервлеты, JSP, EJB, JMS. В 2006 году с выходом 5-й версии она была переименована в Java Enterprise Edition (JEE). С тех пор периодически выходят новые версии платформы. Последняя текущая версия — Java EE 8 вышла в сентябре 2017 года.

В 2017 году произошла новая веха в развитии платформы: Oracle передал контроль над развитием Java EE организации Eclipse Foundation. А в апреле 2018 года Java EE была переименована в Jakarta EE.

В начале 2019 года ожидается выход новой версии Jakarta/Java EE.

Официальный сайт платформы https://jakarta.ee/.

Установка IDE

Для работы с Java EE нам потребуется среда разработки или IDE. Есть различные среды разработки, которые ориентированы на корпоративную разрабоку под Java. Это IntelliJ IDEA, NetBeans и Eclipse. В данном случае на протяжении всего руководства мы преимущественно будем использовать Eclipse, потому что она является бесплатной и довольно широко распространена.

Для начала установим последнюю версию Eclipse, которую можно найти по адресу https://www.eclipse.org/downloads/. На странице загрузок выберем найдем рядом с названием текущей версии Eclipse кнопку «Download» и нажмем на нее.

После нажатия на кнопку нас перенаправит собственно на страницу загрузки, где необходимо будет нажать на кнопку «Download» для загрзуки установочного пакета:

После ее загрузки программы установки запустим ее и в отобразившемся списке опций выберем Eclipse IDE for Java EE Developers:

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

Что такое Java? Руководство по Java и ее развитию для новичков

Что такое Java? Java — это кроссплатформенный объектно-ориентированный язык программирования, выпущенный Sun Microsystems в 1995 году. Сегодня Java необходима для запуска различных приложений, таких как игры, приложения для социальных сетей, аудио- и видео-приложения и т. Д.

In В этом блоге я бы затронул следующие темы:

Для чего используется Java?

Прежде чем я продолжу, позвольте мне кратко рассказать вам о том, почему вам следует выбрать Java.Он очень популярен и доминировал в этой области с начала 2000-х по настоящее время 2018.

Некоторые из приложений перечислены ниже:

  • Банковское дело : для управления транзакциями.
  • Retail : Платежные приложения, которые вы видите в магазине / ресторане, полностью написаны на Java.
  • Информационные технологии : Java предназначена для решения зависимостей реализации.
  • Android : приложения либо написаны на Java, либо используют Java API.
  • Финансовые услуги : Используется в серверных приложениях.
  • Фондовый рынок : для написания алгоритмов того, в какую компанию им следует инвестировать.
  • Большие данные : Фреймворк Hadoop MapReduce написан с использованием Java.
  • Научно-исследовательское сообщество : Для работы с огромным объемом данных.

Подождите! Java может больше.

Давайте посмотрим, как некоторые технологии используют Java в качестве основного ядра своих функций.

Давайте посмотрим, как некоторые технологии используют Java в качестве основного ядра своих функций.

На изображении выше видно, что Java — это океан возможностей .

Давайте посмотрим краткую историю Java.

История

Java — это язык программирования, разработанный Джеймс Гослинг с другими членами команды Майк Шеридан и Патрик Нотон , также называемый Green Team в 1995 для Sun Microsystems для цифровых устройств, таких как телевизионные приставки, телевизоры и т. д.Теперь давайте подробно исследуем язык.

Что такое Java?

Это объектно-ориентированный язык, похожий на C ++, но с расширенными и упрощенными функциями. Этот язык является бесплатным для доступа и может запускать на всех платформах .

Java — это: —

  • Concurrent , где вы можете выполнять множество операторов вместо того, чтобы выполнять их последовательно.
  • на основе классов и объектно-ориентированный язык программирования .
  • Независимый язык программирования , который следует логике « однократная запись, запуск в любом месте », то есть скомпилированный код может работать на всех платформах, поддерживающих java.

Проще говоря, это вычислительная платформа, на которой вы можете разрабатывать приложения.

Вы можете пройти через это занятие, где наш эксперт Certification Training подробно объяснил темы с примерами, которые помогут вам лучше понять концепции.

Возможности

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

Portable: Это не зависит от платформы, что означает, что любое приложение, написанное на одной платформе, может быть легко перенесено на другую платформу.

Объектно-ориентированный: Все рассматривается как «объект », который обладает некоторым состоянием, поведением, и все операции выполняются с использованием этих объектов.

Защищено: Весь код после компиляции преобразуется в байт-код , который не читается человеком. а java не использует явный указатель и запускает программы внутри песочницы, чтобы предотвратить любые действия из ненадежных источников. Он позволяет разрабатывать системы / приложения без вирусов и несанкционированного доступа.

Динамический: Он обладает способностью адаптироваться к развивающейся среде, которая поддерживает динамическое распределение памяти, благодаря чему сокращаются потери памяти и повышается производительность приложения.

Распределенный: Этот язык предоставляет функцию, которая помогает создавать распределенные приложения. Используя удаленный вызов метода (RMI), программа может вызвать метод другой программы в сети и получить результат. Вы можете получить доступ к файлам, вызвав методы с любого компьютера в Интернете.

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

Высокая производительность: Java обеспечивает высокую производительность за счет использования байт-кода, который можно легко преобразовать в собственный машинный код. Благодаря использованию компиляторов JIT (Just-In-Time) он обеспечивает высокую производительность.

Интерпретация : Java компилируется в байт-коды, которые интерпретируются средой выполнения.

Многопоточность : Java поддерживает несколько потоков выполнения (a.k.a., легковесные процессы), включая набор примитивов синхронизации. Это значительно упрощает программирование с помощью потоков.

Компоненты

JVM (виртуальная машина Java)

Это абстрактная машина. Это спецификация, которая обеспечивает среду выполнения, в которой может выполняться байт-код. Он следует за тремя нотациями:

  • Спецификация : это документ, описывающий реализацию JVM.Предоставляется Sun и другими компаниями.
  • Реализация : Это программа, соответствующая требованиям спецификации JVM.
  • Экземпляр среды выполнения : Экземпляр JVM создается всякий раз, когда вы пишете команду в командной строке и запускаете класс.

JRE (среда выполнения Java)

JRE относится к среде выполнения, в которой может выполняться байт-код. Он реализует JVM и предоставляет все библиотеки классов и другие файлы поддержки, которые JVM использует во время выполнения.Итак, JRE — это программный пакет, который содержит все необходимое для запуска программы. По сути, это реализация JVM, которая существует физически.

JDK (Java Development Kit)

Это инструмент, необходимый для: —

  • Компиляция
  • Документ
  • Пакет программ Java.

JDK полностью включает JRE, которая содержит инструменты для программистов. Комплект разработчика предоставляется бесплатно. Наряду с JRE, он включает в себя интерпретатор / загрузчик, компилятор (javac), архиватор (jar), генератор документации и другие инструменты, необходимые для разработки Java.Короче говоря, он содержит инструменты разработки JRE +.

Теперь, когда вы поняли основы этого очень мощного языка, ознакомьтесь с курсом Java Certification Training от Edureka, надежной компании онлайн-обучения с сетью из более чем 250 000 довольных учеников, разбросанных по всему миру. глобус. Курс обучения и сертификации по Java J2EE и SOA от Edureka предназначен для студентов и профессионалов, которые хотят стать разработчиками.Курс разработан, чтобы дать вам фору в программировании и обучить как основным, так и продвинутым концепциям, а также различным фреймворкам, таким как Hibernate и Spring.

Есть к нам вопрос? Пожалуйста, укажите это в разделе комментариев в этом блоге, и мы свяжемся с вами как можно скорее.

.

JAVA Значение и определение | Что такое JAVA?

Главная »СРОК» J »

Эбби Дайкс

Java — это универсальный язык программирования высокого уровня, впервые выпущенный Sun Microsystems в 1995 году. Он разработан с учетом минимального количества зависимостей реализации, бесплатен для использования и может работать на всех платформах. Он является параллельным, основан на классах и объектно-ориентирован. Проще говоря, Java — это вычислительная платформа, на которой пользователи могут разрабатывать приложения.

Java похож на C ++, но упрощен, чтобы исключить языковые особенности, которые вызывают общие ошибки программирования. Файлы исходного кода, то есть файлы с расширением .java, компилируются в формат, известный как байт-код, то есть файлы с расширением .class. Затем это может быть выполнено интерпретатором Java. Байт-код может быть напрямую преобразован в инструкции машинного языка с помощью оперативного компилятора.

Компоненты Java

Язык программирования Java состоит из трех основных компонентов:

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

  • Среда выполнения Java (JRE): JRE — это среда выполнения, которая требуется для выполнения программ и приложений Java. Если пользователь хочет запустить Java-программу на своем компьютере, на нем должна быть установлена ​​JRE. Это зависит от платформы, то есть установленная JRE должна быть совместима с операционной системой и архитектурой пользователя.

  • Java Development Kit (JDK): JDK — это основной компонент среды Java. Он содержит JRE вместе с компилятором Java, отладчиком Java и другими классами. Он используется для разработки Java, чтобы предоставить полные исполняемые и двоичные файлы, а также инструменты для компиляции и отладки программы Java.

Преимущества Java

Java легко изучить. Язык не требует предварительного знания базового языка программирования. В отличие от других языков программирования, включая C ++, когда Java компилируется, он не компилируется в машину, зависящую от платформы.Это означает, что программа, скомпилированная на одной машине, может быть легко выполнена на любой другой машине без каких-либо изменений.

Java является многопоточным, что означает одновременное выполнение нескольких задач, а пользователи могут создавать интерактивные приложения, которые работают без сбоев. Благодаря своим функциям безопасности можно разрабатывать системы, свободные от вирусов и несанкционированного доступа. Методы аутентификации основаны на шифровании с открытым ключом.

Самые популярные вопросы, связанные с Java

1. Что такое Java IDL?

2.Что такое Java-апплет?

3. Что такое JavaBeans?

4. Что такое JavaScript?

5. Что такое JDBC (подключение к базе данных Java)?



НОВОСТИ ВЕБОПЕДИИ

Будьте в курсе последних событий в терминологии Интернета с помощью бесплатного информационного бюллетеня Webopedia. Присоединяйтесь, чтобы подписаться сейчас.

.

Что такое платформа Java? Ultimate Guide for Programmers

  • Home
  • Testing

      • Back
      • Agile Testing
      • BugZilla
      • Cucumber
      • Database Testing
      • ETL Testing
      • 000 J2000
      • LoadRunner
      • Ручное тестирование
      • Мобильное тестирование
      • Mantis
      • Почтальон
      • QTP
      • Назад
      • Центр качества (ALM) So
      • RPA
      • SAP4 Testing Management
      • TestLink
  • SAP

      • Назад
      • ABAP
      • APO
      • Начинающий
      • Basis
      • BODS
      • BI
      • BPC
      • CO
      • Назад
      • CRM
      • Crystal Reports
      • MMO
      • HANA
      • Назад
      • PI / PO
      • PP
      • SD
      • SAPUI5
      • Безопасность
      • Менеджер решений
      • Successfactors
      • SAP Tutorials
    000
  • Web

  • AngularJS
  • ASP.Net
  • C
  • C #
  • C ++
  • CodeIgniter
  • СУБД
  • JavaScript
  • Назад
  • Java
  • JSP
  • Kotlin
  • Linux
  • Linux
  • Kotlin
  • Linux
  • js
  • Perl
  • Назад
  • PHP
  • PL / SQL
  • PostgreSQL
  • Python
  • ReactJS
  • Ruby & Rails
  • Scala
  • SQL
  • 000
  • SQL
  • 000 0003 SQL 000 0003 SQL 000
  • UML
  • VB.Net
  • VBScript
  • Веб-службы
  • WPF
  • Обязательно учите!

      • Назад
      • Бухгалтерский учет
      • Алгоритмы
      • Android
      • Блокчейн
      • Business Analyst
      • Создание веб-сайта
      • CCNA
      • Облачные вычисления
      • 00030003 COBOL 9000 Compiler
          9000 Встроенные системы
        • 00030002 9000 Compiler 9000
        • Ethical Hacking
        • Учебники по Excel
        • Программирование на Go
        • IoT
        • ITIL
        • Jenkins
        • MIS
        • Сеть
        • Операционная система
        • Назад
        • Управление проектами Обзоры
        • Salesforce
        • SEO
        • Разработка программного обеспечения
        • VB A
    • Big Data

        • Назад
        • AWS
        • BigData
        • Cassandra
        • Cognos
        • Хранилище данных
        • 0003
        • HBOps
        • 0003
        • HBOps
        • 0003
        • MicroStrategy
    .

    Что такое язык программирования Java?

    Что такое Java?

    Java — это объектно-ориентированный язык программирования. Впервые он был выпущен Sun Microsystems в 1995 году. Oracle приобрела Sun Microsystems в 2010 году и в настоящее время поддерживает выпуск и поддержку языка программирования Java.

    Java-приложения поддерживают парадигму Write-Once-Run-Everywhere . Это означает, что вы можете разработать и скомпилировать Java-программу в одной системе и запустить скомпилированный код в любой другой операционной системе.

    Например, вы можете написать и скомпилировать приложение Java в Windows, а затем без проблем запустить его в системах Linux и Mac OS.

    Java используется почти в каждой компании из списка Fortune 500. Это по-прежнему самый предпочтительный язык для серверного программирования и корпоративных приложений.

    Каковы преимущества программирования на Java?

    • Java используют все. Есть более 3 миллиардов устройств, на которых работает Java.
    • Java бесплатна и имеет открытый исходный код.У него отличная документация и поддержка сообщества.
    • Мы можем создать практически любое приложение на Java. Вы можете создавать автономные служебные приложения, веб-приложения, веб-службы, распределенные и высокомасштабируемые приложения на Java.
    • На Java разработано множество фреймворков. Вы можете использовать платформу Spring для веб-приложений и веб-сервисов, JUnit / TestNG для модульного тестирования, Log4J для ведения журнала и т. Д. Большинство этих сред являются бесплатными и имеют открытый исходный код.
    • Java позволяет нам создавать параллельные приложения.Это полезно при создании приложений, в которых используются преимущества последних технологических достижений, например, эффективное использование многоядерных процессоров.

    Каковы основные компоненты Java?

    Три основных компонента Java:

    1. JDK : Java Development Kit является основным компонентом среды Java и предоставляет все инструменты, исполняемые файлы и двоичные файлы, необходимые для компиляции, отладки и выполнения программы Java.
    2. JVM : Виртуальная машина Java — это сердце языка программирования Java.Когда мы запускаем Java-программу, JVM отвечает за преобразование байтового кода в машинно-зависимый код. JVM зависит от платформы и обеспечивает основные функции Java, такие как управление памятью, сборка мусора, безопасность и т. Д.
    3. JRE : Java Runtime Environment — это реализация JVM. Он предоставляет платформу для выполнения Java-программ. JRE состоит из JVM, двоичных файлов java и других классов для успешного выполнения любой программы Java.

    История версий Java

    Java была первоначально концептуализирована и разработана Джеймсом Гослингом в Sun Microsystems.Впервые он был выпущен для публичного использования в 1995 году. Java 13 — это текущая и последняя версия Java. Начиная с Java 10, каждые 6 месяцев выпускается новая основная версия.

    Версия Дата выпуска Важные функции
    JDK Beta 1995 Первая бета-версия
    Java 1.0 23 января 1996 г. Первый общедоступный выпуск. Стабильная версия Java 1.0.2 называется Java 1.
    Java 1.1 19 февраля 1997 г.
    • Внутренние классы
    • Java Beans
    • JDBC
    • RMI
    Java 1.2 8 декабря 1998 г.
    • Swing
    • JIT-компилятор
    • Коллекции
    Java 1.3 8 мая 2000 г.
    Java 1.4 6 февраля 2002 г.
    • Утверждения
    • Улучшения RegEx
    • Image IO API
    • XML Parser
    • XSLT Processor
    • Preferences API
    Java 5 30 сентября 2004 г.
    • Generics
    • для каждого цикла
    • Varargs
    • Autoboxing
    • Enum
    • Annotations
    • Static import
    Java 6 11 декабря 2006
    • JAXB 2
    • JDBC 4.0 поддержка
    • Подключаемые аннотации
    Java 7 7 июля 2011 г.
    • Строка в операторах switch
    • Попробуйте с ресурсом
    • Пакет Java NIO
    • Двоичные литералы
    • Перехват нескольких исключений в одном улове блок
    Java 8 18 марта 2014 г.
    • Метод forEach () в интерфейсе Iterable
    • метод по умолчанию и статический метод в интерфейсах
    • Функциональные интерфейсы и лямбда-выражения
    • Stream API
    • New Date Time API
    Java 9 21 сентября 2017 г.
    • JShell
    • Модульная система — Project Jigsaw
    • Реактивные потоки
    • HTTP 2 Клиент
    Java 10 20 марта 2018 г. Локальный -Введение типа переменной
    Java 11 25 сентября 2018 г.
    • Запуск программы Java из одной команды
    • Методы нового класса String
    • var для лямбда-выражений
    Java 12 19 марта 2019 г.
    • Сборщик мусора Shenandoah
    • Teeing Collectors
    • Новые методы в классе String
    • Switch Expressions
    Java 13 17 сентября 2019
    • Текстовые блоки
    • Улучшения выражений Switch
    • Повторная реализация Socket API

    Должен ли я выучить Java в 2019 году?

    Да, Java по-прежнему остается одним из самых популярных языков программирования.Согласно опросу разработчиков StackOverflow 2019, его популярность почти такая же, как и у Python. Это по-прежнему самый предпочтительный язык программирования для серверных приложений.

    .
  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Theme: Overlay by Kaira Extra Text
    Cape Town, South Africa