public class cw_t{
public int st(String s){
String s1="";
String s2="";
s1=s;
return s1;
}
}
针对这个类,如果new cw_t()的话,应该只会给st()方法分配一个入口地址
以后若再new时
这个方法入口地址应该不会变的
我是这样理解的
如果要调用这个方法,请问,这个方法内的变量是不是才被分配内存空间哦?,调用完后,这些变量的空间被收回?我这样理解对不对?
另外,如果,有不同的用户同时new这个对象的时候,然后同时调用这个方法,
比方说一个用户 new cw_t().st("001")
另一个用户new cw_t().st("002");
我想问下,这个方法内的变量空间分配会不会出现混乱哦?因为他们有一个相同的入口地址哦

解决方案 »

  1.   

    每次new都会创建一个类的实例
    多个用户实例化类是不冲突的
      

  2.   

    你这个方法应该不对吧.申明是返回int型,可你返加的是String类型.
      

  3.   

    调用方法的时候会被分配空间,因为根据jvm,Java虚拟机的原理就是根据你的需要调用你想要的,这个时候就会分配相应的空间给它,当程序结束后,这些空间都会被垃圾收回机制收回
    不会混乱,他们是相同的地址,但是每个用户取得是方法,拿有所需嘛!拿出有先后,一个用户读取了之后,这个程序会在服务器的内存存在一段时间,下次拿的时候还是在内存里直接拿出,不会有混乱
      

  4.   

    函数都是接口,而且正是你所理解的,是统一的一个接口1、如果要调用这个方法,请问,这个方法内的变量是不是才被分配内存空间哦?,调用完后,这些变量的空间被收回?我这样理解对不对?如果调用这个方法的时候,这个方法内的变量会被分配到内存空间,而且是暂时的,当该方法结束后,变量的空间被收回。
    2、另外,如果,有不同的用户同时new这个对象的时候,然后同时调用这个方法,比方说一个用户 new cw_t().st("001") 
    另一个用户new cw_t().st("002"); 
    我想问下,这个方法内的变量空间分配会不会出现混乱哦?因为他们有一个相同的入口地址哦 不会出现混乱,虽然是一个接口,但分配的内存空间的位置不一样,你可以从这个角度来想,一个类中,声明了一个变量
    class A{
    int a;
    }
    这时候你给类建立2个对象
    A a1=new A();   
    A a2=new A();
    这个时候类A中的变量a这样区分 a1.a 和a2.a
    所以不混乱。
      

  5.   

    使用new 已经分配空间了每次new都会创建一个类的实例 
    多个用户实例化类是不冲突的