Java

Содержание

Глоссарий

Стандартные инструменты

Перечень команд

Типы требований

Многопоточность

Ввод и вывод

Параметризуемые классы

Анонимные функции

Примеры

Ссылки

Глоссарий

access modifier

модификатор доступа

autoboxing

автоупаковка

compilation unit

единица компиляции

generic

параметризуемый класс/тип; полиморфный класс/тип

enumeration

перечисление; перечень; перечислимый тип

enumerator

перечислитель

persistent object

перманентный (постоянно хранимый) объект

retention

удерживание

runtime

время исполнения

wrapper

упаковщик

volatile (variable)

изменчивая (переменная)

Стандартные инструменты

javac

Компилятор программы, написанной на языке Java, в байт-код виртуальной машины Java (JVM)

java

Программа запуска java-приложения (Java application launcher)

jdb

Отладчик програм на Java’е

javap

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

Перечень команд

javac -X

вывести перечень дополнительных опций

javac -Xdiags:verbose <file>

вывести более подробное диагностическое сообщение при наличии ошибок компиляции

Типы требований

требование выразительности

соглашение

техническое требование

требование производительности

Многопоточность

Глоссарий

context switch

переключение контекста

deadlock

взаимная блокировка

monitor

диспетчер, контролёр

to enter a monitor on an object

зарегистрировать диспетчера/контролера для объекта;

назначить диспетчера/контролера на объект;

установить диспетчера/контролера на объект

preemption

вытеснение

race

конкуренция

race condition

состояние гонки

scheduler

планировщик

spawn

порождать

Перечень состояний треда

blocked (заблокирован)

interrupted (прерван)

ready to run (готов к запуску)

resumed (возобновлен)

running (запущен)

suspended (приостановлен)

terminated (завершен)

Перечень методов

currentThread java.lang.Thread

getPriority java.lang.Thread

isAlive java.lang.Thread

join java.lang.Thread

notify java.lang.Object

setPriority java.lang.Thread

wait java.lang.Object

Ввод и вывод

Перечень объектов

InputStream java.io.InputStream

Объект-обёртка для различных источников данных.

InputStreamReader java.io.InputStreamReader

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

BufferedReader java.io.BufferedReader

Объект, предоставляющий возможность помещать извлекаемые из источника данные во временное хранилище (буфер).

OutputStream java.io.OutputStream

Объект-обёртка для различны приёмников данных.

PrintStream java.io.PrintStream

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

PrintWriter java.io.PrintWriter

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

FileInputStream java.io.FileInputStream

Объект-обёртка для файлового источника данных.

FilOutputStream java.io.FileOutputStream

Объект-обёртка для файлового приёмника данных.

Перечень методов

read java.io.BufferedReader#read

Возвратить байт из буфера и конвертировать его в символ на основе текущей/заданной кодировки.

read java.io.FileInputStream#read

Возвратить байт из файла-источника, представив его как целое число. Возвратить -1, при достижении конца файла.

readLine java.io.BufferedReader#readLine

Возвратить последовательность байтов из буфера и конвертировать каждый байт в строчный символ на основе текущей/заданной кодировки. (Символы завершения строки возвращены не будут.)

write(int) java.io.PrintStream#write

Передать приёмнику один байт данных не очищая буфер.

write(int) java.io.FileOutputStream#write

Передать файлу-приёмнику один байт данных.

write(byte[], int, int) java.io.PrintStream#write

Передать приёмнику диапазон байтов из заданного массива и автоматически очистить буфер по окончанию передачи.

flush java.io.PrintStream#flush

Очистить буфер от данных.

close java.io.FileInputStream#close

Освободить системный ресурс, связанный с данным файлом-источником. Данный метод должен быть вызван по завершению работы с файлом в соответствии с теребованием производительности. При попытке чтения из закрытого файла-источника будет вызвано исключение java.io.IOException: Stream Closed.

close java.io.FileOutputStream#close

Освободить системный ресурс, связанный с данным файлом-приёмником. Данный метод должен быть вызван по завершению работы с файлом в соответствии с теребованием производительности. При попытке записи в закрытый файл-приёмник будет вызвано исключение java.io.IOException: Stream Closed.

Параметризуемые классы

Способы определения

class Sample<T>

определить параметризуемый класс

class Sample<T1, T2>

определить параметризуемый класс с двумя параметрами

class Sample<T extends SomeClass>

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

class Sample<T extends SomeClass & FirstInterface & SecondInterface>

определить параметризуемый класс с параметром, тип которого расширяет указанный класс и реализует оба указанных интерфейса

Указание типа для переменной, содержащей значение параметризуемого класса

GenericClass<ConcreteClass> variable

GenericClass<?> variable

GenericClass<? extends UpperBound> variable // One → (UpperBound → Two → Three)

GenericClass<? super LowerBound> variable // (One → Two → LowerBound) → Three

Указание переменного типа в декларации метода

<T> T doSomething(T arg);

определить параметризуемый метод с одним агрументом

<T1, T2> T1 doSomething(T1 arg1, T2 arg2);

определить параметризуемый метод с двумя аргументами

<T extends SomeClass> T doSomething();

определить параметризуемый метод, тип которого расширяет указанный класс

<T extends SomeInterface> T doSomething();

определить параметризуемый метод, тип которого реализует указанный интерфейс

someObject.<First>doSomething(first);

вызвать параметризуемый метод (объявление типа не обязательно, но может быть включено для улучшения выразительности)

Анонимные функции

Перечень элементов

functional interface

lambda expression

method reference

Примеры

Adding two integers by the means of a method reference

An Elementary Console Text Editor

Annotations

Cooperative Multithreading

Deadlock

Declaring a parameterized constructor

Declaring a parameterized interface

Declaring a parameterized method inside a non-generic class

Eliminating the need to cast types by using generics

Exception Handling

Extracting a string from a container object by the means of an instance method reference

Finding matches in a collection of values by the means of a static and an instance method reference

Method#invoke

Setting type bounds for a generic type parameter

Setting type bounds for a generic type parameter as a set of interfaces

Specifying a type for a variable, which contains a value of a parameterized type

Using a wildcard to specify any allowed type for an argument

Ссылки

Race condition

Взаимная блокировка

Состояние гонки