1. Баг
У программистов есть свой сленг, хотя многие считают, что это технический жаргон. В любом случае, вам не избежать ни знакомства с ним, ни детального изучения. Так что начинайте втягиваться.
Одним из первых слов, с которым вы познакомитесь, будет слово баг, от английского bug (жук). Это слово обозначает ошибку в программе, когда программа делает что-то не то или не так. Или просто странно работает.
Однако, если программист считает, что программа, хоть и работает странно, но именно так он и задумывал, обычно заявляет что-то типа «это не баг, это фича». Что породило кучу интернет-мемов.

В принципе причина неправильной работы может быть любая: ошибка в логике программы, опечатки, неверная архитектура программы, вплоть до проблем в компиляторе. В любом случае программистам нужно править и настоящие баги, и любые другие «недочеты», которые есть в программе.
История слова bug
Самой распространённой версией происхождения слова баг является такая легенда.
В сентябре 1947 года ученые Гарвардского Университета тестировали один из первых компьютеров — Mark II. Компьютер не работал, и в процессе проверки всех плат они нашли мотылька, застрявшего между контактами электромеханического реле.
Извлеченное насекомое было вклеено скотчем в технический дневник и сопровождено надписью, мол «баг найден и устранен».
Считается, что именно эта смешная история и послужила началом использования слова баг как обозначения ошибки, а слово дебаг (debug) стало синонимом устранения ошибок.
2. Отладка программы
Для устранения багов в своих программах программисты используют специальные программы-отладчики (debugger). Некоторые из этих программ умеют отлаживать даже машинный код.
Java-программисты для отладки (debugging) своих программ используют IDE. Такие как Intellij IDEA, Eclipse и Net Beans. IntelliJ IDEA на сегодняшний день является самой мощной IDE, поэтому мы рассмотрим процесс отладки на ее примере.
Intellij IDEA может запустить вашу программу в двух режимах:
Режимы запуска программы | Иконка на панели | Горячие клавиши |
---|---|---|
Обычное выполнение |
![]() |
Shift +F10 |
Запуск в режиме отладки |
![]() |
Shift +F9 |
С обычным режимом работы вы уже знакомы: программа запустится, отработает и завершится. А вот режим отладки несет для вас немало сюрпризов.
Режим отладки
Режим отладки позволяет пошагово выполнить всю вашу программу. Или правильнее будет сказать, построчно: строка за строкой. При этом вы можете наблюдать значения переменных на каждом шаге программы (после выполнения каждой строки кода). И даже менять их значения!
Чтобы минимально овладеть искусством отладки программы, вам нужно изучить три вещи:
- Точки остановки
- Пошаговое выполнение
- Просмотр значений переменных
3. Точки остановки (Break Points)
IDE позволяет вам разместить в коде специальные метки — точки остановки (break point). Каждый раз, когда программа, запущенная в режиме отладки, будет доходить до строки, отмеченной как break point, она будет становиться на паузу.
Чтобы поставить break point на определенной строке, нужно просто кликнуть в IDEA слева от этой строки. Пример:

В результате строка будет отмечена точкой остановки (break point), и Intellij IDEA подсветит ее красным цветом:

Повторный клик мышкой на панели слева от кода снимет установленную break point.
Также break point можно просто поставить на текущей строке с помощью горячей комбинации клавиш — Ctrl
+F8
. Повторное нажатие Ctrl
+F8
на строке, где уже есть break point, удаляет ее.
4. Запуск программы в режиме отладки (дебага)
Если у вас в программе есть хотя бы одна точка остановки, вы можете запускать программу в режиме отладки (Shift
+F9
или «иконка с жуком»).
После запуска в режиме отладки программа выполняется как обычно. Но как только она дойдет до выполнения строки кода, помеченного break point, встанет на паузу. Пример:

В верхней половине скриншота вы видите код программы с двумя точками остановки. Программа замерла на строке 5 — отмечена синей линией. Строка 5 еще не выполнилась: в консоль еще ничего не выводилось.
В нижней половине экрана вы видите панели режима отладки: панель Debugger, панель Console (вывод на экран), а также набор кнопок для режима отладки.
Вы можете снять вашу программу с паузы (продолжить ее выполнение), если нажмете кнопку Resume Program на панели слева снизу (или нажмете клавишу F9
).

Если нажать такую кнопку (или F9
), программа продолжит работу, пока не встретит следующую точку остановки или не завершится. Вот что мы увидим после нажатия такой кнопки:

Программа остановилась на второй точке остановки, а в консоль выведены слова Привет
и И
– признак того, что из трех строк вывода на экран выполнились только две.
5. Пошаговое выполнение
Если ваша программа работает в режиме отладки, вы также можете выполнять ее пошагово: один шаг — одна строчка. Для пошагового выполнения есть две горячие клавиши: F7
и F8
: каждая из них приводит к выполнению текущей строки кода. Но сначала вам нужно будет все же остановить вашу программу с помощью break point.
Если вы хотите выполнять вашу программу построчно, вам нужно поставить break point в самом начале метода main()
и запустить ее в режиме отладки.
Когда программа остановится, вы сможете начать построчное ее выполнение. Одно нажатие клавиши F8
– одна строка.
Вот как будет выглядеть наша программа после остановки и нажатия клавиши F8
один раз:

Первая строка метода main уже выполнилась, и текущая строка — вторая. Вы также можете видеть в нижней части скриншота, что на экран уже вывелось слово Привет
.
6. Пошаговое выполнение с заходом в методы
Если у вас есть в программе собственные методы, и вы хотите, чтобы в режиме отладки ваша программа не просто выполнялась пошагово, но и заходила внутрь ваших методов, для «захода в метод» вам нужно нажимать не клавишу F8
, а клавишу F7
.
Допустим, вы пошагово выполняете программу и сейчас остановились на 4-й строке. Если вы нажмете кнопку F8
, IDEA просто выполнит четвертую строку и перейдет к пятой.

А вот если вы нажмете F7
, IDEA будет пошагово выполнять метод main2()
:

Все очень просто. Если вам не сильно важно, что и как происходит внутри метода, вы нажимаете F8
, если важно — F7
и пошагово выполняете весь его код.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ