Экскурс в Java. Готовимся к собеседованию.

Проверка знаний. Создавайте свои задания или решайте существующие
Правила форума
Информация о разделе и рекомендации по созданию тем: viewtopic.php?f=18&t=1036
Ответить
Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Экскурс в Java. Готовимся к собеседованию.

Сообщение rezak90 » 01 июн 2013, 22:55

Вступление

Всем привет! Часто многие спрашивают "С чего начать изучать Андроид?", я в ответ встречный вопрос "Java знаешь?", и 90% отвечают что нет. Так вот эта статья будет посвящена как начинающему так и продвинутому, так как всем время от времени стоит освежать мозги казалось бы простыми, но в то же время необходимыми знаниями ООП которые обязательно нужны.

Первый шаг

Первым делом стоит начать с малого. Базовые концепции ООП, что это такое и с чем едят. Для этого подойдёт книга моего любимого писателя Герберта Шилдта (в конце идут разделы awt, сервлеты, аплеты, swing - это уже не обязательно, но для кругозора не помешает).
Закрепить все эти знания Вам помогут большая подборка практических занятий. Над чем вы попрактикуетесь:
1. Язык JAVA как объектно-ориентированный язык программирования.
2. Сущность и основные принципы языка JAVA.
3. Понятие платформы программирования.
4. Платформа J2SE. Основные достоинства, недостатки и особенности языка JAVA.
5. Основные области применения языка Java.
6. Основные понятия языка Java. Классы, объекты, интерфейсы, пакеты.
7. Структура файла исходного кода.
8. Виды приложений на языке Java.
9. Структура приложения в платформе J2SE.
10. Пример приложения на языке Java. Компиляция и отладка приложений.
11. Основные элементы языка. Лексемы. Идентификаторы. Ключевые слова.
12. Основные элементы языка. Константы.
13. Основные элементы языка. Примитивные типы данных целые, символьный, вещественные, логические.
14. Основные элементы языка. Объявление и инициализация переменных. Время жизни переменных.
15. Операторы языка Java. Приоритет и правила ассоциативности. Порядок вычисления операндов.
16. Оператор присваивания =. Присваивание примитивных значений, присваивание ссылок, многократные присваивания.
17. Арифметические операторы. Приоритет и ассоциативность арифметических операторов.
18. Арифметические операторы. Порядок вычислений в арифметических выражениях.
19.Арифметические операторы. Диапазон числовых значений.
20. Арифметические операторы. Унарные и бинарные арифметические операторы.
21. Арифметические операторы. Составные операторы присваивания. Операторы декремента и инкремента.
22. Операторы отношения. Равенство. Равенство значений примитивных типов данных.
23. Равенство ссылок на объекты. Равенство значений объектов.
24. Булевы логические операторы. Логические составные операторы присваивания. Условные операторы && и || . Условный оператор ?/
25.Целочисленные поразрядные операторы. Операторы ~,&, |,^. Операторы сдвига <<, >>,>>>.
26. Унарный оператор приведения (тип ).
27.Преобразования сужения и расширения.
28. Числовые расширения.
29. Примеры преобразования типов. Неявное преобразование типов. Правила приведения.
30. Массивы. Объявление переменных -массивов.
31. Создание массива. Инициализация массива.
32. Использование массивов. Анонимные массивы. Многомерные массивы.
33. Операторы ветвления – сокращенный оператор if.
34. Оператор if –else.
35. Оператор switch.
36. Операторы цикла. Оператор while. Оператор do-while.
37. Оператор цикла for.
38. Команды перехода. Маркированные операторы. Операторы break, continue, return.
39.Определение классов. Модификаторы объявления классов.
40. Структура класса – поля, методы, конструкторы, блоки инициализации.
41. Определение полей. Модификаторы объявления полей. Инициализация значений.
42. Блоки инициализации.
43.Неизменяемые поля.
44. Методы класса. Модификаторы объявления методов классов.
45.Методы класса. Передача параметров.
46. Статические методы.
47.Неизменяемые методы.
48. Абстрактные методы.
49.Модификаторы и правила видимости.
50. Объектная ссылка this.
51. Перегрузка методов.
52.Конструкторы.
53. Конструктор по умолчанию. Перегруженные конструкторы.
54. Блоки инициализации.
55.Объекты. Создание объектов. Время жизни объекта и сборка мусора.
56. Одиночное наследование. Переопределение и скрытие методов.
57. Сокрытие (инкапсуляция) полей;
58. Cокрытие статического метода.
59. Объектная ссылка super. Организация цепочки конструкторов.
60. Интерфейсы.
61. Вложенные классы и интерфейсы.
62. Назначение исключительных ситуации.
63. Типы исключительных ситуаций.
64. Исключительная ситуация как объект.
65. Основные классы исключительных ситуаций. Классы Exception, RuntimeException, Error.
66. Определение новых классов исключительных ситуаций.
67. Обработка исключений –try, catch, finally. Оператор throw. Генерация исключительной ситуации.
68.Диагностические утверждения.
69. Основные классы пакета java.lang. Класс Object.
70.Классы оболочки над примитивными типами.
71. Неизменяемые строки - класс String.
72. Изменяемые строки – класс StringBuffer.
73. Класс Math – реализация основных математических функций.
74. Инструментальный набор коллекций. Классы и интерфейсы для реализации коллекций и карт.
75. Коллекции –основные действия, массовые операции, операции с массивами, итераторы.
76. Множества – классы HashSet и LinkedHashSet.
77. Списки- ArrayList, LinkedList
78. Карты. Классы HashMap, LinkedHashMap и Hashtable.
79. Отсортированные множества и отсортированные карты.
80. Интерфейсы Comparator, Comparable, SortedSet, SortedMap.
81. Работа с коллекциями.
82.Организация чтения/записи байтовых потоков.
83. Классы InputSteamReader и OutputStreamReader.
84. Буферизованные потоки чтения и записи – класс BufferedReader.
85.Чтение и запись из файлов.
86.Организация взаимодействия с консолью.
87. Многозадачность. Обзор потоков.
88.Главный поток.
89. Создание потока, реализация интерфейса Runnable.
Второй шаг

Вторым шагом стоит уделить не малое количество времени коллекциям, так как это очень мощный пакет Java, и про них можно написать не один том книг. Стоящей книги я не встречал которая раскрывала бы все вкусности коллекций, но дам пару "ссылочек" на которых будут раскрыты несколько секретов от гуру (на этом этапе Вы уже будете знакомы с большинством коллекций, так как есть раздел в книги Г.Шилдта, которая представлена в первом шаге, так что не стоит пугаться):

Java собеседование. Коллекции
Java собеседование. Коллекции vs null
Структуры данных в картинках. ArrayList
Изменения внутреннего представления строк в Java
Интерфейсы классов и коллекции
Накладные расходы памяти у коллекций
Java на каждый день и не только. Рекомендации по использованию
Коллекции в java перечислениях
Плохая Java или как не надо делать
3 миллиарда записей в Java Map на 16 GB RAM
Размеры массивов в Java
Сериализация в Java
5 вещей, которых вы не знали о многопоточности
Что нужно знать каждому разработчику о кодировках и наборах символов для работы с текстом
Правильно освобождаем ресурсы в Java
Структуры данных: бинарные деревья. Часть 1
Структуры данных: бинарные деревья. Часть 2: обзор сбалансированных деревьев
Разбираемся с hashCode() и equals()
Структуры данных в картинках. LinkedHashMap
Структуры данных в картинках. ArrayList
Структуры данных в картинках. LinkedList
Структуры данных в картинках. HashMap
Накладные расходы памяти у коллекций
Какие бывают типы OutOfMemoryError или из каких частей состоит память java процесса

P.S. Возможно в ссылки попали не совсем коллекции, но думаю это лишним не будет.

Третий шаг

На третьем и заключительном шаге Вы будете учить паттерны. Так как все крутые дяди :D должны знать их. Паттерны не являются "выдумкой для Java", это общепринятые нормы проектирования части программы. Паттерны глубоко применяются в ООП, порой даже когда Вы написали приложение то даже не догадываетесь что использовали тот или иной паттерн (у меня было такое с "наблюдателем"). Рекомендую к прочтению книгу всем известную Паттерны проектирования , там всё хорошо расписано и показано на пальцах.

P.S. Если есть кому что то добавить или поправить меня, то не стесняйтесь.
Последний раз редактировалось rezak90 20 июн 2013, 22:37, всего редактировалось 4 раза.
R.id.team
Политика на форуме запрещена

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Экскурс в Java. Готовимся к собеседованию.

Сообщение rezak90 » 01 июн 2013, 22:55

моя скромная коллекция книг которые я рекомендую:

ИзображениеИзображение ИзображениеИзображение ИзображениеИзображение ИзображениеИзображение

P.S. так же сейчас хочу купить вот эту Совершенный код. Макконнелл для саморазвития.
Последний раз редактировалось rezak90 20 июн 2013, 22:51, всего редактировалось 2 раза.
R.id.team
Политика на форуме запрещена

=bor=
Сообщения: 267
Зарегистрирован: 21 мар 2013, 12:26

Re: Экскурс в Java. Готовимся к собеседованию.

Сообщение =bor= » 01 июн 2013, 23:21

Наш партизан всё же не смог и дале молчать, сцепив зубы, и сдал явки и пароли. :D
Держи печеньку. ;)

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Экскурс в Java. Готовимся к собеседованию.

Сообщение klblk » 02 июн 2013, 08:18

Спасибо)
Хорошая подборка советов и книг. Даже захотелось достать с полочки Шилдта и почитать малознакомые главы)

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Экскурс в Java. Готовимся к собеседованию.

Сообщение damager82 » 03 июн 2013, 11:40

rezak90 писал(а):Вопрос к админу: почему нельзя прикреплять pdf файлы?
Именно pdf? Остальные можно? Что говорит?
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Экскурс в Java. Готовимся к собеседованию.

Сообщение rezak90 » 03 июн 2013, 12:08

damager82 писал(а):
rezak90 писал(а):Вопрос к админу: почему нельзя прикреплять pdf файлы?
Именно pdf? Остальные можно? Что говорит?
другое не пробовал, просто когда писал статью то хотел приаттачить pdf с задачами, сказало мне что запрещено приватностью форума (как то так), пришлось на Google Drive размещать
R.id.team
Политика на форуме запрещена

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Экскурс в Java. Готовимся к собеседованию.

Сообщение rezak90 » 20 июн 2013, 22:52

АП. добавил не мало новых статей на хабре и новых книжек во втором посте.
R.id.team
Политика на форуме запрещена

Shtihl
Сообщения: 13
Зарегистрирован: 03 июн 2013, 08:45

Re: Экскурс в Java. Готовимся к собеседованию.

Сообщение Shtihl » 25 июн 2013, 13:31

К слову о литературе - никому не попадалась книга Шилдта Java the complete reference 8th edition на русском в пдф? или в epub. нашел ее в djvu, который проблематично как-нибудь привинтить к bookmate или google книгам

Аватара пользователя
Nialon
Сообщения: 22
Зарегистрирован: 12 ноя 2013, 19:19

Re: Экскурс в Java. Готовимся к собеседованию.

Сообщение Nialon » 16 ноя 2013, 14:36

Shtihl, а что мешает сконвертировать книгу. Применяемый исходник все равно один.

Ответить