new与instance

new与instance

new与getinstance

  • new:

    • 一定要生成一个新对象,分配内存
    • 创建后只能当次使用
    • 是直接调用构造方法
  • getinstance

    • 是方法
    • 不一定要再次创建,可以把一个已存在的引用给你使用,这个在性能上优于new
    • 可以跨栈区域使用,或者远程跨区域使用。所以getInstance()通常是创建static静态实例方法的
    • 多用于单例模式
    • 对于抽象类要想对其实例化,只能使用getInstance方法,是不能new出来的。

new和newInstance

  • new

    • 直接创建一个类、不需要这个类加载过
    • 强类型(GC不会自动回收,只有所有的指向对象的引用被移除是才会被回收,若对象声明周期已经结束,但引用没有被移除,经常会出现内存溢出)
  • newInstance

    • 使用类加载机制创建对象
    • 创建类是这个类必须已经加载过且已经连接
    • 弱类型(GC是回收对象的限制条件很低,容易被回收)、低效率、只能调用无参构造。

    实现接口的类加载一般采用newInstance而不会使用new

发布了50 篇原创文章 · 获赞 40 · 访问量 4902

猜你喜欢

转载自blog.csdn.net/issunmingzhi/article/details/104051742