{"@context":"http://schema.org","@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s","text":"Что будет напечатано следующим кодом для JDK \u003e 7?\n\u003cpre\u003e\u003ccode class\u003d\"java\"\u003e\npublic class Main { \n    public static void var(Integer x, int y) { \n        System.out.println(\"Integer int\"); \n    } \n \n    public static void var(Object... x) { \n        System.out.println(\"Object\"); \n    } \n \n    public static void var(int... x) { \n        System.out.println(\"int... x\"); \n    } \n \n    public static void var(Integer... x) { \n        System.out.println(\"Integer...\"); \n    } \n \n    public static void main(String... args) {  \n        byte i \u003d 0; \n        Integer i2 \u003d 127; \n        var(i, i2); \n    } \n}\n\u003c/code\u003e\u003c/pre\u003e","headline":"Что будет напечатано следующим кодом для JDK \u003e 7?\n\u003cpre\u003e\u003ccode class\u003d\"java\"\u003e\npublic class Main { \n    public sta","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":6,"potentialAction":[{"@type":"AssessAction","object":{"@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s"}},{"@type":"ChooseAction","actionOption":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21076","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21076","text":"Integer int    ","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21077","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21077","text":"Object","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21078","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21078","text":"Integer...","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21079","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21079","text":"int... x","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21080","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21080","text":"Ошибка компиляции","dateCreated":"2020-02-06"}],"object":{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21080","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21080","text":"Ошибка компиляции","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/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#js-expander-trigger","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#js-expander-trigger","text":"\u003cp\u003eЕсли в классе отсутствует метод, типы формальных параметров которого в точности совпадают с типами фактических аргументов, то компилятор пытается применить следующие преобразования:\u003c/p\u003e\n\n\u003cp\u003e1a. Расширение примитивного типа, например, byte -\u0026gt; int\u003cbr\u003e\n1b. Расширение ссылочного типа, например, Integer -\u0026gt; Object\u003c/p\u003e\n\n\u003cp\u003e2a. Unboxing conversion (с возможным расширением примитивного типа), например, Integer -\u0026gt; int\u003cbr\u003e\n2b. Boxing conversion (с возможным расширением ссылочного типа), например, byte -\u0026gt; Byte -\u0026gt; Object\u003c/p\u003e\n\n\u003cp\u003eВидно, что никакими из перечисленных преобразований нельзя из пары (byte, Integer) получить пару (Integer, int)\u003cbr\u003e\nУже после перечисленных преобразований компилятор пытается применить varargs.\u003c/p\u003e\n\n\u003cp\u003eВ данном примере это возможно двумя способами:\u003cbr\u003e\n\n(byte, Integer) -\u0026gt; ( (1a), (2a) ) -\u0026gt; (int, int) -\u0026gt; (int ...)\n(byte, Integer) -\u0026gt; ( (2b), (1b) ) -\u0026gt; (Object, Object) -\u0026gt; (Object ...)\u003c/p\u003e\n\n\u003cp\u003eВ данной ситуации JDK6 действует с нарушением спецификации и генерирует вызов метода (int ...).\nВ JDK7 эта ошибка уже исправлена и компилятор выдаёт ошибку \"reference to var is ambiguous, both method var(Object...) in Main and method var(int...) in Main match\".\u003c/p\u003e\n\n\u003cp\u003eПолучается, что ответ \"int... x\" верен только для JDK6, а для JDK7 правильным будет ответ \"Ошибка компиляции\"\u003c/p\u003e","about":{"@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s"},"upvoteCount":1,"dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21080","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21080","text":"Ошибка компиляции","dateCreated":"2020-02-06","upvoteCount":1}],"suggestedAnswer":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21076","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21076","text":"Integer int    ","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21077","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21077","text":"Object","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21078","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21078","text":"Integer...","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21079","url":"https://codegalaxy.io/courses/java-ru/questions/18440986fdb843c2b12acae27a5cd551/chto-budet-napechatano-sleduyushchim-kodom-dlya-jdk-7-public-class-main-public-s#21079","text":"int... x","dateCreated":"2020-02-06","upvoteCount":0}]}