{"@context":"http://schema.org","@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user","text":"Что будет в результате компиляции и исполнения следующего кода:\n\u003cpre\u003e\u003ccode class\u003d\"java\"\u003e\nclass User {\n    private int id \u003d 0;\n    private String name;\n    private String surname;\n    \n    public User() {}\n    \n    public User(int id, String name, String surname) {\n        this.id \u003d id;\n        this.name \u003d name;\n        this.surname \u003d surname;\n    }\n\n    @Override\n    public boolean equals(Object obj) {\n        \n        if (this \u003d\u003d obj)\n            return true;\n        \n        if (obj \u003d\u003d null || !getClass().equals(obj.getClass()))\n            return false;\n        \n        User u \u003d (User) obj;\n        \n        return id \u003d\u003d u.id\n            \u0026amp;\u0026amp; name \u003d\u003d u.name || (name !\u003d null \u0026amp;\u0026amp; name.equals(u.name))\n            \u0026amp;\u0026amp; surname \u003d\u003d u.surname || (surname !\u003d null \u0026amp;\u0026amp; surname.equals(u.surname));\n        \n    }\n    \n    @Override\n    public int hashCode() {\n        \n        return id +\n            name \u003d\u003d null ? 0 : name.hashCode() +\n            surname \u003d\u003d null ? 0 : surname.hashCode();\n    }\n    \n    public static void main(String args[]) {\n\n        User u1 \u003d new User(12, \"name\", null);\n        User u2 \u003d new User(12, null, \"name\");\n        \n        System.out.println(u1.hashCode() \u003d\u003d u2.hashCode());\n        System.out.println(u1.equals(u2));\n    }\n}\n\u003c/code\u003e\u003c/pre\u003e","headline":"Что будет в результате компиляции и исполнения следующего кода:\n\u003cpre\u003e\u003ccode class\u003d\"java\"\u003e\nclass User {\n    priv","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":7,"potentialAction":[{"@type":"AssessAction","object":{"@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user"}},{"@type":"ChooseAction","actionOption":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20976","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20976","text":"true\u003cbr\u003e\ntrue","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20977","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20977","text":"false\u003cbr\u003e\nfalse","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20978","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20978","text":"true\u003cbr\u003e\nfalse","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20979","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20979","text":"false\u003cbr\u003e\ntrue","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20980","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20980","text":"Ошибка компиляции","dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20981","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20981","text":"Ошибка исполнения","dateCreated":"2020-02-06"}],"object":{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20981","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20981","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/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#js-expander-trigger","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#js-expander-trigger","text":"Фактический ход выполнения метода hashCode:\n\u003cpre\u003e\u003ccode class\u003d\"java\"\u003e\nreturn ((id + name) \u003d\u003d null ? 0 : name.hashCode() + surname) \u003d\u003d null ? 0 : surname.hashCode();\n\u003c/code\u003e\u003c/pre\u003e\nИз-за этого null-поля типа String конкатенируются с цифрами и проходят проверку на null. Если написать:\n\u003cpre\u003e\u003ccode class\u003d\"java\"\u003e\nreturn id +\n    (name \u003d\u003d null ? 0 : name.hashCode()) +\n    (surname \u003d\u003d null ? 0 : surname.hashCode());\n\u003c/code\u003e\u003c/pre\u003e\nто выполнение пройдёт нормально и результат будет:\u003cbr\u003e\ntrue\u003cbr\u003e\nfalse","about":{"@type":"Question","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user"},"upvoteCount":1,"dateCreated":"2020-02-06"},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20981","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20981","text":"Ошибка исполнения","dateCreated":"2020-02-06","upvoteCount":1}],"suggestedAnswer":[{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20976","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20976","text":"true\u003cbr\u003e\ntrue","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20977","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20977","text":"false\u003cbr\u003e\nfalse","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20978","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20978","text":"true\u003cbr\u003e\nfalse","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20979","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20979","text":"false\u003cbr\u003e\ntrue","dateCreated":"2020-02-06","upvoteCount":0},{"@type":"Answer","@id":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20980","url":"https://codegalaxy.io/courses/java-ru/questions/158344a1598c4700a2edb7ad58daa4e9/chto-budet-v-rezultate-kompilyatsii-i-ispolneniya-sleduyushchego-koda-class-user#20980","text":"Ошибка компиляции","dateCreated":"2020-02-06","upvoteCount":0}]}