java静态和非静态的调用 java中,静态方法被调用是,存储在内存的哪个区域?是栈?还是放大区?还是两者都有?
java中,静态方法被调用是,存储在内存的哪个区域?是栈?还是放大区?还是两者都有?堆区域:1。存储所有对象,每个对象都包含相应的类信息。(该类的目的是获取操作说明)2。JVM中的所有线程只共享一个堆
java中,静态方法被调用是,存储在内存的哪个区域?是栈?还是放大区?还是两者都有?
堆区域:
1。存储所有对象,每个对象都包含相应的类信息。(该类的目的是获取操作说明)
2。JVM中的所有线程只共享一个堆。堆不存储基本类型和对象引用,只存储对象本身的堆栈:1。每个线程都包含一个堆栈,它只存储基本数据类型和自定义对象的引用(而不是对象),对象存储在heap 2中。每个堆栈中的数据(原始类型和对象引用)都是私有的,其他堆栈无法访问它。
3. 堆栈分为三个部分:基本类型变量区、执行环境上下文和操作指令区。方法区:1。它也被称为静态区域。和堆一样,它也被所有线程共享。方法区域包含所有类和静态变量。2方法区域包含在整个程序中总是唯一的元素,例如类和静态变量。
java非静态方法可以调用静态变量吗?
当然。
1. 静态成员变量和静态成员方法属于类而不是特定实例。静态成员(包括属性和方法)已在类加载阶段初始化,因此当实例访问静态成员时,静态成员必须已经存在,以便可以访问。
2. 另一方面,如果让静态方法访问实例成员,它将不起作用,因为实例成员的初始化在静态成员之后