{"@context":"http://schema.org","@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln","text":"Каков результат компиляции и выполнения программы (JDK до версии 6 включительно), если стартовым классом считать MainClass? \u003cpre\u003e\u003ccode class\u003d\"java\"\u003e\npublic class MainClass {\n    static {\n        MyClass m \u003d new MyClass();                  // 1\n        System.out.println(m.toString());           // 2\n        System.exit(0);\n    }\n}\n\nclass MyClass {\n    public String toString() {\n        return \"MyClass\";\n    }    \n}\n\u003c/code\u003e\u003c/pre\u003e","headline":"Каков результат компиляции и выполнения программы (JDK до версии 6 включительно), если стартовым классом счита","learningResourceType":["programming test","programming course","programming question"],"isPartOf":{"@type":"Course","@id":"https://codegalaxy.io/courses/java-ru","url":"https://codegalaxy.io/courses/java-ru","name":"Java Quiz","description":"Java - объектно-ориентированный кросс-платформенный язык программирования, предназначенный для удобства чтения и интероперабельности. Java обычно читается как легкая и простая версия языка Си++. Тем не менее, Java может использоваться как полная версия для создания приложений, которые могут работать на всех платформах, поддерживающих Java, без необходимости перекомпиляции. В 2020 году Java является самым популярным языком программирования, с которым работают более 9 миллионов разработчиков. \u003cbr\u003e\nЭтот обучающий курс полностью посвящен \u003cstrong\u003eJava языку\u003c/strong\u003e, где вы можете проверить свои знания и ответить на \u003cstrong\u003e вопросы интервью по Java\u003c/strong\u003e. Вы ответите на теоретические и практические вопросы, которые проверяют ваши навыки на понимание \u003cstrong\u003e Java-кода\u003c/strong\u003e и поиска ошибок.\n\u003cbr\u003e\nВы можете вернуться к этому java курсу когда захотите, так как он постоянно обновляется и добавляются новые вопросы и задачки!\n\nПереведено с помощью www.DeepL.com/Translator (бесплатная версия)","provider":{"@type":"Organization","@id":"https://codegalaxy.io","name":"CodeGalaxy","logo":{"@type":"ImageObject","url":"https://codegalaxy.io/app/assets/images/g_code.png","height":"513","width":"513"},"description":"Project aimed to provide new ways in learning programming languages and preparing for the interview."},"image":{"@type":"ImageObject","url":"https://codegalaxy.io/app/assets/images/fb/16x9/share-java-ru.png","height":"630","width":"1200"}},"image":{"@type":"ImageObject","url":"https://codegalaxy.io/app/assets/images/fb/16x9/share-java-ru.png","height":"630","width":"1200"},"answerCount":5,"potentialAction":[{"@type":"AssessAction","object":{"@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln"}},{"@type":"ChooseAction","actionOption":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19656","url":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19656","text":"Ошибка компиляции, так как ни в одном из классов не определен метод main()","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19657","url":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19657","text":"Ошибка компиляции в строках 1 и 2, так как нельзя создавать и обращаться к нестатическим данным в статическом блоке.","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19658","url":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19658","text":"Программа откомпилируется, но во время выполнения произодет исключение: java.lang.NoSuchMethodError: main","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19659","url":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19659","text":"Программа выполнится без ошибок и будет выведено \"MyClass\"","dateCreated":"2020-02-06"}],"object":{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19659","url":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19659","text":"Программа выполнится без ошибок и будет выведено \"MyClass\"","dateCreated":"2020-02-06"}}],"audience":{"@type":"EducationalAudience","audienceType":["developers","programmers"],"educationalRole":["Specialist","Student"],"alternateName":"Java Programmers","name":"Java Developers","sameAs":["https://en.wikipedia.org/wiki/Programmer","https://en.wikipedia.org/wiki/Software_developer","https://en.wikipedia.org/wiki/Software_engineer","https://en.wikipedia.org/wiki/Web_developer"]},"dateCreated":"2020-02-06","acceptedAnswer":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#js-expander-trigger","url":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#js-expander-trigger","text":"В Java 6 запуск класса происходит в следующей последовательности:\u003cbr\u003e\n1) Происходит загрузка класса MainClass;\u003cbr\u003e\n2) Выполняется инициализация класса, при этом выполненяются блоки статической инициализации;\u003cbr\u003e\n3) И после этого JVM могла бы попытаться вызвать метод main(), которого в классе MainClass нет. Но в статическом блоке уже произошло завершение программы вызовом System.exit(0). \u003cbr\u003e\n\u003cbr\u003e\nВ Java 7 последовательность действий немного изменилась – резолвинг метода main выполняется до инициализации класса. Поэтому сразу выбрасывается NoSuchMethodException, в обработчике которого выводится сообщение\u003cbr\u003e\nError: Main method not found in class MainClass, please define the main method as:\u003cbr\u003e\npublic static void main(String[] args)","about":{"@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln"},"upvoteCount":1,"dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19659","url":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19659","text":"Программа выполнится без ошибок и будет выведено \"MyClass\"","dateCreated":"2020-02-06","upvoteCount":1}],"suggestedAnswer":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19656","url":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19656","text":"Ошибка компиляции, так как ни в одном из классов не определен метод main()","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19657","url":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19657","text":"Ошибка компиляции в строках 1 и 2, так как нельзя создавать и обращаться к нестатическим данным в статическом блоке.","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19658","url":"https://codegalaxy.io/courses/java-ru/questions/133d6e0cbb8241a0bfabd606cde21955/kakov-rezultat-kompilyatsii-i-vypolneniya-programmy-jdk-do-versii-6-vklyuchiteln#19658","text":"Программа откомпилируется, но во время выполнения произодет исключение: java.lang.NoSuchMethodError: main","dateCreated":"2020-02-06","upvoteCount":0}]}