Constructor

Конструктор по умолчанию имеет такой же доступ как и сам клас.
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.
Дефолтные значения:
  • 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

SVN

SVN
Надеюсь что такое 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
Абстракции не должны зависеть от деталей, в то время как детали должны зависеть от абстракций.

JPA

JPA – это технология, обеспечивающая объектно-реляционное отображение простых JAVA объектов и предоставляющая API для сохранения, получения и управления такими объектами.

JPA – это спецификация (документ, утвержденный как стандарт, описывающий все аспекты технологии), часть EJB3 спецификации.

Сам JPA не умеет ни сохранять, ни управлять объектами, JPA только определяет правила игры: как что-то будет действовать. JPA также определяет интерфейсы, которые должны будут быть реализованы провайдерами. Плюс к этому JPA определяет правила о том, как должны описываться метаданные отображения и о том, как должны работать провайдеры. Дальше, каждый провайдер, реализуя JPA определяет получение, сохранение и управление объектами. У каждого провайдера реализация разная.

Реализации JPA:

  • Hibernate
  • Oracle TopLink
  • Apache OpenJPA

JPA состоит из трех основных пунктов:

  1. API – интерфейсы в пакете javax.persistance. Набор интерфейсов, которые позволяют организовать взаимодействие с ORM провайдером.
  2. JPQL – объектный язык запросов. Очень похож на SQL, но запросы выполняются к объектам.
  3. Metadata – аннотации над объектами. Набор аннотаций, которыми мы описываем метаданные отображения. Тогда уже JPA знает какой объект в какую таблицу нужно сохранить. Метаданные можно описывать двумя способами: XML-файлом или через аннотации.