67,512
社区成员
发帖
与我相关
我的任务
分享
package jiekou;
public interface jiekou {
public void s();
public void s1();
public void testshow(String name);
}
package jiekou;
public class F {
public static F instance = new F();
public static jiekou jk;
public jiekou getJk(){
return instance.jk;
}
}
package jiekou;
public class testF {
public static void main(String[] args) {
// TODO Auto-generated method stub
jiekou jk1 = F.instance.getJk();
System.out.println("1="+jk1);
jiekou jk2= F.jk;
System.out.println("2="+jk2);
ThreadLocal<jiekou> jk3 = new ThreadLocal<jiekou>();
System.out.println("3="+jk3);
jk3.set(jk1);
jiekou jk4 = jk3.get();
System.out.println("4="+jk4);
}
}
public static jiekou jk;
是创建了一个接口的引用。
在程序使用的时候,需要明确一个实现类,
比如
jk = new jiekouImpl();
你的运行结果
运行结果如下:
1=null
2=null
3=java.lang.ThreadLocal@61de33
4=null
首先你要知道,你的输出是什么,jk1,jk2,jk4输出的都是内存地址,你并没有为jiekou创建对象(实现类)所以内存地址为null
jk3输出的[java.lang.ThreadLocal@61de33]这各是new ThreadLocal对象的内存地址。