Это старая версия документа!
Установка ubuntu
snap install intellij-idea-community --classic --edge apt install default-jre (java --version) apt install default-jdk (javac --version)
Разнообразие терминов/комплектов вызывает сложности т.к. несколько проекций, по сути сводится вот к чему:
При компиляции создается объект «*.class» содержащий байт код. При выполнении нужно указывать имя класса, а не имя файла
Имя файла должно совпадать с именем открытого класса
Все элементы программ на Java находятся в составе классов
/*Класс Main должен хранится в файле Main.java (наверно как и любой другой класс)*/ public class Main { public static void main(String[] args) { System.out.println("Hello world!"); } }
javac Main.java ls -> Main.java, Main.class java Main - выполнение
Числа с плавающей точкой нельзя использовать в расчетах где ошибки округления недопустимы, есть спец класс «BigDecimal»
Строки принимают шестнадцатеричные юникод последовательности типа «\u0000 - \uFFFF». Причем даже в комментарии может распознать и применить, например такой коммент приведет к ошибке «c:\users» т.к. есть «\u» О_О
Тип boolean не конвертируется в числовое значение !
При объявлении переменных нужно указывать их тип, с недавних версий, локальным можно не указывать, если его можно вывести из первоначального значения, для этого указать ключевое слово «var»
Ключевое слово «final» используется для определения констант. Приветствуется именование заглавными буквами
Константа на весь класс задается словами static final, за пределами методов, модификатор public откроет ее для других классов
Перечислимые типы, enum
enum Size {SMALL, MEDIUM, LARGE, EXTRA}; Size s = Size.MEDIUM // можно присвоить null
Если результат вычисления приводит к переполнению, то мат функция вернет заведомо ложный результат, есть спец функции для обработки такого д-я (переполнение типов переменных имеется ввиду)
Приведение происходит с указанием типа в скобках перед переменной, некоторые преобразования могут происходить с потерями (пунктирные линии):
Символьные строки являются неизменяемыми, всегда константы получается
Символьные строки сравниваются только методом mystring.equals(), оператор «==» только проверит хранятся ли они в одном участке памяти, так же есть метод compareTo()
null и length 0 разные вещи
Консольный ввод. Нужен объект «Scanner»
import java.util.*; Scanner in = new Scanner(System.in); String allLine = in.nextLine(); String oneWord = in.next(); int oneDigit = in.nextInt(); /nextDouble(); // Еще есть тайный ввод Console cons = System.console(); String username = cons.readLine ("User name: "); char[] passwd = cons.readPasswi:Jrd ("Password: ") ;