Содержание


Практические советы по подготовке к экзамену SCJP 6. Цель SCJP

Comments

Серия контента:

Этот контент является частью # из серии # статей:

Следите за выходом новых статей этой серии.

Этот контент является частью серии:

Следите за выходом новых статей этой серии.

Кому нужен экзамен

Целевая аудитория экзамена SCJP 6 программисты, желающие стать Certified Java Programmer (сертифицированными JAVA программистами). Экзамен SCJP 6 содержит вопросы проверяющие фундаментальные знания, для сдачи сертификационного экзамена Java от компании Sun.

Стать сертифицированным программистом может каждый. Экзамен SCJP показатель профессионализма в данном направлении, кто-то сдает исключительно для расширения своих знаний, кто-то идет на экзамен, потому что сертификат — обязательное требование работодателя. Главная цель SCJP сертификация фундаментальных знаний, опыта и умений каждого в области программирования на Java и Java платформы в целом. Для получения сертификата необходимо успешно сдать экзамен и для допуска к нему не обязательно наличие статуса Sun Certified Java Associate.

Основные темы экзамена SCJP 6

Данная сертификационная программа предназначена для программистов, заинтересованных в том, чтобы продемонстрировать свои базовые профессиональные знания языка программирования Java.

Программа сертификации Sun по технологии Java является признанной в отрасли глобального программирования, которая сосредоточена на тех рабочих функциях инженеров, которые являются решающими для успешной разработки программных приложений и построения архитектуры предприятия. Сертификация Sun, также позволяет повышать квалификацию, что является основой для карьерного роста.

Приобретая статус Sun Certified Associate, вы получаете от компании Sun свидетельство о том, что вы обладаете базовым набором знаний.

Сдача экзамена происходит в одном из авторизованных компании Sun учреждениях в течении 210 минут. Экзаменуемый должен за отведенное время ответить правильно минимум на 47 из 72 вопросов (65%), которые можно разделить на две группы: вопросы с несколькими вариантами ответов, как при традиционном тестировании и ряд заданий на сопоставление. Экзамен SCJP (Sun Certified Java Programmer) содержит вопросы по следующим разделам:

Основы языка.

  • Основы языка. Ключевые слова Java. Использование операторов и идентификаторы Java. Объявление пакетов и классов. Разработка. Финализация. Массивы

Объявления, инициализация и ограничение

  • Описание и контроль доступа (Declarations and Access Control)

Концепции OO (объектного ориентирования)

  • Объектное ориентирование (Object Orientation): Инкапсуляция, Полиморфизм, замещение, перегрузка и ориентация объектов.
  • Внутренние классы и их использование. Описание классов, методов и переменных: передача переменных в методы. Метод equals().Основные классы в пакете java.lang. Класс Math. Классы-оболочки (Wrapper). Строка и Строковый буфер.
  • Конструкторы. Задания. Операторы и присваивания (Assignments).

Управление потоком

  • Контроль, управление потока данных, применяемые для контроля операторы, а также обработка исключений и событий (Flow Control, Exceptions, and Assertions), утверждения.
  • Потоки ввода/вывода, форматирование. Создание, контроль потока. Операторы управления потоком.

Сбор мусора

  • Сборка мусора утилизация памяти, программирование поведения сборщика мусора, запуск сборщика.

Параллелизм

  • Многопоточность. Проверка состояния и синхронизация потоков, важные методы потоков и используемые конструкторы класса Thread.

Коллекции и общие знания

  • Раздел о параметризируемых типах (Generics and Collections). Коллекции. Интерфейсы и структура коллекций.

Внесенные изменения и отличия программы тестирования

Sun Microsystems внедрила обновление программы сертификации SCJP (Sun Certified Java Programmer). Индекс требования к проведению экзаменов для начинающих — CX-310-065. Для тех, кто уже обладает сертификатом предыдущей версии, существует требования к экзамену с индексом CX-310-066.

Если сравнивать с предыдущей версией, то требования SCJP существенно возросли. Ужесточили условия сдачи, повысив проходной уровень на 6%. Теперь нужно дать верный ответ на 65% вопросов. Ужесточение увеличило время сдачи экзамена и вместо 175 минут, теперь отводится 210 минут времени, что весьма радует, так как времени стало больше для отражения знаний.

Сама программа экзамена и перечень вопросов претерпели незначительные изменения. Так в перечень добавлены задачи на “interacting with the user” с использованием класса Console. Из блока вопросов по концепции ООП были исключены вопросы, касающиеся методов и конструкторов overridden. Правда добавили вопросы по интерфейсам NavigableSet и NavigableMap в блоке “Collections/Generics”.

Изменения не затронули основы, так как кардинально Java 6 не отличается от Java 5, добавлены только дополнительные API. Однако требования изменились, а значит и программа подготовки, а также литература по подготовке тоже должна быть изменена.

Что необходимо знать

Для сдачи экзамена SCJP необходимы отличные знания основ языка в теории и блестящее практическое применение теории. Практически все вопросы этого раздела требуют практического применения, разработки и чтения программного кода. На экзамене необходимо уметь:

Объявления, инициализация и ограничение.

  • Необходимо уметь объявлять всевозможные классы от абстрактных до форм вложенных классов, расширять абстрактные классы, использовать операторы импорта и пакета. Уметь создавать код, объявляющий и внедряющий один или более интерфейсов.
  • Обязательно умение использовать статические переменные в виде объектов, уметь использовать локальные переменные и переменные экземпляра, использовать идентификатор для имени переменной.
  • Уметь объявлять и использовать статические и нестатические методы, используя имена методов по стандарту JavaBeans. Уметь объявлять и использовать список аргументов с плавающей длиной. На примере кода определять верность замещения или переопределения метода, уметь определять значения результата метода.
  • Используя заданные классы, необходимо уметь создавать конструкторы для нескольких классов, определить возможность создания конструктора и его поведение. Необходимо уметь создавать экземпляр класса на основе включенных в список невложеных и вложенных классов.

Управление потоком

  • Экзамен подразумевает написание с чистого листа кода для внедрения и определения допустимых типов аргументов операторов if или switch;
  • Кроме создания кода всех форм циклов и итераторов, for, for-each, labels, while, do, continue, break необходимо уметь пояснить значения счетчиков в процессе работы кода и по его завершению.
  • Кроме умения создания кода, необходимо уметь выявлять правильно и ошибочное использование операторов контроля.
  • Программа экзамена требует свободного владения и создания кода объявления методов замещения, отсеивающие и применяющие исключения, а также применение операторов обработки исключений catch, try, finally.
  • Практический опыт должен позволять спрогнозировать ситуации, в результате отсеивания виртуальной машиной, а также выявлять ситуации отсеивания программой: ArrayIndexOutOfBoundsException; StackOverflowError; AssertionError; ClassCastException; NullPointerException; IllegalStateException; IllegalArgumentException; NumberFormatException; ExceptionInInitializerError; NoClassDefFoundError. Уметь работать с исключениями и ошибками.

Содержимое API

  • В этом разделе необходимо в программном коде отразить навыки применения базовых классов упаковщиков символ, булев, целое, двойной число и т.д., а также уметь объяснить разницу классов String, StringBuffer, StringBuilder их применение, автобоксинг и анбоксинг.
  • Следует в короткие сроки реализовать правильное решение на основании приведенного сценария с навигационной файловой системой, выполняющее считывание/запись из/в файлы, комбинируя классы java.io: File, FileWriter и FileReader, PrintWriter, BufferedWriter и BufferedReader.
  • Необходимо на экзамене создать код программы преобразующей объекты (сериализация, последовательно-параллельная обработка) с использованием API из java.io: Serializable, ObjectOutputStream и ObjectInputStream, FileOutputStream и FileInputStream, DataOutputStream и DataInputStream.
  • Предварительная подготовка должна включить знание стандарта J2SE API (java.text), так как потребуется пояснение назначения и использования класса java.util.Locale. В рамках экзамена необходимо уметь в зависимости от сценария определить правильные методы использования локали по умолчанию или специфической локали для форматирования и анализа синтаксиса чисел, валют, данных.
  • На экзамене нужно уметь определять и применять шаблоны регулярных выражений отождествления, в рамках квантификаторов « . * + ? », а « \d \s \w [] () » для группирования.
  • Требуется умение создать код анализа и форматирования потоков в пакетах java.util.regex и java.util по стандарту J2SE API. Также требуются фундаментальные знания метода String.split для создания кода с использованием классов обнаружителя совпадений и образов.
  • В рамках экзамена необходимо написать код для потока, определяющий и использующий параметры форматирования %b, %c, %d, %f, %s методов PrintWriter.format и printf в строках, использующих классы форматера и сканера.

Параллелизм

  • В этом разделе необходимо уметь определять, создавать и запускать потоки, определять состояние и пути перехода состояния на основе потока java.lang.Thread и java.lang.Runnable.
  • На практике отразить умение создавать код по заданному сценарию, в котором реализована грамотная блокировка объектов, защиты переменных экземпляров и/или статических переменных при параллельном доступе, описать возможные проблемы, а также правильно применить wait, notifyAll, notify.

Концепции объектного ориентирования

  • Для сдачи этого блока вопросов необходимо знать преимущества и написать код создающий связность в классах, свободное соединение и жесткую инкапсуляцию, и сильную. Также необходимо создать код по сценарию с использованием полиморфизма, приведения типов и возможные ошибки при использовании ссылок на объект.
  • Необходимо уметь применять статические методы, методы переменных, переменные экземпляры (статические переменые), конструкторы, а также понимать влияние модификаторов на наследование.
  • Уметь объявлять, активизировать методы и конструкторы переопределения и замещения, конструкторы надклассов, а также создавать код отношений объектов "has-a" и "is-a".

Коллекции / общие

  • В данном разделе необходимо знать классы коллекций и/или интерфейсы правильнее использовать для внедрения дизайна заданного сценарием.
  • Знать разницу между методом равенств и ==, корректно замещать соответствующие hashCode и методы равенств.
  • Уметь использовать классы внедрения и общие версии коллекций API (отображения, перечисления, интерфейсы установки, NavigableSet и NavigableMap). Использовать негрупповые коллекции API, знать их ограничения и порядок рефакторинга кода под общие версии. Необходимо знать как правильно использовать переменные экземпляров, параметры типов в объявлении интерфейса/класса. Знать различия общих методов и методов с групповыми типами, уметь задавать типы возврата функций и аргументы метода.
  • Уметь обрабатывать массивы, используя пакет java.util (управление списками, двоичный поиск, преобразование списка в массив, отбора), уметь применять java.lang.String , java.util.Comparator, java.lang.Comparable, интерфейсы для обработки массивов, списков, а также знать особенности классов упаковщиков.

Основы

  • Уметь создавать код, взаимодействующий с заданным примером, используя модификаторы доступа, наследования, объявления операторов и пакетов импорта для взаимодействия.
  • Необходимо понимать какой эффект в отношении значений примитивов и ссылок на объекты возникнет при интеграции в методы, выполняющие назначение или модификации параметров.
  • Нужно подробное понимание системы «сбора мусора» ее возможности, уметь выявлять в примере точку кода, где объект «собирает мусор».
  • Необходимо выявить верность примера пути класса и кода, для компилирования. Уметь создавать структуру каталога класса, полностью заданного, развернутого внутри/снаружи Jar-файла.
  • Уметь создавать код проверки на тождество двух базовых элементов или объектов, а также грамотно использовать оператор экземпляра, операторы назначения, отношения, арифметические, логичексие и условный операторы.

Виды и способы подготовки. Рекомендации SUN

Для удобства достижения цели — сдачи основного экзамена по Java-сертификации компании Sun Microsystems, разработана серия экзаменов для оценки знаний в области Java будущих и настоящих специалистов разработчиков программного обеспечения. SCJP 6 — экзамен, который рекомендуется пройти всем желающим от начинающих программистов, до гуру Java, опытных программистов для проверки своих знаний, специалистов желающих получить сертификат SCJP.

Прежде, чем сдавать экзамен стоит наработать практические навыки по всем темам экзамена, так как вопросы оценивают знание теории, синтаксиса языка, а также понимание принципов языка Java, применения методик программирования. Вся программа экзаменов по сертификации оценивает базовые профессиональные знания языка и практические навыки программирования на Java.

За время проведения экзаменов по Java-сертификации язык программирования эволюционировал, а вместе с ним изменялись требования и программа экзаменов.

Можно готовиться самостоятельно, по книге, специальному путеводителю по экзамену. В SUN для качественной подготовки к экзамену разработали две программы обучения, в зависимости от уровня предварительной подготовки и формы обучения для специалистов, уже обладающие сертификатом предшествующей версии и новичков без опыта сдачи экзамена SCJP. Компанией Sun Microsystems разработаны очный и заочный виды обучения. Также подготовка к экзамену разделяется по сути информации на изучение азов, основных концепций языка Java и изучение принципов программирования на языке Java. Также для разработчиков программного обеспечения серверной части существует дополнительный курс обучения.

Новичкам, имеющим нулевой опыт и запас знаний перед сдачей экзамена рекомендуется разобраться в следующих вопросах. До экзамена следует обладать полноценными знаниями принципов ООП объектно-ориентированного программирования, конструкция и в ключевых словах языка программирования для создания простых программ с использованием Java технологии. Фактически это базис для дальнейшего обучения и развития способностей и навыков Java-программирования на Java SE 6, а также умело пользоваться возможностями и компонентами среды программирования Java SE Development Kit 6 (JDK 6).

У экзаменуемого должна быть сформирована привычка написания структурированных программ, свободного ориентирования в синтаксисе Java-программ, применение объектно-ориентированного программирования на языке Java, практические навыки создания Графического интерфейса пользователей (GUIs), работа с прерываниями, исключениями, файлами вода/вывода, работа в сети. Программирование ООП на Java Platform Standard Edition 6 (Java SE 6) с применением компонент Java SE Development Kit 6 (JDK 6). Пройдя курс упражнений, программист использует для разработки интегрированную среду (IDE) NetBeans.

Практические рекомендации

Экзамен SCJP 6 в общем достаточно сложный но доступный так как дать правильный ответ на 65% из 72 вопросов за 210 минут под силу любому программисту использующего на практике язык Java или схожие технологии. Общий знаний недостаточно, чтобы сдать экзамен. В большей степени на результат влияет опыт, практика предварительного повторения всего материала, а так же собранность, ибо забывчивость и рассеянность на экзамене приводит к глупым ошибкам и опечаткам.

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

Многие нюансы и тонкости, разбросанные по книгам необходимо скрупулезно собирать и упорядочивать вместе со знаниями языка.

Важно не надеяться на память и нужно прорабатывать даже такие мелочи как способы описания, создания массивов. Нужно помнить модификаторы и их действия в классах и методах, чтобы случайно не описать, к примеру, как abstract метод final. Нужно знать что конструкторы компилятор запускает без аргументов, если таковые не описаны, с параметрами по умолчанию.

Обязательно нужно знать какие операторы потоками используют для управления потоком. Уметь обращаться с циклами while, условиями if/else, помнить разницу между continue и break. Знать способы отключения и разрешения утверждений.

Обязательно нужно знать назубок, процесс сборки мусора, механизма управления памятью языка Java, знать способы подготовки объектов к утилизации, помнить, что метод finalize() активизируется перед извлечением объекта сборщиком мусора.

Грамотно объявлять метод main(), интерфейсы, классы, пакеты. Умело использовать элементарные типы, литералах.

Нужно различать логические (&& и || ). и битовые (& и | ) операторы, понимать разницу между методом equal() и оператором ==, помнить что примитив передается копией значения а объекты значения ссылки.

Важно глубоко разбираться в инкапсуляции, ее преимуществах. Применять и видеть наследование свойств "IS-A" / "HAS-A" взаимосвязь классов, а также на практике разобраться, какая разница между замещением и перегрузкой.

Нужно знать наизусть все конструкторы, расширения, классы Thread способ определения потоков посредством интерфейса Runnable. Уметь грамотно использовать synchronizedи помнить вход/выход потока из блокировки, дабы предотвратить потоки от влияния метода объекта.

В этом разделе рассматривалось использование и сигнатура различных общих методов класса Math. Вам необходимо запомнить эти методы. Мы также увидели, что объекты String неизменяемы, в то время как объекты StringBuffer могут изменяться. Классы-оболочки имеют методы, которые позволяют представлять примитивы как объекты. Убедитесь, что вы знаете все методы преобразования и синтаксического анализа.

НА экзамене нужно ПОНИМАТЬ поведение типов коллекции Maps , Lists, Sets, правила применения каждого из них, разбираться в методах hashCode(), equals() и способах их реализации.

Обычная школьная методика «зубрежки» сухой теории API (интерфейсы приложений), синтаксиса не достаточно для сдачи SCJP, нужно ПОНИМАТЬ основы языка и реализуемые механизм, «пропитаться» во время проработки материала.

Время, которое выделяется для сдачи, анализировать и выводить логически ответы не достаточно. На каждый вопрос в среднем отводится около 3 минут времени. Большая часть вопросов требуют точного понимания и знание темы, поэтому подготовку к экзамену по сертификации, необходимо проводить по специальной книге, иначе необходимые для сдачи нюансы можно упустить. Обычной практики программирования на Java даже весьма длительной недостаточно так как обыденная работа не требует применения такого объема знаний, нужно потренироваться хотя бы 3-5 дней для сдачи экзамена такого формата.


Ресурсы для скачивания


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source, Linux
ArticleID=549433
ArticleTitle=Практические советы по подготовке к экзамену SCJP 6. Цель SCJP
publish-date=10052010