Но это не значит, что Java нужен только для банков: на нём можно делать Android-приложения, программы для ПК и многое другое. В этой статье расскажем, что такое Java, чем он отличается от других языков и когда используется.
У Java есть два свойства, которые определяют, какие задачи на нём можно решать. У этих свойств сложные названия, но с ними стоит разобраться прежде, чем идти дальше.
Java — объектно-ориентированный язык программирования (ООП). Всё взаимодействие в нём происходит через объекты. Это в целом похоже на то, что творится в реальном мире: кот взаимодействует с хозяином, кассир — с покупателем, а клиент банка — со своим счётом.
Все эти сущности описывают в коде и учат взаимодействовать друг с другом. В итоге программа в стиле ООП состоит из отдельных блоков, которые хорошо расширяются и масштабируются. Поэтому язык Java подходит для разработки программ, которые планируют долго использовать и постоянно развивать.
Java берёт лучшее из компилируемых и интерпретируемых языков. Чтобы разобраться в этом свойстве, нужно шагнуть ещё немного назад. Язык программирования — это язык, на котором программист и процессор договариваются, как выполнять команды. Так вот процессор не полиглот и не обязан знать все языки, на которых им хотят покомандовать. Поэтому язык программирования нужно переводить на язык процессора. Делается это двумя способами — интерпретированием и компилированием.
Схематично это выглядит так
В Java есть виртуальная Java-машина — посредник между кодом и железом. Она и обеспечивает главный плюс языка Java — кросс-платформенность.
В Java программист пишет код не под macOS, Windows или Linux, а под Java-машину — а она уже сама адаптирует код к железу и операционной системе
Например, когда мы платим телефоном, информацию о платеже обрабатывает десяток разных устройств, чтобы она попала в платёжные системы, у покупателя списались деньги и поступили продавцу. Большинство этих операций проводят конкретные программы на Java. И их нужно поддерживать и развивать. Поэтому в ближайшие десятилетия ни один джавист не потеряет работу из-за того, что Java заменит какой-то новый язык — даже если он быстрее, проще и безопаснее.
Платёжная система — лишь один пример использования Java. Таких систем много, и все их нужно поддерживать и обслуживать. Учитывая, сколько кода в мире написано на Java, мы считаем, что у этого языка есть шансы остаться навсегда наравне с языком C.
Большие компании не используют одну технологию, но в том или ином виде Java присутствует в Google, Facebook*, Telegram, Яндексе и многих других. Java скрыт под капотом, и обычный пользователь его не видит. То, что мы видим в интерфейсе, — это не Java, а JavaScript. Это язык, который работает только в браузере, и с Java у них из общего только название.
Язык Java же работает, когда пользователь обращается к серверу. Разберём на примере:
● Клиент заходит на сайт банка и видит логотип, текст и форму для ввода логина и пароля — это был HTML, язык разметки браузера.
● Затем он вводит логин и по ошибке набирает его русскими буквами. Браузер сравнивает логин с условиями, видит, что в этом поле должны быть только английские буквы, и говорит «введите на латинице» — это был JavaScript.
● И вот клиент верно ввел доступы и нажал «Войти». Браузер пошёл спрашивать у сервера, верен ли логин и пароль, а затем пропустил его в личный кабинет. Попутно сервер сказал, что нужно ввести код, который прислали на телефон, пройти по ссылке из письма, ввести секретное слово и подтвердить личность клятвой на крови — всё это был Java.
Java работает почти везде, но особенно сильные позиции он занимает в enterprise-разработке. Так называют комплексную b2b-разработку под одну конкретную компанию, например, банк, производственную, страховую или логистическую компанию. У таких компаний большие задачи и серьёзные требования к надёжности, безопасности и кросс-платформенности. И язык Java их обеспечивает.
Тип языка. Мы уже разобрались, в чём разница между интерпретируемыми и компилируемыми языками, теперь можем сравнить.
Python | Java | C |
---|---|---|
Интерпретируемый | Компилируемые |
Java медленнее C, потому что C компилируется в язык процессора и не выполняет двойную работу, как Java, код которого сначала компилируется в байткод, а потом в язык процессора.
Python | Java | C |
---|---|---|
Медленный | Быстрый |
Java, Python | C | |
---|---|---|
Гибкие | Не гибкий |
Python | Java | C |
---|---|---|
Простой | Сложный |
Python | Java |
---|---|
print («Hello, World!») | public class HelloWorld { |
Для программирования на Java не требуется специальных математических навыков, но полезно обладать алгоритмическим мышлением. Алгоритмическим мышлением называют способность решать задачи с помощью построения алгоритмов. Но и эта способность развивается через постоянную практику.
Вот пример простой задачи на построение алгоритма. Вам нужно провести танк на базу мимо болот. Танк едет только вперёд, доступные команды: повернуть вправо, повернуть влево и вперёд = Х. Где Х — количество клеток. Постройте алгоритм, по которому танк доберётся до базы.
Правильный список команд: вперёд = 1; влево; вперёд = 3; вправо; вперёд = 3; вправо; вперёд = 3; вправо; вперёд = 1
* сервис предоставляется организацией, признанной экстремистской на территории РФ