Java中的堆内存与栈内存

时间:2020-12-04 15:14:11

1、栈内存用来存放一些基本类型的变量、数组和对象的引用;堆内存主要用来存放一些对象。

 

2、static变量:静态变量是static修饰的变量,实例变量是非static修饰的变量。

 

3、静态变量与实例变量的区别:

1)静态变量是随着类加载时被完成初始化,它可以在内存中仅有一个,且JVM也只会为它分配一次内存,同时所有类的实例都共享静态变量,可以通过类名来直接访问。

2)实例变量是随着实例的,每创建一个实例就会产生一个实例变量,它与该实例同生共死。

 

4、static方法:

static修饰的方法称之为静态方法,可以通过类名直接调用。由于在类加载时就已经存在,它不依赖于任何实例,所以static方法必须实现,不能是抽象方法abstract。