专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

java单例使用示例

1、立即加载/饿汉模式


/** * 立即加载/饿汉模式 */ public class StarvingModelSingleton { private static StarvingModelSingleton instance = new StarvingModelSingleton(); private StarvingModelSingleton() { } public static StarvingModelSingleton getInstance() { return instance; } public void doSomeThing() { System.out.println(">>> StarvingModelSingleton do some things"); } }

2、延迟加载/懒汉模式


/** * 延迟加载/懒汉模式 */ public class SlackerModelSingleton { private static SlackerModelSingleton instance; private SlackerModelSingleton() { } public static SlackerModelSingleton getInstance() { if (instance == null) { synchronized (SlackerModelSingleton.class) { if (instance == null) { instance = new SlackerModelSingleton(); } } } return instance; } public void doSomeThing() { System.out.println(">>> SlackerModelSingleton do some things"); } }

3、用Enum实现单例示例


import java.sql.Connection; import java.sql.DriverManager; /** * 用Enum实现示例 */ public class EnumModelSingleton { public static Connection getInstance() { return EnumSingleton.SingletonFactory.getConnection(); } public enum EnumSingleton { SingletonFactory; private Connection connection; //枚举 private EnumSingleton() { try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC", "root", "123456"); } catch (Exception e) { e.printStackTrace(); } } public Connection getConnection() { return connection; } } }

使用示例(JacksonUtils使用示例)


@Slf4j public class JacksonUtils { private static ObjectMapper mapper; private JacksonUtils() { mapper = ObjectMapperSingleton.ObjectMapperFactory.getMapper(); } private enum ObjectMapperSingleton { ObjectMapperFactory; private ObjectMapper mapper; private ObjectMapperSingleton() { mapper = new ObjectMapper(); mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); mapper.setSerializationInclusion(JsonInclude.Include.ALWAYS); mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); } public ObjectMapper getMapper() { return mapper; } } public static Optional<String> obj2Str(Object obj) { try { if (obj != null) { if (obj.getClass() == String.class) { return Optional.of(obj.toString()); } return Optional.ofNullable(mapper.writeValueAsString(obj)); } } catch (Exception e) { log.error("Conversion object exception", e); } return Optional.empty(); } ...... }

代码:https://gitee.com/lion123/springboot-thread-demo

文章永久链接:https://tech.souyunku.com/25012

未经允许不得转载:搜云库技术团队 » java单例使用示例

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们