Pull to refresh
  • by relevance
  • by date
  • by rating

1000+ часов видео по Java на русском

GolovachCourses corporate blog Java *
Tutorial
Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
  1. Java Core
  2. Junior Java Developer: Servlet API, JDBC, Maven, JUnit, Mockito, Log4J, основы Spring/SpringMVC, основы JPA/Hibernate, шаблоны/архитектуры MVC/IoC/DAO.
  3. Multicore programming in Java.


Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

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

(GolovachCourses.com)


Здесь собраны несколько вариантов записи моего курса Java Core.
Модуль #1 (Procedural Java):
Набор июль 2013: #1, #2, #3, #4
Набор апрель 2013: #1, #2, #3, #4
Набор февраль 2013: #1, #2, #3, #4
Набор январь 2013: #1, #2, #3, #4
Набор октябрь 2012: #1, #2, #3, #4.
Читать дальше →
Total votes 120: ↑111 and ↓9 +102
Views 1.2M
Comments 38

Аннотации в Java, часть I

GolovachCourses corporate blog Java *
Это первая часть статьи, посвященной такому языковому механизму Java 5+ как аннотации. Она имеет вводный характер и рассчитана на Junior разработчиков или тех, кто только приступает к изучению языка.

Я занимаюсь онлайн обучением Java и опубликую часть учебных материалов в рамках переработки курса Java Core.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Мой метод обучения состоит в том, что я
  1. строю усложняющуюся последовательность примеров
  2. объясняю возможные варианты применения
  3. объясняю логику двигавшую авторами (по мере возможности)
  4. даю большое количество тестов (50-100) всесторонне проверяющее понимание и демонстрирующих различные комбинации
  5. даю лабораторные для самостоятельной работы

Данная статье следует пунктам #1 (последовательность примеров) и #2(варианты применения).
Читать дальше →
Total votes 47: ↑42 and ↓5 +37
Views 78K
Comments 21

Программа курса «Java Core»

GolovachCourses corporate blog Java *
Я занимаюсь онлайн обучением Java (вот курсы программирования) и публикую часть учебных материалов в рамках переработки курса Java Core. Видеозаписи лекций в аудитории Вы можете увидеть на youtube-канале, возможно, видео канала лучше систематизировано в этой статье.
Хотел бы вынести на обсуждение новую программу курса Java Core.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Программа курса


Курс состоит из 45 лекций разбитых на 9 модулей по темам
  1. Модуль: Основы
    • Лекция #1.1: целочисленные типы, типы с плавающей точкой, bit operations
    • Лекция #1.2: массивы, java.lang.String, format
    • Лекция #1.3: for/switch/while, boolean logic(|, ||, &, &&, !, ^)
    • Лекция #1.4: порядок выполнения операторов, построение internal DSL
  2. Модуль: Процедурное программирование
    • Лекция #2.1: Циклы, итеративные алгоритмы
    • Лекция #2.2: Рекурсия I, основы
    • Лекция #2.3: Рекурсия II, проектирование рекурсивных алгоритмов
    • Лекция #2.4: Динамические структуры данных
    • Лекция #2.5: Память в Java: stack, heap, PermGen/Metaspace
  3. Модуль: Исключения
    • Лекция #3.1: try-catch-finally
    • Лекция #3.2: checked/unchecked
    • Лекция #3.3: Internals and handling
    • Лекция #3.4: Java 7: try-with-resources
    • Лекция #3.5: Most popular exceptions in JDK

Читать дальше →
Total votes 27: ↑16 and ↓11 +5
Views 168K
Comments 22

Сравнение скорости работы ArrayList и LinkedList на практике

Java *
Sandbox
Приветствую Вас!

ArrayList и LinkedList — знают все. В каких ситуациях работает быстро, а в какой ситуации работает медленной тот или другой список — знают тоже все, кто в теории, а кто на практике. Данный пост подходит для тех, кто только начинает изучать Java, или кто слышал, о том «что быстрее», но не видел на практике.
Читать дальше →
Total votes 38: ↑13 and ↓25 -12
Views 51K
Comments 55

Исправляем 7 распространенных ошибок обработки исключений в Java

Programming *Java *
Sandbox
Привет, Хабр! Представляю вашему вниманию перевод статьи Fixing 7 Common Java Exception Handling Mistakes автора Thorben Janssen.

Обработка исключения является одной из наиболее распространенных, но не обязательно одной из самых простых задач. Это все еще одна из часто обсуждаемых тем в опытных командах, и есть несколько передовых методов и распространенных ошибок, о которых вы должны знать.

Вот несколько вещей, которые следует избегать при обработке исключений в вашем приложении.
Читать дальше →
Total votes 21: ↑15 and ↓6 +9
Views 72K
Comments 13

Arrays, Collections: Алгоритмический минимум

Java *Algorithms *
Sandbox

Arrays, Collections: Алгоритмический минимум


Массивы и списки


Недавно на собеседовании в крупную компанию на должность Java разработчика меня попросили реализовать стандартный алгоритм сортировки. Поскольку я никогда не реализовывал самописные алгоритмы сортировки, а пользовался всегда готовыми решениями, у меня возникли затруднения с реализацией. После собеседования я решил разобраться в вопросе и подготовить список основных алгоритмов сортировки и поиска, которые используются в стандартном пакете java — Java Collections Framework (JCF). Для этого я изучил исходники Oracle JDK 7.80 (UPD: добавлена ссылка).

В самом обобщенном виде результат изучения представлен на рисунке. Подробности — в основном тексте.



Рисунок 1. Методы Arrays, Collections и реализуемые ими алгоритмы
Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Views 42K
Comments 47

Что будет если объединить ArrayList и LinkedList?

Java *
Sandbox

Приветствую вас!
После изучения коллекций, а именно такие реализации List, как ArrayList и LinkedList, возникла идея, а почему бы не объединить эти структуры данных в одну и посмотреть, что из этого получится.


Зачем это нужно?


  • Проблема ArrayList — у него есть начальный размер по умолчанию DEFAULT_CAPACITY или заданный размер initialCapacity, при превышении этого размера, создается новый массив большего размера, при этом туда копируются данные из старого массива, что по времени очень затратно и именно это дает в наихудшем случае алгоритмическую сложность O(n)
  • Проблема LinkedList — здесь наоборот, добавить новый элемент, это всего лишь добавить новую связь (создать еще одну Node и добавить ссылку на неё), но операция получения элемента по индексу очень затратна, т.к. нужно будет пройтись по всему списку от начала, что очень затратно и дает O(n)

Решение


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

Читать дальше →
Total votes 27: ↑16 and ↓11 +5
Views 11K
Comments 29

Реализация Spring Framework API с нуля. Пошаговое руководство для начинающих. Часть 1

Programming *Java *
Tutorial


Spring Framework является одним из самых сложных фремворков для понимания и изучения. Большинство разработчиков изучают его медленно, через практические задачи и гугл. Этот подход не эффективен, так как не даёт полной картины и при этом требует больших затрат.

Я хотел бы предложить вам принципиально новый подход к изучению Спринга. Он заключается в том, что человек проходит через серию специально подготовленных туториалов и самостоятельно реализует функционал спринга. Особенность этого подхода в том, что он, помимо 100%-го понимания изучаемых аспектов Spring даёт ещё большой прирост в Java Core (Annotations, Reflection, Files, Generics).

Статья подарит вам незабываемые ощущения и позволит почувствовать себя разработчиком Pivotal. Шаг за шагом, вы сделаете ваши классы бинами и организуете их жизненный цикл (такой же, как и в реальном спринге). Классы, которые вы будете реализовывать — BeanFactory, Component, Service, BeanPostProcessor, BeanNameAware, BeanFactoryAware, InitializingBean, PostConstruct, PreDestroy, DisposableBean, ApplicationContext, ApplicationListener, ContextClosedEvent.
Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Views 42K
Comments 17

26 рекомендаций по использованию типа var в Java

Programming *Java *
Translation

The Java Local Variable Type Inference (LVTI) или кратко — тип var (идентификатор var — это не ключевое слово, а зарезервированное имя типа) был добавлен в Java 10 с помощью JEP 286: Local-Variable Type Inference. Являясь 100% функцией компилятора, она не влияет на байт-код, время выполнения или производительность. В основном компилятор проверяет правую часть от оператора присваивания и, исходя из нее, определяет конкретный тип переменной, а затем заменяет им var.


Кроме того, это полезно для сокращения многословности шаблонного кода, а так же позволяет ускорить сам процесс программирования. Например, очень удобно писать var evenAndOdd =... вместо Map<Boolean, List<Integer>> evenAndOdd =... .


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


В этой статье мы рассмотрим 26 ситуаций, с примерами того, когда можно использовать var, а когда этого делать не стоит.

Читать дальше →
Total votes 29: ↑25 and ↓4 +21
Views 22K
Comments 28

Lombok, sources.jar и удобный дебаг

Сбер corporate blog Programming *Java *Gradle *
В нашей команде мы очень любим Lombok. Он позволяет писать меньше кода и меньше его рефакторить, что идеально подходит для ленивых разработчиков. Но если помимо артефакта проекта вы публикуете так же и исходники с документацией, то можете столкнуться с проблемой — код исходников не будет совпадать с байткодом. О том, как мы решали эту проблему и с какими трудностями столкнулись в процессе, я и расскажу в этом посте.


Читать дальше →
Total votes 21: ↑15 and ↓6 +9
Views 4.3K
Comments 7

Выбор между Comparator и Comparable

Java *

В java для сравнения на больше-меньше можно использовать как Comparable, так и Comparator. В статье приводится аргументация, почему использование компаратора ведет к большей явности кода.

Read more
Total votes 6: ↑4 and ↓2 +2
Views 6.6K
Comments 16

Тривиальная и неправильная «облачная» компиляция

Programming *Java *API *Hackathon


Введение


Данная статья не история успеха, а скорее руководство «как не надо делать». Весной 2020 для поддержания спортивного тонуса участвовал в студенческом хакатоне (спойлер: заняли 2-е место). Удивительно, но задача из полуфинала оказалась более интересной и сложной чем финальная. Как вы поняли, о ней и своём решении расскажу под катом.

Под кат
Total votes 8: ↑6 and ↓2 +4
Views 1.7K
Comments 9

Java Core для самых маленьких. Часть 1. Подготовка и первая программа

Programming *Java *ООP *
Tutorial

Запускаю серию обучающих статей по Java Core c картинками, без смс и регистрации!

В этой статье мы быстро пройдемся по истории языка Java и его особенностях.
Установим JDK и подготовим ваш камплюктер для работы с ним.
Конечно же поговорим об IDE и установим IntelliJ IDEA.
Создадим, запустим и разберем первую Java-программу.

Уверен, понятно будет даже самым маленьким!

Читать далее
Total votes 21: ↑8 and ↓13 -5
Views 16K
Comments 15

Java Core для самых маленьких. Часть 2. Типы данных

Programming *Java *ООP *
Tutorial

Java - строго-типизированный язык программирование, что это такое?
В Java есть примитивные типы данных, а это что такое?
Каждый примитив обладает своим размером и диапазоном значений.

Обо всем этом вы узнаете в этой статье про типы данных в Java!

Читать далее
Total votes 14: ↑6 and ↓8 -2
Views 7K
Comments 10

Java Core для самых маленьких. Часть 3. Переменные

Programming *Java *ООP *
Tutorial

В этой статье мы говорим о переменных и связанных с ними темами!

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

Читать далее
Total votes 9: ↑3 and ↓6 -3
Views 6.2K
Comments 15

Еще раз о регекспах, бэктрекинге и том, как можно положить на лопатки JVM двумя строками «безобидного» кода

VK corporate blog Java *Regular expressions *
Sandbox

Раннее утро, десятая чашка кофе, безуспешные попытки понять почему ваше клиентское (или еще хуже – серверное) java-приложение намертво зависло при вычислении простого регекспа на небольшой строке… Если подобная ситуация уже возникала в вашей жизни, вы уже наверняка знаете про бэктрекинг и темную сторону регулярных выражений. Остальным – добро пожаловать под кат!

Читать далее
Total votes 38: ↑36 and ↓2 +34
Views 10K
Comments 8