понедельник, 3 апреля 2017 г.

OCA Java SE 8 (1Z0-808) exam taking story

I took the OCA8 exam on 24 January 2017 with a score of 97%.

My main study materials:
1) Oracle Certified Associate Java SE 8 Programmer I Study Guide by Scott Selikoff, Jeanne Boyarsky (I really like the writing style of that book!)
2) Enthuware OCA Mock Tests

The preparation process
- Read each chapter
- Use sybextestbanks to take tests at the end of each chapter online
- Take mock exams from sybextestbanks after finishing the book
- Pass Enthuware mock exams
- Review all answers (even the right ones) and run the code in Eclipse to better understand the weak points
- Take notes if something you don't know is found out

The exam day
Before the exam day I went through my notes and got a good night sleep.
You should know that exam questions show the number of correct answers. It makes the test easier.

On my first minutes when only 5 questions were answered I had a feeling that I will pass the exam.
I didn't leave questions without answers. In the end: 7 questions was marked and about 30 minutes left.

I didn't got results on the spot. But I was calm and sure I passed the exam successfully.
The email from Oracle announcing me of the result was received in a day.

My badge

Unfortunately, paper (hard copy) printed certificates are no longer available. Oracle is committed to developing practices and products that help protect the environment.

That's all from my side! Good luck!

вторник, 27 сентября 2016 г.

'a' > 'A'

int compareTo(T object)
Метод compareTo принадлежит интерфейсу Comparable<T>.
Обычно результат метода сравнивают с нулем. И считать возвращаемое значение совершенно не обязательно. Однако метод всегда возвращает определенное число. Как оно вычисляется? 
"hello, World".compareTo("Hello, World") = 32
Для класса String метод выполняет лексиграфическое сравнение. Он остановится в первом месте, где строки имеют различные буквы. В данном примере строки отличаются уже в первой позиции. 

Результат, возвращаемый методом, будет равен: 
Unicode значение слева - Unicode значение справа

Для этого хорошо бы знать английский алфавит, а также то, что Unicode значение любой буквы в нижнем регистре всегда на 32 больше, чем Unicode значение этой же буквы в верхнем регистре. То есть, 
'h' - 'H' = 'a' - 'A' = 32

суббота, 17 сентября 2016 г.

StringBuilder.ensureCapacity()

StringBuilder sb = new StringBuilder(); // 1
sb.ensureCapacity(100);                 // 2
sb.ensureCapacity(200);                 // 3
sb.ensureCapacity(300);                 // 4
System.out.println(sb.capacity());      // 5

Чему будет равно capacity после выполнения 4-ой строки кода?
Самый популярный ответ - 300. Неправильный!
Верный ответ - 406. Random, подумаете вы? :)

Согласно JLS метод имеет четкий алгоритм, который все объясняет.

Если передаваемое значение меньше текущего capacity, то оно будет пересчитано.
1) Новое capacity станет равным = текущее capacity * 2 + 2
2) Но если полученное значение меньше переданного аргумента, то текущее capacity станет равно переданному значению.

// 1
При создании пустого объекта capacity = 16.

// 2
Далее по алгоритму. Текущее capacity = 16, необходимо умножить его на два и прибавить 2.
16 * 2 + 2 = 34.
Теперь сравним полученное значение с переданным.
34 < 100
Значит, capacity = 100.

// 3
100 * 2 + 2 = 202.
202 больше, чем переданное значение. Значит, capacity станет равным 202.

// 4
202 * 2 + 2 = 406.
406 > 300
Вот почему в 5-ой строчке печатается 406.

Внимание, если передать отрицательное число, то capacity не пересчитывается.

пятница, 16 сентября 2016 г.

Из массива в список и наоборот

Вечер пятницы. А меня волнует вопрос, как преобразовать массив в список и назад. Это нормально.

Arrays.asList()
Collection.toArray()

Назовете ли вы эти методы сходу? Знаете, что один из них static, второй - object?

static List<T> list = Arrays.asList(T... array);
Метод вернет список фиксированного размера - это означает, что нельзя добавить новый элемент в список. Также список и массив будут "связаны" - изменения в одном отразятся на другом.


Object[] toArray();
Метод можно вызывать у любой коллекции. Вернет массив, содержащий все элементы текущей коллекции.


T[] toArray(T[] array);
Метод можно вызывать у любой коллекции. Вернет массив, содержащий все элементы текущей коллекции. Если array = null, то будет NullPointerException. Часто передают массив размера 0, например, new Integer[0]. Если передать массив, размер которого меньше, чем число элементов коллекции, то размер массива автоматически увеличится в runtime.

вторник, 22 марта 2016 г.

Чизкейк без выпечки

Чизкейк по этому рецепту без выпечки получается удивительно мягким, с нежной кремовой текстурой.

среда, 16 декабря 2015 г.

Украшаем дом к Новому году!



Абсолютно спонтанно возникло сильное желание украсить дом к Новому году. И сразу же я решила не терять ни минуты и начала искать способы, как это сделать красиво и в то же время доступно.

среда, 11 ноября 2015 г.

Sorrento Coast Hotel Giosue a Mare

Тирренское море Соррентийского побережья Италии - выбор этого лета!
Мы остановились в Hotel Giosue a Mare, который расположен на берегу моря. В лифту отеля была кнопка 'Mare' - нажимаешь и спускаешься сразу на пляж.