共四块内存
共三块内存
PS:
凡是stack栈区的东西只能在一个函数内部使用
凡是heap堆区的东西能跨函数使用
类的成员变量有两种:
一种有static关键字修饰的变量,叫类变量或静态变量
另外一种没有static修饰的变量,叫实例变量。
两者区别:
类的静态变量在内存中只有一个,被类的所有实例共享。
类的每个实例都有相应的实例变量。每创建一个实例,java虚拟机就会给实例变量分配一次内存。
例如:
public class Counter {
public int count1=0;
public static int count2=0;
public static void main(String args[]){
Counter counterA=new Counter();
Counter counterB=new Counter();
counterA.count1++;
counterA.count2++;
counterB.count1++;
counterB.count2++;
System.out.println("counterA.count1="+counterA.count1);
System.out.println("counterA.count2="+counterA.count2);
System.out.println("counterB.count1="+counterB.count1);
System.out.println("counterB.count2="+counterB.count2);
}
}