常见的单例模式实现方式主要有懒汉式和饿汉式。
懒汉式是在第一次调用获取实例的方法时才创建实例。优点是实现相对简单,延迟了对象的创建,节省了内存。但可能存在线程安全问题,如果在多线程环境下没有正确处理同步,可能会创建多个实例。
饿汉式则是在类加载时就创建实例。优点是线程安全,不会出现多实例的情况。缺点是不管是否使用,实例都会被创建,可能造成一定的资源浪费。
此外,还有双重检查锁式单例、静态内部类式单例等。双重检查锁式单例通过两次检查实例是否为空以及同步锁来优化性能和保证线程安全。静态内部类式单例利用了类加载机制实现线程安全,同时延迟了实例的创建。