Как закончить программу в java

Содержание
  1. Как завершить программу в java
  2. Завершение программы Java
  3. Как остановить выполнение Через определенное время в Java
  4. 2. Использование петли
  5. 3. Использование механизма прерывания
  6. 3.1. Использование таймера
  7. 3.2. Использование метода Future#get
  8. 3.3. Использование Услуги Планового Исполнителя
  9. 4. Есть ли гарантия?
  10. 5. Заключение
  11. Как выйти из приложения Java из программы
  12. ОТВЕТЫ
  13. 10 главных конструкций языка Java
  14. Комментарии
  15. Переменные и типы данных
  16. Присваивание и сравнение
  17. Структура программы
  18. Ввод и вывод
  19. Условные операторы if и switch
  20. Циклы
  21. Функции (они же методы)
  22. Классы
  23. Объекты
  24. Как перезапустить приложение Java?
  25. ОТВЕТЫ
  26. Ответ 1
  27. Ответ 2
  28. Ответ 3
  29. Ответ 4
  30. Ответ 5
  31. Ответ 6
  32. Ответ 7
  33. Ответ 8
  34. Ответ 9
  35. Ответ 10
  36. Если procfs /proc/self/cmdline доступен
  37. Не забудьте использовать ProcessBuilder.inheritIO()
  38. Pitfall в Windows
  39. Ответ 11
  40. Ответ 12
  41. Ответ 13
  42. Многопоточность в Java: работа с потоками и полезные методы класса Thread
  43. Процессы в Java: определение и функции
  44. Что такое потоки
  45. Состояния потоков
  46. Способы запуска потоков
  47. Завершение процесса и потоки-демоны
  48. Завершение потоков
  49. Метод Thread.sleep()
  50. Метод yield()
  51. Метод join()
  52. Приоритеты потоков
  53. Некоторые полезные методы класса Thread
  54. Debug в IDEA
  55. 1. Баг
  56. 2. Отладка программы
  57. 3. Точки остановки ( Break Points )
  58. 4. Запуск программы в режиме отладки (дебага)
  59. 5. Пошаговое выполнение
  60. 6. Пошаговое выполнение с заходом в методы

Как завершить программу в java

Завершение программы Java

Я узнал, как закончить (выключить или остановить) мои Java-программы. Я нашел для него два решения.

используя return;
Когда я хочу завершить или прекратить выполнение моей программы, я добавляю это.

используя System.exit(); Иногда я использовал его. Я прочитал о Sytem.exit() из Этот вопрос.

Итак, я знаю немного о них обоих. Но я все еще смущен тем, как они на самом деле работают. Пожалуйста, проверьте коды ниже.

Я уверен, что 2 не появится. Я хотел бы знать, почему return; или другие коды могут писать ниже утверждение System.exit(0); и что было реальным определением для return; (потому что для меня это странно для меня return без каких-либо переменных или значений)?

return приведет к выходу программы только в том случае, если она находится внутри метода main основного класса. Если вы попытаетесь поместить код после него, компилятор будет жаловаться на недостижимый код, например:

Как остановить выполнение Через определенное время в Java

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

2. Использование петли

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

На самом деле мы хотели бы обрабатывать только до определенного времени, а после этого мы хотим остановить выполнение и показать все, что список обработал до этого времени.

Давайте рассмотрим краткий пример:

Здесь петля разорвется, если время превысит предел в 30 секунд. В приведенном выше решении есть несколько примечательных моментов:

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

3. Использование механизма прерывания

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

Если рабочий поток все еще жив, он поймает сигнал и остановит его выполнение. Если рабочий завершит работу до истечения тайм-аута, это никак не повлияет на рабочий поток.

Давайте взглянем на рабочий поток:

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

Далее мы рассмотрим три различных механизма передачи сигнала прерывания.

3.1. Использование таймера

Кроме того, мы можем создать TimerTask для прерывания рабочего потока по таймауту:

3.2. Использование метода Future#get

Мы также можем использовать метод get a Future вместо использования a Таймер :

3.3. Использование Услуги Планового Исполнителя

Мы также можем использовать ScheduledExecutorService для прерывания задачи. Этот класс является расширением ExecutorService и предоставляет ту же функциональность с добавлением нескольких методов, которые имеют дело с планированием выполнения. Это может выполнить заданную задачу после определенной задержки в заданные единицы времени:

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

4. Есть ли гарантия?

Однако мы можем явно проверять наличие флага прерывания после каждого чтения в цикле. Это даст разумную гарантию остановить поток с некоторой задержкой. Но это не гарантирует остановку потока после строгого времени, потому что мы не знаем, сколько времени может занять операция чтения.

Мы можем идентифицировать методы блокировки, ища throws | InterruptedException в их сигнатурах методов.

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

5. Заключение

Как выйти из приложения Java из программы

Какой лучший способ выйти из приложения Java с кодом?

ОТВЕТЫ

Ответ 1

Вы можете использовать System.exit() для этой цели.

Согласно документации oracle Java 8:

public static void exit(int status)

Завершает работу запущенной виртуальной машины Java. Аргумент служит в качестве кода состояния; по соглашению, ненулевой код состояния указывает на ненормальное завершение.

Этот метод вызывает метод exit в классе Runtime. Этот метод никогда не возвращается нормально.

Вызов System.exit(n) фактически эквивалентен вызову:

Ответ 2

«0» позволяет любому, кто вызвал вашу программу, знать, что все прошло нормально. Если, однако, вы выходите из-за ошибки, вы должны System.exit(1); или с другим ненулевым числом, соответствующим конкретной ошибке.

Кроме того, как говорили другие, сначала очистите! Это включает в себя закрытие файлов и других открытых ресурсов.

Ответ 3
Ответ 4

System.exit() обычно не самый лучший способ, но он зависит от вашего приложения.

Ответ 5

Я согласен с Джоном, попросите ваше приложение отреагировать на что-то и вызовите System.exit().

Ответ 6

Использование dispose(); — очень эффективный способ закрытия ваших программ.

Источник

10 главных конструкций языка Java

Простой и мощный язык.

Java — важный язык разработки во многих больших корпорациях. Мы уже рассказывали про то, как и где применяется Java, теперь настало время для практики.

Так как авторы языка Java при создании вдохновлялись языками C и C++, то в Java тоже появилось много похожих конструкций и команд. Если вы знаете C или C++, то освоить Java вам будет гораздо проще.

👉 В Java после каждой команды ставится точка с запятой.

Комментарии

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

// Это однострочный комментарий
// Для каждой строки нужно добавлять его отдельно
/* А это — многострочный
его можно сделать любой длины,
если в начале и в конце поставить нужные символы */

Переменные и типы данных

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

Присваивание и сравнение

// это присваивание
x = 10;
// а это — сравнение x и 10
// результат сравнения отправляется в переменную b
boolean bol;
b = (x == 10);

Структура программы

Разработчикам Java понравилось, что в C вся программа состоит из функций, среди которых есть одна обязательная — main, поэтому сделали точно так же. В классах эта функция называется методом.

Но есть одно важное отличие: каждая java-программа — это как бы один большой класс со своими разделами, которые должны быть у каждого класса. Благодаря этому большие программы легко собираются из маленьких java-кирпичиков и работают друг с другом как с классами, используя все их возможности.

Ввод и вывод

Для ввода и вывода используют системный класс System и два его объекта — in и out. Но на практике чаще всего вместо in используют объект Scanner, чтобы можно было более гибко управлять вводом данных.

Условные операторы if и switch

Работают так же, как в C и в любых современных языках высокого уровня. Главное здесь — следить за фигурными скобками и не перепутать, что к чему относится. Проще всего это регулировать отступами:

Читайте также  Canada как читается на английском

У оператора множественного выбора есть особенность: ему не нужны фигурные скобки для действий в каждом случае. Компьютер по синтаксису понимает, что к чему относится, и выбирает нужный вариант.

Циклы

В Java есть три основных вида циклов:

Ещё есть два полезных оператора:

Функции (они же методы)

Так как каждая программа — это описание какого-то класса, то функции в Java — это и есть методы этого класса. Функций (или методов) может быть сколько угодно, главное — соблюдать правила описания классов. Покажем на примере:

Классы

В Java всё построено на классах, от самой программы до реализаций различных функций. Конечно, можно не использовать классы и работать в чисто процедурном стиле, но в Java так не принято. Это ООП-язык с родной поддержкой классов на всех уровнях.

Сами классы объявляются и используются так же, как и в любом другом ООП-языке:

Объекты

Объекты в Java работают по тому же принципу, что и все объекты в ООП: можно создавать сколько угодно объектов на основе классов и делать их любой сложности.

Обычно используют классы, прописанные в том же файле, что и программа. Если нужно использовать класс из другой программы, её подключают отдельно. Вот самый простой способ сделать объект на основе предыдущего класса с заказом:

Источник

Как перезапустить приложение Java?

Как перезапустить приложение Java AWT? У меня есть кнопка, к которой я привязал обработчик событий. Какой код следует использовать для перезапуска приложения?

Я хочу сделать то же самое, что Application.Restart() делать в приложении С#.

ОТВЕТЫ

Ответ 1

Конечно, можно перезапустить Java-приложение.

Следующий способ показывает способ перезапуска приложения Java:

В основном это делает следующее:

Ответ 2

Посвящается всем тем, кто говорит, что это невозможно.

Эта программа собирает всю информацию, доступную для восстановления исходной командной строки. Затем он запускает его, и поскольку он является той же самой командой, ваше приложение запускается во второй раз. Затем мы выходим из исходной программы, дочерняя программа продолжает работать (даже под Linux) и делает то же самое.

ПРЕДУПРЕЖДЕНИЕ. Если вы запустите это, имейте в виду, что он никогда не заканчивает создание новых процессов, подобно fork bomb.

Ответ 3

В принципе, вы не можете. По крайней мере, не на надежном пути.

Чтобы перезапустить Java-программу, вам необходимо перезапустить JVM. Чтобы перезапустить JVM, вам необходимо

Как правило, не все параметры командной строки для команды «java» передаются на виртуальную машину Java. Таким образом, возвращаемые входные аргументы могут не включать все параметры командной строки.

С другой стороны: Вам не нужно.

Я рекомендую вам разработать ваше приложение, чтобы было легко чистить все, и после этого создать новый экземпляр вашего «основного» класса.

Многие приложения предназначены только для создания экземпляра в основном методе:

Используя этот шаблон, должно быть достаточно легко сделать что-то вроде:

и пусть launch() возвращает true тогда и только тогда, когда приложение было отключено таким образом, что его необходимо перезапустить.

Ответ 4

Вы можете сделать некоторые трюки с пользовательскими загрузчиками классов для загрузки, упаковки и запуска компонентов AWT, но это, вероятно, вызовет много головных болей в отношении цикла событий GUI.

Приложение AWT должно выйти из JVM с чем-то, отличным от RESTART_CODE, при «нормальном» завершении, которое не требует перезапуска.

Ответ 5

Eclipse обычно перезапускается после установки плагина. Они делают это, используя оболочку eclipse.exe(приложение запуска) для окон. Это приложение запускает ядро ​​ядра eclipse runner, и если приложение java eclipse завершается с помощью перезапуска кода, eclipse.exe перезапускает верстак. Вы можете создать аналогичный бит собственного кода, оболочки script или другой оболочки Java-кода для достижения перезапуска.

Ответ 6

Если вам действительно нужно перезагрузить приложение, вы можете написать отдельное приложение, чтобы запустить его.

Эта страница содержит множество различных примеров для разных сценариев:

Ответ 7

Несмотря на то, что этот вопрос старен и отвечает, я наткнулся на проблему с некоторыми решениями и решил добавить мое предложение в микс.

Проблема с некоторыми решениями заключается в том, что они строят одну командную строку. Это создает проблемы, когда некоторые параметры содержат пробелы, особенно java.home.

Например, в окнах строка

Может получиться что-то вроде этого: C:\Program Files\Java\jre7\bin\java

Поэтому мое решение создает команду как массив команд:

Ответ 8

Я сам изучал этот вопрос, когда наткнулся на этот вопрос.

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

В принципе, все сводится к файлу Ant script с одной задачей выполнения Java (см. здесь и здесь), вызывается из кода Java (см. here). Этот Java-код, который может быть запуском метода, может быть частью приложения, которое необходимо перезапустить. Приложение должно иметь зависимость от библиотеки Apache Ant (jar).

Когда приложение необходимо перезапустить, он должен вызывать метод запуска и выхода из виртуальной машины. Задача Ant java должна иметь параметры fork и spawn, установленные в true.

Вот пример Ant script:

Код метода запуска может выглядеть примерно так:

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

Ответ 9

Окно

/мин, чтобы запустить script в свернутом окне

^ & выйти в закрытое окно cmd после завершения

образец cmd script может быть

сон 10 сон в течение 10 секунд

Ответ 10

Просто добавьте информацию, которая отсутствует в других ответах.

Если procfs /proc/self/cmdline доступен

В системах с доступным /proc/self/cmdline это, вероятно, самый элегантный способ «перезапуска» текущего Java-процесса с Java. Ни один JNI не участвовал, и не было никаких предположений о путях и необходимых вещах.

В настоящее время многие системы UNIX, включая GNU/Linux (включая Android), имеют procfs Однако на некоторых, подобных FreeBSD, это устарело и поэтапно вне. Mac OS X является исключением в том смысле, что у нее нет procfs. Windows также не имеет procfs. Cygwin имеет procfs, но он невидим для Java, потому что он виден только приложениям, использующим библиотеки Cygwin вместо системных вызовов Windows, а Java не знает о Cygwin.

Не забудьте использовать ProcessBuilder.inheritIO()

Pitfall в Windows

Ответ 11

Старый вопрос и все такое. Но это еще один способ, который дает некоторые преимущества.

В Windows вы можете попросить планировщик задач снова запустить приложение для вас. Преимущество этого заключается в том, что вы ожидаете определенное количество времени до перезапуска приложения. Вы можете перейти к диспетчеру задач и удалить задачу, и она перестает повторяться.

Ответ 12

Подобно » улучшенному » ответу Yoda, но с дальнейшими улучшениями (как функциональными, читабельными, так и тестируемыми). Теперь он безопасен для запуска и перезапускается столько же раз, сколько задано количество аргументов программы.

V1.1 Bugfix: нулевой указатель, если JAVA_TOOL_OPTIONS не установлен

Ответ 13

Я думаю, вы действительно не хотите останавливать приложение, но «перезагрузите» его. Для этого вы можете использовать это и добавить свой «Reset» перед сном и после невидимого окна.

Источник

Многопоточность в Java: работа с потоками и полезные методы класса Thread

soc facebook red soc twitter red soc telegram red

Многопоточность в Java — это одновременное выполнение двух или более потоков для максимального использования центрального процессора (CPU — central processing unit). Каждый поток работает параллельно и не требует отдельной области памяти. К тому же, переключение контекста между потоками занимает меньше времени.

Процессы в Java: определение и функции

Что такое потоки

Поток — наименьшее составляющее процесса. Потоки могут выполняться параллельно друг с другом. Их также часто называют легковесными процессами. Они используют адресное пространство процесса и делят его с другими потоками.

Потоки могут контролироваться друг друга и общаться посредством методов wait(), notify(), notifyAll().

Состояния потоков

Потоки могут пребывать в нескольких состояниях:

Способы запуска потоков

Приложение, создающее экземпляр класса Thread, должно предоставить код, который будет работать в этом потоке. Существует два способа, чтобы добиться этого:

Обратите внимание, что оба примера вызывают Thread.start, чтобы запустить новый поток.

Какой из способов выбрать? Первый — с использованием объекта Runnable — более общий, потому что этот объект может превратить отличный от Thread класс в подкласс. Этот способ более гибкий и может использоваться для высокоуровневых API управления потоками.

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

Читайте также  Заполнить до отказа как пишется

Завершение процесса и потоки-демоны

В Java процесс завершается тогда, когда завершаются все его основные и дочерние потоки.

Потоки-демоны — это низкоприоритетные потоки, работающие в фоновом режиме для выполнения таких задач, как сбор «мусора»: они освобождают память неиспользованных объектов и очищают кэш. Большинство потоков JVM (Java Virtual Machine) являются потоками-демонами.

Свойства потоков-демонов:

Чтобы установить, является ли поток демоном, используется метод boolean isDaemon(). Если да, то он возвращает значение true, если нет, то — то значение false.

Завершение потоков

Завершение потока Java требует подготовки кода реализации потока. Класс Java Thread содержит метод stop(), но он помечен как deprecated. Оригинальный метод stop() не дает никаких гарантий относительно состояния, в котором поток остановили. То есть, все объекты Java, к которым у потока был доступ во время выполнения, останутся в неизвестном состоянии. Если другие потоки в приложении имели доступ к тем же объектам, то они могут неожиданно «сломаться».

Вместо вызова метода stop() нужно реализовать код потока, чтобы его остановить. Приведем пример класса с реализацией Runnable, который содержит дополнительный метод doStop(), посылающий Runnable сигнал остановиться. Runnable проверит его и остановит, когда будет готов.

Обратите внимание на методы doStop() и keepRunning(). Вызов doStop() происходит не из потока, выполняющего метод run() в MyRunnable.

Метод keepRunning() вызывается внутренней потоком, выполняющим метод run() MyRunnable. Поскольку метод doStop() не вызван, метод keepRunning() возвратит значение true, то есть поток, выполняющий метод run(), продолжит работать.

В примере сначала создается MyRunnable, а затем передается потоку и запускает его. Поток, выполняющий метод main() (главный поток), засыпает на 10 секунд и потом вызывает метод doStop() экземпляра класса MyRunnable. Впоследствии поток, выполняющий метод MyRunnable, остановится, потому что после того, как вызван doStop(), keepRunning() возвратит false.

Обратите внимание, если для реализация Runnable нужен не только метод run() (а например, еще метод stop() или pause()), реализацию Runnable больше нельзя будет создать с помощью лямбда-выражений. Понадобится кастомный класс или интерфейс, расширяющий Runnable, который содержит дополнительные методы и реализуется анонимным классом.

Метод Thread.sleep()

Поток может остановиться сам, вызвав статический метод Thread.sleep(). Thread.sleep() принимает в качестве параметра количество миллисекунд. Метод sleep() попытается заснуть на это количество времени перед возобновлениям выполнения. Thread sleep() не гарантирует абсолютной точности.

Приведем пример остановки потока Java на 10 секунд (10 тысяч миллисекунд) с помощью вызова метода Thread sleep():

Поток, выполняющий код, уснет примерно на 10 секунд.

Метод yield()

Предотвратить выполнение потока можно методом yield(): предположим, существует три потока t1, t2, and t3. Поток t1 выполняется процессором, а потоки t2 и t3 находятся в состоянии Ready/Runnable. Время выполнения для потока t1 — 5 часов, а для t2 – 5 минут.

Поскольку t1 закончит свое выполнение через 5 часов, t2 придется ждать все это время, чтобы закончить 5-минутную задачу. В таких случаях, когда один поток требует слишком много времени, чтобы завершить свое выполнение, нужен способ приостановить выполнение длинного потока в промежутке, если какая-то важная задача не завершена. Тут и поможет yield ().

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

Использование метода yield() :

Синтаксис:

Результат:

Метод join()

Метод join() экземпляра класса Thread используется для объединения начала выполнения одного потока с завершением выполнения другого потока. Это необходимо, чтобы один поток не начал выполняться до того, как завершится другой поток. Если метод join() вызывается на Thread, то выполняющийся в этот момент поток блокируется до момента, пока Thread не закончит выполнение.

Метод join() ждет не более указанного количества миллисекунд, пока поток умрет. Тайм-аут 0 (ноль) означает «ждать вечно».

Синтаксис:

Например:

Результат:

Из примера видно, что как только поток t1 завершает выполнение задачи, потоки t2 и t3 начинают выполнять свои задачи.

Приоритеты потоков

У каждого потока есть приоритет. Приоритет обозначается числом от 1 до 10. В большинстве случаев планировщик распределяет потоки относительно их приоритета (другими словами — происходит приоритетное планирование). Но это не гарантированно, поскольку он зависит от того, какое планирование выберет JVM.

Три константы, которые определяются в классе Thread:

1. public static int MIN_PRIORITY (значение равно 1);

2. public static int NORM_PRIORITY (дефолтный приоритет потока);

3. public static int MAX_PRIORITY (значение равно 10).

Пример приоритета потока:

Результат:

Некоторые полезные методы класса Thread

Имя потока – ассоциированная с ним строка, которая в некоторых случаях помогает понять, какой поток выполняет действие.

Источник

Debug в IDEA

1. Баг

У программистов есть свой сленг, хотя многие считают, что это технический жаргон. В любом случае, вам не избежать ни знакомства с ним, ни детального изучения. Так что начинайте втягиваться.

Однако, если программист считает, что программа, хоть и работает странно, но он именно так он и задумывал, обычно заявляет что-то типа «это не баг, это фича». Что породило кучу интернет-мемов.

original

В принципе причина неправильной работы может быть любая: ошибка в логике программы, опечатки, неверная архитектура программы, вплоть до проблем в компиляторе. В любом случае программистам нужно править и настоящие баги, и любые другие «недочеты», которые есть в программе.

История слова bug

Самой распространённой версией происхождения слова баг является такая легенда.

В сентябре 1945 года ученые Гарвардского Университета тестировали один из первых компьютеров — Mark II. Компьютер не работал, и в процессе проверки всех плат они нашли мотылька, застрявшего между контактами электромеханического реле.

Извлеченное насекомое было вклеено скотчем в технический дневник и сопровождено надписью, мол «баг найден и устранен».

Считается, что именно эта смешная история и послужила началом использования слова баг как обозначения ошибки, а слово дебаг (debug) стало синонимом устранения ошибок.

20 36

2. Отладка программы

Для устранения багов в своих программах программисты используют специальные программы-отладчики ( debugger ). Некоторые из этих программ умеют отлаживать даже машинный код.

Java-программисты для отладки ( debugging ) своих программ используют IDE. Такие как Intellij IDEA, Eclipse и Net Beans. IntelliJ IDEA на сегодняшний день является самой мощной IDE, поэтому мы рассмотрим процесс отладки на ее примере.

Intellij IDEA может запустить вашу программу в двух режимах:

Режимы запуска программы Иконка на панели Горячие клавиши
Обычное выполнение original Shift + F10
Запуск в режиме отладки original Shift + F9

С обычным режимом работы вы уже знакомы: программа запустится, отработает и завершится. А вот режим отладки несет для вас немало сюрпризов.

Режим отладки

Чтобы минимально овладеть искусством отладки программы, вам нужно изучить три вещи:

3. Точки остановки ( Break Points )

Чтобы поставить break point на определенной строке, нужно просто кликнуть в IDEA слева от этой строки. Пример:

original

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

original

4. Запуск программы в режиме отладки (дебага)

Если у вас в программе есть хотя бы одна точка остановки, вы можете запускать программу в режиме отладки ( Shift + F9 или «иконка с жуком»).

original

В верхней половине скриншота вы видите код программы с двумя точками остановки. Программа замерла на строке 5 — отмечена синей линией. Строка 5 еще не выполнилась: в консоль еще ничего не выводилось.

Вы можете снять вашу программу с паузы (продолжить ее выполнение), если нажмете кнопку Resume Program на панели слева снизу (или нажмете клавишу F9 ).

original

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

original

Программа остановилась на второй точке остановки, а в консоль выведены слова Привет и И – признак того, что из трех строк вывода на экран выполнились только две.

5. Пошаговое выполнение

Если вы хотите выполнять вашу программу построчно, вам нужно поставить break point в самом начале метода main() и запустить ее в режиме отладки.

Когда программа остановится, вы сможете начать построчное ее выполнение. Одно нажатие клавиши F8 – одна строка.

Вот как будет выглядеть наша программа после остановки и нажатия клавиши F8 один раз:

original

6. Пошаговое выполнение с заходом в методы

original

original

Источник

Своими силами
Adblock
detector