Поиск по этому блогу

воскресенье, 14 июля 2013 г.

Вопросы на собеседовании Java программиста. Разница между final, finally и finalize()

final


final - это ключевое слово в Java

Переменная, обозначенная как final, инициализируется один раз и не может быть изменена. 

//переменная не может быть изменена
private final String str = "HELLO";  

Java класс объявленный как final не может быть унаследован (расширен). То есть класс не может иметь дочерних классов (классов наследников). 

public final class A {...}
// Не поддерживается
public class B extends A{...} 

Метод, объявленный как final не может быть переопределен. 

public final String toString() {  return "NULL"; }

finally


finally - это блок. Блок finally необязательный и используется совместно с блоком try/catch. Блок finally гарантированно всегда выполняется внезависимости от того было выброшено исключение в блок try или нет. Но блок finally полезен не только для обработки исключений, finally может быть использован для закрытия файлов или для освобождения других системных ресурсов таких, как соединения с базой данных. 

FileReader reader = null;
try {
  reader = new FileReader("someFile");
  //какие то вычисления или задачи    
} catch (IOException e) {
  //ловим исключение 
} finally {
  //выполнится всегда даже если случится исключение или ошибка
  reader.close();
}

finalize()


finalize() - это метод. finalize()  вызывается перед тем, как объект будет уничтожен сборщиком мусора. Вам вряд ли придется переопределять его.




понедельник, 1 июля 2013 г.

GAE MailService

Задача отправки писем на email зарегистрированным пользователем из приложения, которое работает на Google App Engine (GAE). Для реализации этой задачи нам понадобиться использовать следующие средства:

  • Шаблонизатор Freemaker для создания шаблона письма
  • QueueFactory для получения очереди задач и добавления в эту очередь задачи отправки письма
  • DeferredTask интерфейс будет реализовывать класс задачи которая будет отпарлять пиьсмо, для того чтобы мы могли добавить эту задачи в очередь
  • GAE MailService для создания и отправки письма