Show Menu
Cheatography

Junior Java (Rus) Cheat Sheet (DRAFT) by

My view of cheat sheet for Java juniors

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Java Data Types

boolean
true/ false
byte
8 bit
short
16 bit
int
32 bit
long
64 bit
char
16 bit (unicode)
float
32 bit (decimal)
double
64 bit (decimal)

Принципы ООП

Абстракция
Исполь­зование простых вещей для предст­авления сложных с исполь­зов­анием объекта, классов и переме­нных.
Пример: описание должно­стей. Название должности - значимая инф-я, а описание - второс­теп­енная.
Инкапс­уляция
Это практика хранения полей в пределах класса private, а затем предос­тав­ление доступа к ним через открытые методы. Это защитный барьер, который сохраняет данные и код в безопа­сности внутри самого класса.
Пример: 10 методов для вычисления площади фигуры, но 9 из них скрыто. Исполь­зуется только один ("найти площад­ь"), в котором вызываются остальные скрытые методы.
Наслед­ование
Свойство системы, позвол­яющее описать новый класс на основе уже сущест­вующего с частично или полностью заимст­вую­щейся функци­она­льн­остью.
Пример: наслед­ование.
Полимо­рфизм
Свойство системы исполь­зовать объекты с одинаковым интерф­ейсом без инф-и о типе и внутренней структуре объекта.
Пример: общий интерфейс "­Фиг­ура­" и реализации "­Кру­г" и "­Тре­уго­льн­ик". Метод "­Нар­исо­ват­ь" один для всех фигур.

Object

public final native Class getClass()
возвращает в рантайме класс данного объекта.
public native int hashCode()
возвращает хеш-код
public boolean equals­(Object obj)
сравнивает объекты
protected native Object clone() throws CloneN­otS­upp­ort­edE­xce­ption
клонир­ование объекта
public String toString()
возвращает строковое предст­авление объекта.
protected void finalize() throws Throwable
вызывается сборщиком мусора, когда garbage collector определил, что ссылок на объект больше нет.
public final native void notify()
просып­ается один поток, который ждет на “мониторе” данного объекта.
public final native void notify­All()
просып­аются все потоки, которые ждут на “мониторе” данного объекта.
public final native void wait(long timeout) throws Interr­upt­edE­xce­ption
поток переходит в режим ожидания в течение указанного времени.
public final void wait() throws Interr­upt­edE­xce­ption
приводит данный поток в ожидание, пока другой поток не вызовет notify() или notify­All() методы для этого объекта.
public final void wait(long timeout, int nanos) throws Interr­upt­edE­xce­ption
приводит данный поток в ожидание, пока другой поток не вызовет notify() или notify­All() для этого метода, или пока не истечет указанный промежуток времени.
Все классы являются наслед­никами суперк­ласса Object. Это не нужно указывать явно. В результате объект Object o может ссылаться на объект любого другого класса.
 

Инициа­лизация

Числа
0 или 0.0
Объекты (в том числе String)
null
char
\u0000
boolean
false

Опреде­ления

Класс
"­Опи­сат­ель­" общих свойств группы объектов.
Поле, атрибут класса
Характ­ери­стика объекта.
Инициа­лизация
Создание, активация, подготовка к работе, опреде­ление параме­тров. Выделение памяти под объект
Констр­уктор
Спец. метод, который вызывается при создании нового объекта. Инициа­лиз­ирует объект во время создания. Имя совпадает с именем класса.
Метод
Послед­ова­тел­ьность команд, которая вызывается по опреде­ленному имени. Функция, процедура.
Переоп­ред­еление
Метод в классе­-на­сле­днике, совпад­ающий по сигнатуре с методом из родите­льского класса. Исполь­зуется тогда, когда вы перепи­сываете (перед­елы­ваете, переоп­ред­еляете) УЖЕ сущест­вующий метод.
Перегрузка
Создание метода с тем же именем, но с другим набором параме­тров. Исполь­зование одного имени, но с разными входными параме­трами.
Интерфейс
Исполь­зуется для создания полностью абстра­ктных классов. Создатель интерфейса определяет имена методов, списки аргументов и типы возвра­щаемых значений, но не тела методов.

Абстр. класс и интерфейс

Абстра­ктные классы исполь­зуются только тогда, когда есть «is a» тип отношений
интерфейсы могут быть реализ­ованы классами которые не связаны друг с другом.
Абстра­ктный класс может реализ­овывать методы
интерфейс может реализ­овывать статич­еские методы начиная с 8й версии
С абстра­ктными классами вы теряете индиви­дуа­льность класса, наслед­ующего его
с интерф­ейсами вы просто расширяете функци­она­льность каждого класса.
класс может наслед­оваться (реали­зов­ывать) только от одного абстра­ктного класса
класс может наслед­оваться (реали­зов­ывать) от многих интерф­ейсов
Интерфейс может описывать константы и методы. Все методы интерфейса по умолчанию являются публичными (public) и абстра­ктными (abstr­act), а поля — public static final. С java 8 в интерф­ейсах можно реализ­овывать default и статич­еские методы.

Ключевые слова

Сколько ключевых слов зарезе­рви­ровано языком?
50, два из них не исполь­зуются: const, goto;
Примитивы
(byte, short, int, long, char, float, double, boolean)
Циклы и ветвления
(if, else, switch, case, default, while, do, break, continue, for)
Исключения
(try, catch, finally, throw, throws)
Области видимости
(private, protected, public)
Объявление \ Импорт
(import, package, class, interface, extends, implem­ents, static, final, void, abstract, native)
Создание \ Возврат \ Вызов
(new, return, this, super)
Многоп­ото­чность
(synch­ron­ized, volatile)
Другие
(insta­nceof, enum, assert, transient, strictfp, const, goto)