26.10.2022
статья
Отличия Java от других языков программирования

Всем привет, я VladosNX и сегодня (на самом деле не помню когда) я решил изучить Java (не спрашивайте зачем (хотя сам знаю что спросите (если честно я сам не знаю зачем))). И я заметил, что он ооооочень отличается от других языков программирования, таких как Python или PHP. В этой статье я хочу рассказать чем он отличается. А если вам будет интересно, сделаю гайд по созданию плагинов/модов для Minecraft (на Java). Поехали!

1. Нет компилятора = нет смысла

Как вы уже могли понять, программу на Java нужно компилировать. Даже если нужно просто протестировать программу. Но на самом деле есть много таких языков программирования, просто их меньше и они менее популярные, а еще сложные. В Java компилятор это не полноценная программа с графическим интерфейсом установщика, это просто EXE-файл, который надо скачивать отдельно, потом добавлять его в PATH или System32 <- (не рекомендую баловаться (хотя я сам это делал)).

2. Нет try & catch = нет программы

Не знаю почему, но в больших проектах ооочень часто приходится делать try & catch, чтобы компилятор не выдал ошибку. Наверное Java не научился сам находить ошибки. Поэтому вам на 368% нужно скачивать профессиональный IDE, например Intellij Idea (который весит почти 1 ГБ), ведь он еще до компиляции скажет вам если без try & catch программа не заработает.

3. Нет функции? Ок, ищу...

Думаю по заголовку сложно понять что имеется в виду. Но я сейчас вам все расскажу. Этот код Python не заработает:

name = input("What's your name? ")
printHello(name)
def printHello(name):
    print("Hello, "   name)

Почему? Потому что функция printHello используется до её создания. Но Jav'е все равно. Если написать (почти) подобный код на Java, он заработает! Не знаю кто это придумал, но лично мне это бы не пригодилось.

4. 'Это не строка' "А вот это строка"

Знаете что будет, если написать эту функцию?

print('Типо прога на джаве');

Будет ошибка! Почему? Потому-что Java не принимает одинарные кавычки ('), но принимает двойные ("). Кто придумал это - не знаю. Но лично я привык.

5. 2 класса в одном файле? ЗАЧЕМ?!?!?!

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

print("Hello world")

А это та же самая прога на Java:

package тут.имя.пакета.например.ru.vladosnx.kakayatoprogramma;

public class Main {
    public static void main (String[] args) {
        println("Hello world");
    }
}

Думаю разница заметна. Кстати, в Java нужно ставить ; иначе не заработает.

А на этом все. С вами был VladosNX, всем удачи и всем пока!

Мысли автора после конца статьи: нафига я C изучал, если с джавой еще не разобрался..............

Комментарии (4)
1. Не обязательно, можно использовать jshell, REPL интерпретатор для Java и писать в нём какие-то тестовые "программы". 2. Всё совсем наоборот. В Java есть два типа исключений: проверяемые (checked, наследники java.lang.Exception) и непроверяемые (unchecked, наследники java.lang.RuntimeException). Проверяемые исключения компилятор отлично ищет и выдаёт ошибку компиляции, если они не обработаны. А непроверяемые ты встретишь сам, во время выполнения программы. Обработать проверяемые исключения можно завернув проблемный код в try/catch, либо добавив throws к опеределению метода (и таким образом переложив обработку на того, кто методом будет пользоваться) 3. В Java метод принадлежит либо классу, либо экземпляру класса. Использовать его до определения и без ссылки на хозяина не получится. 4. Ну, вот так получилось, что в Java строковые литералы определяются через двойные кавычки (или тройные двойные кавычки для многострочных). Это просто синтаксис языка. В JavaScript одинарные и двойные кавычки взаимозаменяемы. В SQL только одинарные. А в Java - двойные. 5. В файле может быть сколько угодно классов, но только один public (верхнего уровня), имя которого должно совпадать с именем файла. Потому что Java объектно ориентированный язык и класс - это его минимальный строительный блок. Метод main - точка входа выполнения программы, но класс не обязан иметь метод main. Например, у класса java.lang.String его нет, и "запустить" его нельзя. Кстати, ответы на многие вопросы можно найти в Java Language Specification (https://docs.oracle.com/javase/specs/jls/se19/html/index.html), но нужно знать английский и математическую логику.
это не отличия жабы от других языков, а его синтаксис
Ответ на этот комментарий
3 ноября, 2022 в 12:20
|
Егор Л. Sinon
это не отличия жабы от других языков, а его синтаксис
Синтаксис это тоже часть языка
Ответ на этот комментарий
4 ноября, 2022 в 18:48
|
Владислав Н. VladislavNilov
Синтаксис это тоже часть языка
ну и дальше? другие языки нельзя брать как одно целое, все языки друг от друга отличаются