java中new与static分析

抱怨java的new浪费了太多的内存,应该大量的使用static
前半句在某些情况下正确,后半句绝对错误。

说这话的是完全不懂对象,完全没有OO基础知识,但是这些人还在从事Java/.NET等OO软件开发,相当于外行人冒充内行,可见当前中国软件业水平多么低下。

为什么说这些程序员完全不懂OO呢?
因为他们只知道对象两个表面含义,却不懂对象背后的含义,对象重要特征是什么?对象重要的特征就是有生命的,有scope的,有生命周期的,这其实是一个很朴素的哲学思想,没有永垂不朽的东西,任何物体都是有生命的。

既然,对象有生命,那就当然有生有死,在java中,对象什么时候死已经无需我们操心,因为有垃圾回收机制,我们程序员只要决定对象什么时候生就可以,也就是对象什么时候创建,以何种方式创建。

对象可以new方式创建,也可以使用创建模式创建,方式很多,Ioc模式的诞生,特别是自动配对auto wiring的Ioc诞生,让对象的创建也无需我们来编码了,这更大大解决程序员的软件开发生产力,这也就是Jdon On Rails为什么快速的原因之一。

回到对象的生命周期上来,使用静态实际就是变态的延长对象的生命周期,虽然也解放了程序员,无需程序员照顾对象创建,但是这是一种错误的解放,是一种虽然简单,但是方向完全错误,可能导致更大性能陷阱的解决方式,这个我已经在单例是邪恶等帖子中反复表述,因为我们现在的软件是一个多线程环境,如果你使用静态,不但导致非OO系统,到处是长命百岁的对象,系统难于维护;更重要不小心就导致多线程变成单线程系统,也就是单用户系统,某个时刻只能一个用户操作这个系统。换句话说:就是系统缓慢,人操作一多就死机。

你可能感兴趣的:(JAVA学习,java,多线程,ioc,oo,rails)