Java对与内存管理机制.docVIP

  • 2
  • 0
  • 约1.39万字
  • 约 7页
  • 2016-12-13 发布于河南
  • 举报
1.实例变量和类变量的内存分配类变量 :使用static修饰的成员变量是类变量,属于该类本身实例变量:没有使用static修饰的成员变量是实例变量,属于该类的实例由于同一个JVM内每个累只对应一个Class对象,因此同一个JVM内的一个类的类变量只需一块内存空间。对于实例变量而言,该类没创建一次实例,就需要为实例变量分配一块内存空间,所以,程序中有几个实例,实例变量就需要几块内存空间。2.类变量的初始化时机总是出于实例变量的初始化之前我们先看下下面三段代码:因为两个实例变量都是在创建变量的时候才开始分配空间,此时num2还没有分配,所以前向引用就会出现编译错误。12int num = num2 + 3; //非法前向引用,会报错 int num2 = 2 2)因为两个类变量在JVM加载类的时候分配空间,此时num2还没有分配,所以前向引用就出现变异错误。12static int num = num2 + 3; //非法前向引用,会报错 tatic int num2 = 2 3)因为类变量num2在JVM加载类的时候空间已经分配好,而num在创建实例的时候踩分配空间,此时num2已经分配成功了,所以num前向引用成功。12int num = num2 + 3; //正确使用 static int num2 = 2; 由上面三段代码块就可以验证得:类变量的初始化时机

文档评论(0)

1亿VIP精品文档

相关文档