A. Java中成员变量分配在哪个空间
变量分为成员变量和局部变量;
成员变量又分为实例变量和静态变量;
实例变量在对象创建的时候分配内存空间,存储在堆内存中;
静态变量在类加载的时候分配内存空间,存储在元空间;
局部变量在方法执行时分配内存空间,存储在栈内存中。
B. java new一个对象时,它的方法在内存中吗他是怎样实现方法调用的
类信息在虚拟机的方法区中,对象信息在堆中。
你调用一个对象的方法时,它会到方法区找此对象对应的类信息,如果是调用方法,有一个方法表会让机器快速找到此方法的字节码,然后调用。
方法的执行过程是在虚拟机的栈里进行。
具体的过程挺复杂。要把方法区,堆,栈都讲清楚。
C. JAVA中类中的方法存储在什么地方
类加载时 方法信息保存在一块称为方法区的内存中, 并不随你创建对象而随对象保存于堆中。可参考《深入java虚拟机》前几章。
另参考(他人文章):
如果instance method也随着instance增加而增加的话,那内存消耗也太大了,为了做到共用一小段内存,Java 是根据this关键字做到的,比如:instance1.instanceMethod(); instance2.instanceMethod(); 在传递给对象参数的时候,Java 编译器自动先加上了一个this参数,它表示传递的是这个对象引用,虽然他们两个对象共用一个方法,但是他们的方法中所产生的数据是私有的,这是因为参数被传进来变成call stack内的entry,而各个对象都有不同call stack,所以不会混淆。其实调用每个非static方法时,Java 编译器都会自动的先加上当前调用此方法对象的参数,有时候在一个方法调用另一个方法,这时可以不用在前面加上this的,因为要传递的对象参数就是当前执行这个方法的对象。
D. Java中对象都是分配在堆上吗
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程
E. java中的方法代码存在了哪里
类的实例方法在内存中是只有一份,不过肯定不会是第一个对象中,如果是第一个对象的话,那么当第一个对象被销毁的时候,那么后面的对象就永远无法调用了...
类的实例方法存在一个专门的区叫方法区,事实上类刚装载的时候就被装载好了,不过它们在"睡眠",只是这些方法必须当有对象产生的时候才会"苏醒".(比如,一个输出类的成员变量的方法,如果连对象都没有,何来的输出成员变量).所以,方法在装载的时候就有了,但是不可用,因为它没有指象任何一个对象。
而静态的又不一样了,静态的东西存在静态区,他们和类是一个等级的,就是说只要类被装载,它们就可以直接用.(用类名来调用).他们不依赖与任何对象,所以也不能输出任何对象的成员属性.(除非成员属性也是静态的).
而你最后的一句话也是错的,"类的所有数据在内存中只有静态的才又空间".
当然不是,每个对象在new的时候都会在堆区中开辟内存,用来保存对象的属性和方法.(实际上方法保存的只是方法区的引用,如果保存的是方法本身,那么试想一下,有多少个对象就得有多少个方法,那么又和第一点中"实例方法在内存中只有一份拷贝"相矛盾了)
好了,事实上内存图很复杂和麻烦,算比较深的东西了,很多用JAVA多年的人也不太了解其原理,因为开发也不要用..
更多的问题可以去远标培训去问技术老师。

F. java的方法中new的对象存储在内存中那个区域
这个对象存在堆中,还是栈中?
答:堆,new一个对象,一定是在堆中
方法内部new出来的对象,在哪里存着?
答:堆,new出来对象的实例变量都存在堆上面。
栈,这个东西,需要理解为:线程运行时,才会创建,执行完,就没了。
Person p = new Person();
上面这段代码,在执行时,p压入栈,通过局部变量表,找到对应的【实例数据】,执行完毕后释放。
G. JAVA中实例化一个对象,成员方法中的参数会在哪分配内存(栈/堆)
成员方法?
JAVA中实例化一个对象 会实例该类中的一些成员变量
成员变量也要看是具体对象 还是基础变量 基础变量存储在 栈中
而具体对象引用存在于栈中 具体内容存在堆中
一些特殊的变量 比如静态变量会在类加载的时候在特殊的静态区分配
L楼主说是成员方法??? 实例化对象 对成员方法中的参数是不产生影响的 只有实例对象调用方法的时候 其具体涉及到的方法体内的局部变量才会在内存中分配
分配方式依然是: java基础变量 和java对象
基础变量存储在 栈中
而具体对象引用存在于栈中 具体内容存在堆中
H. JAVA中实例化一个对象,成员方法中的参数会在哪分配内存(栈/堆)
首先内存总体分为了4个部分,包括 stack segment 、heap segment、code segment 、data segment ;
其中我们程序中用关键字new出来的东西都是存放在heap segment;
程序中的局部变量存放在stack segment,这些局部变量是在具体方法执行结束之后,系统自动释放内存资源(而heap segment中的资源需要java垃圾回收机制来处理);
程序中的方法,是内存中的code segment中的,而且是多个对象 共享一个代码空间区域;
static静态变量,需要放在内存中的data segment中,
I. Java中,给对象中变量分配空间是在哪一步
方法中的变量在栈区 而实例话在堆区 当你在方法中定义变量的时候就会在栈区分配内存 而你实例化的时候 在堆中分配内存 当你方法运行结束的时候 垃圾回收器自己会处理栈中的变量 至于什么时候你就不用管了