Git Product home page Git Product logo

geekbrains-java2's Introduction

#Курс Java3

Работа с кодом и создание Pull Request

Директория проекта - "Pull-Request-Screen-Cast"

  1. Встаем в ветку мастер и делаем pull из репозитория, чтобы получить текущую версию
  2. В IDEA Создаем от мастера ветку, например Java3_lesson2 (ветка создается внизу справа, на этот момент должно выглядеть как "Git: master", т.е. ветка где мы сейчас находимся. После создания справа внизу увидем, что перешли на новую ветку.
  3. Пишем код, делаем что хотим и как хотим, делаем один-несколько комиков и т.д. В результате делаем push в удаленный репозиторий. Когда будем делать push IDEA подстветит, что в репозитории будет создана новая ветка
  4. После этого заходим в репозиторий на GitHub и переходим во вкладку Pull Requests и нажимаем на Create New Pull Request 4.1 в Base выбираем ветку куда хотим внести наши изменения 4.2 в Compare выбираем ветку откуда будут браться изменения
  5. Будут отражены все различия между двумя ветками, проверяем, что все правильно и там все что нужно и нет ничего лишнего и нажимаем Create Pull Request.
Geekbrains-java2
│
└── stage-1 - 1 Курс Java
│
└── stage-2 - 2 Курс Java
│
└── stage-3 - 3 Курс Java

Урок 1. Обобщения (Generics)

Пакет с кодом по уроку: src/generics.

Когда использовать Generic'и: Когда есть ответ "да" на все или на большинство из следующих вопросов, тогда стоит задуматься о применении Generic'ов:

  1. Класс и метод. Придётся ли мне написать этот класс или метод для разных типов?
  2. Класс и метод. Требуется ли мне жесткое ограничение по типу в рамках моего класса или метода? Хочу ли я, что бы в рамках экземпляра объекта или метода можно было работать только с одним типом?
  3. Метод. Требуется ли мне возвращать типизированный результат работы метода для разных входных типов?
  4. Метод. Нужна ли у моему методу возможность одинаково обрабатывать несвязанные типы?

Урок 2. Работа с базами данных

Модуль с уроком sqlite-jdbc.

Урок 3. Работа с вводом выводом. Java IO.

Работа с потоками ввода/вывода. Чтение из файлов, запись в файлы. пакет /homework - пример реализации начитки последних 100 строк из файла.

Урок 4. Многопоточность. Часть 1

Описание пакетов урока:

lesson4-multithreading
│
└── p1_base - Базовые примеры создания тредов
│
└── p2_synch_counter - Пример реализации счетчиков
│   │
│   └── Counter и Example_Counter_1 - без синхронизации
│   │
│   └── SynchCounter и  Example_SynchCounter_2 - c синхронизацией
│
└── p3_synch_atm - Пример работы с синхронизацией на примере банкомата
│   │
│   └── Example_Synch_1 - без использования синхронизации
│   │
│   └── Example_Synch_2 - с использованием синхронизации
│
└── p4_synch_blocks - пример реализации 3 видов synchronized
│   │
│   └── Example_SB_1 - синхронизация на уровне метода
│   │
│   └── Example_SB_2 - синхронизация на уровне блока кода
│   │
│   └── Example_SB_3 - синхронизация для статических методов
│
└── p6_another_example - Пример использование Atomic-переменных (для поддержки атомарных операций)
│
└── p7_volatile - пример использования переменных volatile
│
└── p8_wait_and_notify - пример использования переменных volatile
│   │
│   └── DataManager - пример использования notify
│   │
│   └── DataManagerProcessing - пример использования notifyAll\
│
└── p11_interesting_things - примеры некоторых особенностей работы потоков
│
└── p12_executor_service - пример реализации ExecutorService

Урок 5. Многопоточность. Часть 2

lesson5-multithreading2
│
└── AtomicCounter - пример реализация счетчика на Atomic-переменных (для поддержки атомарных операций)
│
└── CyclicExample - пример использования CyclicBarrier
│
└── ProdConsExample - пример использование очереди ArrayBlockingQueue - задача производителя/потребителя
│
└── SimpleCDL - пример использования защелки CountDownLatch
│   │
└── SimpleSemaphore - пример использования семафора Semaphore

geekbrains-java2's People

Contributors

naikonst avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.