1貌似STRUTS是一个ACTION对应多个REQUEST的, 所以线程不安全。
那么,当初servlet是怎样设计, 来保证线程安全问题的呢?2而STRUTS2是一个ACTION对应一个REQUEST的, 保证了线程安全, 但会不会特别耗用内存呢?3再有就是,是不是说, 用反射机制创建对象比起直接NEW一个对象, 这样管理内存比较好?为啥? 

解决方案 »

  1.   

    Servlet也不是线程安全的,
    会不会特别耗,不知道了但是肯定比以前耗费就是了,但是值得不值得,是有目共睹的。反射比new带来的是动态性啊,这样通过Xml文件的配置,指出Class的Name,你就可以实例化了,这多好。
    而new Type,这个Type在编译期间,就要固定下来啊。~
      

  2.   

    servlet本身也不保证线程安全严格地说,struts1是所有某个Action请求共享该Action一个实例,而struts2则是每个请求创建该Action的实例。struts2理论上会比struts1多占用内存。但内存似乎不是现在应用设计特别注意的,现在内存也比较便宜了,不过份就是了。保证线程安全相对而言,要重要的多。反射机制和内存管理没有关系。反射机制主要追求的是对象的灵活性,使Java作为静态语言获得某些动态语言的灵活性。
      

  3.   

    http://hi.baidu.com/tanjian/blog/item/f0b710dfccfbac16632798dc.html
    哥们,看看吧~!
      

  4.   

    反射机制肯定比new消耗内存  至于为什么就要百度之了
      

  5.   

    回答你第三个问题。
    反射来生成创建对象的话要有一个类读取的过程,这是相当于要把类读取到内存中,然后才NEW。
    内存消耗要比直接NEW要大~
      

  6.   

    自己再顶一下, 先不结贴。呵呵。知道STRUTS1就是SERVLET。也知道Class.forName是反射【SPRING的getApplicationContexgt也是】。不希望自己只是个用工具的家伙, 我也有自己的灵魂。语气重了点, 呵呵。