Constructor
Конструктор по умолчанию имеет такой же доступ как и сам клас.
1. Инициализация static полей во время загрузки класса
2. Инициализация суперкласса
3. Инициализация полей в порядке очередности перед вызовом любого конструктора класса
4. Конструктор класса
class A
{
public A(int x){}
}
class B extends A { }
public class test
{
public static void main (String args [])
{
A a = new B();
System.out.println("complete");
}
}
Будет ошибка компиляции, так как при создании класа B вызывается конструктор по умолчанию. А в класе А его нет.
Порядок инициализации объекта следующий:1. Инициализация static полей во время загрузки класса
2. Инициализация суперкласса
3. Инициализация полей в порядке очередности перед вызовом любого конструктора класса
4. Конструктор класса
public class Main {
{
System.out.print("1 ");
}
Main(){
System.out.print("2 ");
}
public static void main(String[] args) {
System.out.print("3 ");
Main m = new Main();
System.out.print("4 ");
}
static {
System.out.print("5 ");
}
} //5 3 1 2 4
Array
int[] array = new int[3]; - создает массив int.
Дефолтные значения:
Пояснение: Список инициализации разрешается использовать или при объявлении массива:
String data[] = {"one", "two", "three"};
или при создании массива с помощью оператора new:
data = new String[] {"one", "two", "three"};
Дефолтные значения:
- For type byte, the default value is zero, that is, the value of (byte)0.
- For type short, the default value is zero, that is, the value of (short)0.
- For type int, the default value is zero, that is, 0.
- For type long, the default value is zero, that is, 0L.
- For type float, the default value is positive zero, that is, 0.0f.
- For type double, the default value is positive zero, that is, 0.0d.
- For type char, the default value is the null character, that is, '\u0000'.
- For type boolean, the default value is false.
- For all reference types, the default value is null.
String data[];
data = {"one", "two", "three"};
System.out.println(data[1]); // Ошибка компиляции
String data[] = {"one", "two", "three"};
или при создании массива с помощью оператора new:
data = new String[] {"one", "two", "three"};
Test eduction
A host name. For example, www.myhost.com.
An IPv4 IP address. For example, 127.0.0.1.
An IPv6 IP address. For example, 1234:5678:90AB:CDEF.
An IPv4-mapped IP address. Any IP address.
Host address.
For example, www.myhost.com or 192.231.21.2.
E-mail address.
E-mail address with mailto: prefix.
HTTP or HTTPS address.
file:// address.
FTP address.
news:// address.
Telnet address.
Gopher address
An IPv4 IP address. For example, 127.0.0.1.
An IPv6 IP address. For example, 1234:5678:90AB:CDEF.
An IPv4-mapped IP address. Any IP address.
Host address.
For example, www.myhost.com or 192.231.21.2.
E-mail address.
E-mail address with mailto: prefix.
HTTP or HTTPS address.
file:// address.
FTP address.
news:// address.
Telnet address.
Gopher address
SVN
SVN
Надеюсь что такое svn вы знаете. Не лишним было бы помнить такие основные комманды как:
svn checkout - создать рабочую копию, получив текущую ревизию с сервера.
svn update - обновить рабочую копию с сервера (получить изменения). Помним про автоматический мердж и конфликты.
svn diff - посмотреть внесённые изменения в вашу рабочую копию.
svn commit - отправить изменения на сервер, при этом будет создана новая ревизия.
svn add - добавить файл в рабочую копию. При commit файл будет отправлен на сервер.
svn rm - удалить файл из рабочей копии. При commit файл будет удалён из текущей ревизии на сервере.
svn mv - переместить файл внутри репозитория.
svn revert - откатить изменения в файле из рабочей копии.
Надеюсь что такое svn вы знаете. Не лишним было бы помнить такие основные комманды как:
svn checkout - создать рабочую копию, получив текущую ревизию с сервера.
svn update - обновить рабочую копию с сервера (получить изменения). Помним про автоматический мердж и конфликты.
svn diff - посмотреть внесённые изменения в вашу рабочую копию.
svn commit - отправить изменения на сервер, при этом будет создана новая ревизия.
svn add - добавить файл в рабочую копию. При commit файл будет отправлен на сервер.
svn rm - удалить файл из рабочей копии. При commit файл будет удалён из текущей ревизии на сервере.
svn mv - переместить файл внутри репозитория.
svn revert - откатить изменения в файле из рабочей копии.
SOLID
SOLID
Single Responsibility Principle
Не должно существовать более одного мотива для изменения данного класса. Говорит о том, что на каждый класс должна быть возложена только одна определенная обязанность.
Open/Closed Principle
Нужно избегать случаев, когда появление новых требований к функциональности влечет за собой модификацию существующей логики, стараясь реализовать возможность ее расширения.
Liskov Substitution Principle
Наследующий класс должен дополнять, а не замещать поведение базового класса.
Interface Segregation Principle
Клиент не должен вынужденно зависеть от элементов интерфейса, которые он не использует. Говорит о том, что лучше иметь множество специализированых интерфейсов, чем один универсальный.
Dependency Inversion Principle
Абстракции не должны зависеть от деталей, в то время как детали должны зависеть от абстракций.
Не должно существовать более одного мотива для изменения данного класса. Говорит о том, что на каждый класс должна быть возложена только одна определенная обязанность.
Open/Closed Principle
Нужно избегать случаев, когда появление новых требований к функциональности влечет за собой модификацию существующей логики, стараясь реализовать возможность ее расширения.
Liskov Substitution Principle
Наследующий класс должен дополнять, а не замещать поведение базового класса.
Interface Segregation Principle
Клиент не должен вынужденно зависеть от элементов интерфейса, которые он не использует. Говорит о том, что лучше иметь множество специализированых интерфейсов, чем один универсальный.
Dependency Inversion Principle
Абстракции не должны зависеть от деталей, в то время как детали должны зависеть от абстракций.
JPA
JPA – это технология, обеспечивающая объектно-реляционное отображение простых JAVA объектов и предоставляющая API для сохранения, получения и управления такими объектами.
JPA – это спецификация (документ, утвержденный как стандарт, описывающий все аспекты технологии), часть EJB3 спецификации.
Сам JPA не умеет ни сохранять, ни управлять объектами, JPA только определяет правила игры: как что-то будет действовать. JPA также определяет интерфейсы, которые должны будут быть реализованы провайдерами. Плюс к этому JPA определяет правила о том, как должны описываться метаданные отображения и о том, как должны работать провайдеры. Дальше, каждый провайдер, реализуя JPA определяет получение, сохранение и управление объектами. У каждого провайдера реализация разная.
Реализации JPA:
JPA состоит из трех основных пунктов:
JPA – это спецификация (документ, утвержденный как стандарт, описывающий все аспекты технологии), часть EJB3 спецификации.
Сам JPA не умеет ни сохранять, ни управлять объектами, JPA только определяет правила игры: как что-то будет действовать. JPA также определяет интерфейсы, которые должны будут быть реализованы провайдерами. Плюс к этому JPA определяет правила о том, как должны описываться метаданные отображения и о том, как должны работать провайдеры. Дальше, каждый провайдер, реализуя JPA определяет получение, сохранение и управление объектами. У каждого провайдера реализация разная.
Реализации JPA:
- Hibernate
- Oracle TopLink
- Apache OpenJPA
JPA состоит из трех основных пунктов:
- API – интерфейсы в пакете javax.persistance. Набор интерфейсов, которые позволяют организовать взаимодействие с ORM провайдером.
- JPQL – объектный язык запросов. Очень похож на SQL, но запросы выполняются к объектам.
- Metadata – аннотации над объектами. Набор аннотаций, которыми мы описываем метаданные отображения. Тогда уже JPA знает какой объект в какую таблицу нужно сохранить. Метаданные можно описывать двумя способами: XML-файлом или через аннотации.
Подписаться на:
Сообщения (Atom)
