Курсы: Технопарк
Преподаватель: Виталий Чибриков
Третья лекция, которая должна быть первой…
1. Наследование
Рассказывает о наследовании и имплементации
Абстрактном классе
Interface – класс в котором все методы public & abstract
Нельзя наследовать несколько классов, но можно реализовывать сколько угодно интерфейсов
2. Object, Class (26:10)
ClassLoader – часть JVM, которая загружает данные о классах
- Bootstrap class loader (<JAVA_HOME>/jre/lib)
- Extenctions class loader (<JAVA_HOME>/jre/lib/ext)
- Systemclass loader (CLASSPATH)
Есть “божественный” класс, объекты которого описывают классы (библиотечные/пользовательские)
java.lang.Class
Основные методы класса Class
1 2 3 4 5 6 |
static Class<T> forName(String className) String getCanonicalName() Fields[] getField(String name) Class[] getInterfaces() Method[] getMethods() Constructor[] getConstructors() |
class Object – базовый класс для всех объектов
3. Примитивные типы (43:25)
Люблю таблички. Поэтому выписал ее
bits | type | type |
8 | byte | boolean |
16 | short | char |
32 | int | float |
64 | long | double |
Примитивные типы:
- Меньше памяти
- Простая структура
- Храняться в Stack
Обертки простых типов:
- Наследники Object
- Сложные типы
- Храняться в Heap
4. Массивы и Строки (52:00)
Array
это объект (наследник Object со всеми вытекающими отсюда последствиями)
java.lang.Arrays
String
Immutable: “abc” + “def” – создает новую строку
substring – указывает на ТОТ же массив char, только ограничивает откуда и до куда брать элементы
5. Size of Object (58:00)
Точный размер объекта зависит от:
- Версии java
- Издателя (Oracle JDK, open JDK…)
- Разрядности ОС
- Параметров запуска JVM