我有一堂课
public final class GGGGG {
private final String str;
public GGGGG(final String str) {
this.str = str;
}
public void showElement(final String test){
System.out.println(this.str+test);
}
public static void main(String[] args) {
GGGGG hello = new GGGGG("hello");
final Test2 test2 = new Test2(hello::showElement);
test2.test();
hello = null;
test2.test();
}
static class Test2{
private final Consumer<String> consumer;
Test2(final Consumer<String> consumer) {
this.consumer = consumer;
}
public void test(){
this.consumer.accept(" world");
}
}
}
我不明白的是,在课堂上我有String str(状态)
我用方法引用创建了一个消费者,showElement 现在这个消费者已经引用了GGGGG实例。消费者是否保留对原始对象的引用或创建一个新实例,如果它是垃圾收集时相同的引用?
慕无忌1623718
相关分类