android javaee-这个单例有问题吗?欢迎大家提供讨论。

问题描述

这个单例有问题吗?欢迎大家提供讨论。

单例很简单,一般也都不这么写,但是真的这么写,又有啥问题呢?欢迎大家积极提供意见。

 public class PersonCreate {
    private static PersonCreate referent = new PersonCreate();
    private static SoftReference<PersonCreate> softRef = new SoftReference<PersonCreate>(referent);

    private PersonCreate() {
    }

    public static PersonCreate getInstance() {
        referent = null;
        PersonCreate pc = softRef.get();
        if (pc != null) {
            return pc;
        } else {
            referent = new PersonCreate();
            softRef = new SoftReference<PersonCreate>(referent);
            referent = null;
        }
        return softRef.get();
    }

    public void print() {
        System.out.println("hello");
    }
}

解决方案

不这样就不具有封装的效果了 都是静态的调用 如果项目比较大容易出差错

解决方案二:

我看到的问题是关于静态变量的。
做了集群,分布后,静态变量 会出现不同步的问题。

时间: 2024-11-10 05:26:00

android javaee-这个单例有问题吗?欢迎大家提供讨论。的相关文章

Android OKHTTP的单例和再封装的实例

Android OKHTTP的单例和再封装的实例 /** * Created by zm on 16-2-1 * okhttp的再封装,对于2.x版本,3.x版本将原有对okhttpclient配置 * 改成了builder模式配 * 置,对于超时.代理.dns,okhttp已经做好了配置, * 若不需要特殊配置,可以跳过 */ public class OkHttpUtil { private static OkHttpClient singleton; //非常有必要,要不此类还是可以被ne

《Android应用开发攻略》——2.3 作为“单例”访问Android应用程序对象

2.3 作为"单例"访问Android应用程序对象 Adrian Cowham2.3.1 问题 你需要从Android应用程序中访问"全局"数据.2.3.2 解决方案 最好的解决方案是子类化android.app.Application,把它作为一个有静态存取方法的单例处理.每个Android应用在生命周期中都有一个android.app.Application实例.如果选择子类化android.app.Application,Android将创建类的一个实例,并在

Android自定义单例AlertDialog详解

当Android开发处理错误信息时,经常会以Dialog的形式显示错误信息,但是每次都new一个Dialog,很麻烦,也增加程序的开销,所以今天就分享一种自定义单例AlertDialog public class AlertDialog { private static AlertDialog alertDialog = null; private Context context; private Dialog dialog; private LinearLayout lLayout_bg; p

okhttp-单例Okhttp能像单例httpclient一样不需要我们手动去维护cookie吗?

问题描述 单例Okhttp能像单例httpclient一样不需要我们手动去维护cookie吗? android 6.0sdk移除了apache的httpclient,volley必须得手动维护cookie,网上有文章说Okhttp支持cookies维护,但我有个疑问,单例Okhttp能像单例httpclient一样不需要我们手动去维护cookie吗?多谢解答 解决方案 最好用httpclient,它比较完备. 解决方案二: HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了

类加载器与单例

当使用不同的类加载器时,也会使单例失效,如下:  单例为:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public final class Singleton{           private static final Singleton instance=new Singleton();           private Singleton(){                 System.out.println("执行构造函数");      

(单例设计模式中)懒汉式与饿汉式在多线程中的不同

/*  目的:分析一下单例设计模式中,懒汉式与饿汉式在多线程中的不同!  开发时我们一般选择饿汉式,因为它简单明了,多线程中不会出现安全问题!  而饿汉式需要我们自己处理程序中存在的安全隐患,但是饿汉式的程序技术含量更高! */ /* class SinglePerson implements Runnable{    private static SinglePerson ss = new SinglePerson("hjz", 22);//恶汉式    private int ag

PHP单例:只在整个页面周期内唯一

由于asp.net是编译型的,所以单例一直会存在于这个应用程序的生命周期里,真正可以做到这个实例在应用程序生命周期中的唯一性. 单例模式的存在在一些情况下是比较有意义的,如BlogEngine的站点配置就是采用的单例模式,而且它的载入和保存的代码是相当经典的,有兴趣可以看看它的源代码. 由于asp.net是编译型的,所以单例一直会存在于这个应用程序的生命周期里,真正可以做到这个实例在应用程序生命周期中的唯一性. php的单例模式的实现大致如下: class Stat{       static

设计模式C#描述——单例与多例模式

设计 设计模式C#描述--单例与多例模式 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 单例模式有以下特点: 单例类只能有一个实例. 单例类必须自己创建自己的唯一实例. 单例类必须给所有其他对象提供这一实例. 一个典型的单例类的实现如下所示:其中构造子私有表示子类不能被继承. public class Singleton { private static Singleton m_instance = null; private

Ruby设计模式透析:单例(Singleton)

写软件的时候经常需要用到打印日志功能,可以帮助你调试和定位问题,项目上线后还可以帮助你 分析数据,但是Ruby原生带有的puts方法却很少在真正的项目开发中使用. 为什么作为Ruby新 手神器的puts,到了真正项目开发当中会被唾弃呢?其实只要细细分析,你就会发现它的很多弊端.比 如不可控制,所有的日志都会在项目上线后照常打印,从而降低运行效率:又或者不能将日志记录到本 地文件,一旦打印被清除,日志将再也找不回来:再或者打印的内容没有Tag区分,你将很难辨别这一 行日志是在哪个类里打印的. 你的