[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-obyasnite-vyrazhenie-system-out-println":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},340,"obyasnite-vyrazhenie-system-out-println",10,"java-8","Java 8+","☕","Объясните выражение System.out::println","Выражение `System.out::println` является ссылкой на метод экземпляра (instance method reference). Здесь `System.out` — это конкретный объект типа `PrintStream`, хранящийся в статическом поле `out` класса `System`, а `println` — вызываемый метод этого объекта.\n\nЭта ссылка эквивалентна лямбда-выражению `x -> System.out.println(x)`. Она часто используется как аргумент `forEach()`:\n\n```java\nList.of(\"a\", \"b\", \"c\").forEach(System.out::println);\n```\n\nТип функционального интерфейса определяется контекстом: в случае `forEach()` это `Consumer\u003CT>`, поскольку `println` принимает аргумент и ничего не возвращает. Компилятор автоматически подбирает нужную перегрузку `println` на основе типа элементов.\n\n> **На собеседовании:** ключевое слово здесь — «ссылка на метод конкретного экземпляра». Уточните, что `System.out` — не класс, а объект, и что тип ссылки зависит от контекста использования.","","junior",[15],"java8",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Объясните выражение System.out::println — Gymterview","Выражение `System.out::println` является ссылкой на метод экземпляра (instance method reference). Здесь `System.out` — это конкретный объект типа `PrintStream`,","Выражение `System.out::println` является ссылкой на метод экземпляра (instance method reference). Здесь `System.out` — э",[15,13],"Выражение `System.out::println` является ссылкой на метод экземпляра (instance method reference). Здесь `System.out` — это конкретный объект типа `PrintStream`, хранящийся в статическом поле `out` класса `System`, а `println` — вызываемый метод этого объекта.",true]