前言:
现时各位老铁们对“java调用静态方法”都比较看重,看官们都需要学习一些“java调用静态方法”的相关文章。那么小编也在网摘上汇集了一些关于“java调用静态方法””的相关文章,希望各位老铁们能喜欢,咱们快快来学习一下吧!一、直接上代码,模仿FTP客户端
package com.share.test;public class FtpClientSingleton { /** * 私有构造函数 */ private FtpClientSingleton() { System.out.println("我被初始化了...."+Thread.currentThread().getId()); } public void showMsg(){ System.out.println("方法被调用...."+Thread.currentThread().getId()); } /** * 对外提供公共的访问方法 */ public static FtpClientSingleton getInstance() { System.out.println("我被使用............"+Thread.currentThread().getId()); return FtpClientSingletonHolder.INSTANCE; } /** * 写一个静态内部类,里面实例化外部类,jvm 类加载是单例的,只加载一次 */ private static class FtpClientSingletonHolder { private static final FtpClientSingleton INSTANCE = new FtpClientSingleton(); }}
二、开始测试
package com.share.test;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class SpringBootWebApplication { public static void main(String[] args) {// FtpClientSingleton.getInstance().showMsg();// FtpClientSingleton.getInstance().showMsg(); // 创建一个可缓存线程池 ExecutorService cachedThreadPool = Executors.newCachedThreadPool(); for (int i = 0; i < 10; i++) { cachedThreadPool.execute(new Runnable() { public void run() { FtpClientSingleton.getInstance().showMsg(); } }); } }}
三、看结果
四、总结
使用内部静态类方式实现单例,是懒加载方式,而且是线程安全的(jvm类加载保证线程安全)。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java调用静态方法