Лучшие курсы Java Core в СССР
-------------------------
Актуальная информация о курсах на сегодня (май 2013).
-------------------------
Добрый день.
Меня зовут Головач Иван. Я создал лучшие курсы Java Core на территории бывшего Союза.
Старты следующих групп — 15 декабря и 15 января.
Вы можете связаться с нашим администратором:
skype: KharkovITCourses
email: [email protected]
phone:
site: KharkovITCourses.blogspot.com
Качество всяких начальных курсов характеризуется тремя показателями:
— качество преподавателя
— последующее трудоустройство
— качество предоставляемого материала
Качество преподавателя
Мне тяжело судить о самом себе. Могу рассказать: мне 31 год, Java Coding Architect, опыт работы как в стартапах так и в компании из Кремниевой Долины, лучший студент Украины в области прикладной математики 2002 года, лучший студент Харьковского Политеха в области прикладной математики все время обучения
Примеры моих лекций (первые 10 курса Java Core) Вы можете посмотреть в свободном доступе на youtube:
— Итерация
— Рекурсия
— Динамические структуры данных
— Организация памяти в Java
— Исключения: cинтаксис
— Исключения: синтаксис/cемантика
— Исключения: cемантика
— Многопоточность: Thread, Runnable, start(), run(), join()
— Многопоточность: synchronized, wait(), notify(), notifyAll()
— Многопоточность: interrupt(), InterruptedException
Последующее трудоустройство
Мы ведем прямые переговоры с HR-департаментами большинства ведущих IT-компаний Харькова. Из известных — GlobalLogic, EPAM, DataArt, GridDynamics, TeamDev, Ciklum, Stella, Intetics, Miratech.
В данный момент происходит трудоустройство предыдущих наборов (сентябрь 2012 + октябрь 2012). Результаты смогу сообщить позже. Оценочные цифры — 80% от слушателей курсов. Высокие цифры обеспечиваются за счет организации конкуренции между компаниями за выпускников.
Курсы ориентированы на слушателей в возрасте
Ожидаемая минимальная зарплата после курсов — 300-400$ в месяц.
Качество предоставляемого материала
Курс состоит из 24 двухчасовых лекций в аудитории, 50 обязательных лабораторных, и
Курс в первую очередь ориентирован на получение практических знаний и строится вокруг анализа и написания нетривиального кода.
Ниже я привожу примеры кода, которые мы разбираем на лекции (каждая лекция — это около
Итерация
Что выведет данная программа?
public class Application { public static void main(String[] args) { int[][] arr = {{0, 1}, {2, 3}}; for (int i = 0; i < 2; i++) { for (int j = 1; j >=0; j--) { System.out.println(arr[j][i]); } } } }
Рекурсия
Что выведет данная программа?
public class Application { public static void main(String[] args) {f(1);} public static void f(int arg) { if (arg < 42) { f(2 * arg); } System.out.println(arg); } }
Динамические структуры данных
Корректно ли реализован этот метод рекурсивного создания копии односвязного списка?
public static Node copy(Node tail) { return tail == null ? null : new Node(tail.value, copy(tail.next)); }
Организация памяти в Java
Закончится ли память при запуске этой программы?
class Application { public static void main(String[] args) { Object[] ref = new Object[1]; while (true) { ref[0] = new Object[]{ref}; ref = (Object[]) ref[0]; } } }
Исключения: синтаксис
Будет ли компилироваться данная данная программа?
public class ExceptionTest_ThrowThrows_10B { public static void main(String[] args) throws Error { f(); } private static void f() throws NullPointerException {} }
Исключения: механика
Что выведет данная программа?
public class Application { public static void main(String[] args) { try { System.out.println(0); throw new NullPointerException(); } catch (RuntimeException e) { System.out.println(1); } finally { System.out.println(2); } System.out.println(3); } }
Многопоточность: Thread, Runnable, start(), run(), join()
Чем завершится выполнение это программы?
public class Application { public static void main(String[] args) throws InterruptedException { final Thread mainThread = Thread.currentThread(); Thread runThread = new Thread(new Runnable() { public void run() { try { System.out.println("Run: wait for main!"); mainThread.join(); } catch (InterruptedException e) { e.printStackTrace(); } } }); runThread.start(); System.out.println("Main: wait for run!"); runThread.join(); } }
Многопоточность: synchronized, wait()/notify(), notifyAll()
Чем завершится выполнение это программы?
public class Application { public static void main(String[] args){ synchronized (new Object()) { new Object().notify(); } } }
Многопоточность: synchronized, wait()/notify(), notifyAll()
Корректная ли это реализация ограниченного (на один элемент) блокирующего буфера?
public class SingleElementBuffer { private Integer elem = null; public synchronized void put(Integer newElem) throws InterruptedException { while (elem != null) { this.wait(); } this.elem = newElem; this.notify(); } public synchronized Integer get() throws InterruptedException { while (elem == null) { this.wait(); } int result = this.elem; this.elem = null; this.notify(); return result; } }
Java I/O: xxx
xxxx
Java I/O: xxx
xxxx
Java I/O: xxx
xxxx
Коллекции: xxx
Корректная ли это реализация адаптера итератора к InputStream?
import java.io.IOException; import java.io.InputStream; import java.util.Iterator; public class IteratorToISAdapter extends InputStream { private final Iterator<integer> iterator; public IteratorToISAdapter(Iterator<integer> iterator) { this.iterator = iterator; } @Override public int read() throws IOException { return (iterator.hasNext()) ? iterator.next() : -1; } }
ЛАБОРАТОРНАЯ: реализуйте адаптер InputStream к итератору.
Коллекции: xxx
1) Реализуйте класс Index2D для данной разреженной булевой матрицы (какие требования к методам hashCode() и equals()).
2) Что изменится при замене HashSet на TreeSet?
import java.util.HashSet; import java.util.Set; public class SparseMatrix { usedIndexes = new HashSet<>(); public boolean get(int rowNum, int colNum) { return usedIndexes.contains(new Index2D(rowNum, colNum)); } public void set(int rowNum, int colNum, boolean value) { if (value) { usedIndexes.add(new Index2D(rowNum, colNum)); } else { usedIndexes.remove(new Index2D(rowNum, colNum)); } } }
Коллекции: xxx
Что выведет данная программа в консоль (каков порядок перебора элементов в HashMap, TreeMap, LinkedHashMap)?
import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.TreeMap; public class MapOrderExample { public static void main(String[] args) { Map<integer, string=""> hashMap = new HashMap<integer, string="">(3); Map<integer, string=""> treeMap = new TreeMap<integer, string="">(); Map<integer, string=""> linkedHashMap = new LinkedHashMap<integer, string="">(); // 1 hashMap.put(30, "A"); treeMap.put(30, "A"); linkedHashMap.put(30, "A"); // 2 hashMap.put(10, "B"); treeMap.put(10, "B"); linkedHashMap.put(10, "B"); // 3 hashMap.put(20, "C"); treeMap.put(20, "C"); linkedHashMap.put(20, "C"); System.out.println("hashMap = " + hashMap); System.out.println("treeMap = " + treeMap); System.out.println("linkedHashMap = " + linkedHashMap); } }
Java ООП: xxx
xxx
Java ООП: xxx
xxx
Java ООП: xxx
xxx
258 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів