比如我写了一个类,放到tomcat的web apps下,然后通过别的客户端访问这个类中的方法。如:public class test()
{
  public String hello()
  {
    return "hello";
  }
}那我在客户端访问hello一次,是不是test类就要被初始化一次?还是tomcat服务器初始化类以后就留在内存中?如果想让它一经初始化就留在内存里该怎么做?

解决方案 »

  1.   

    看你怎么调用了,如果没有使用其他框架,调用的时候new,就是新初始化一个。
    可以改成static的,或者单例模式。
      

  2.   

    果然,刚才测试了public class test()
    {
      int i= 0;
      public String hello()
      {
        return Integer.toString(i++);
      }
    }用flex的remote-object调用,每次都返回0.说明每调用一次就被构造一次,有什么办法让它只构造一次。
      

  3.   

    关键是,你想干什么呢?
    如果想只被构造一次,那你直接写成一个servlet不就行了么。
    如果想保存一些数据的话,可以用文件或者数据库。
      

  4.   

    你要实现什么需求的功能,
     要么该单身,要么有spring ioc来管理是否每次请求都new一个新的
      

  5.   

    简单,用单例模式:
    public class test()
    {
      test t = null;
      private int i= 0;  private test() {
      }  public static test getInstance() {
        if (t == null)
          t = new test();    return t;
      }  public String hello()
      {
        return Integer.toString(i++);
      }
    }
    每次要执行hello()时,直接调test.hello()就行了。
      

  6.   

    楼上的单例,test t = null 应该初始化为static变量吧
      

  7.   

    我用了这种没有用啊,说明一下我用的是blazeds让flex与java通信,blazeds是什么原理啊,我看到有什么spring、servelet的技术,原来没搞过j2ee不懂啊。blazeds只要配置个remote-object就行了,然后把相关的类拷到tomcat文件夹下运行,我试了下getInstance没被调用过,一直调用的默认的构造函数。
      

  8.   

    我用你的是改成了static,不过没用啊,tomcat不调用那个getInstance()
      

  9.   

    这个问题可能和blaze ds有关,谁熟悉这东西啊?