首页 > 技术文章 > java静态方法(变量)、非静态方法(变量)区别

sunseine 2015-04-08 11:10 原文

  java静态方法、静态变量在调用时生成唯一标识,即在内存中给定一个静态位子,这样在调用时可以直接找到,而且会节省内存。但如果声明的静态方法、静态变量过多,会占用过多内存,有可能导致内存溢出。

  非静态方法、非静态变量有gc管理,每new一个对象时,在堆上分配一块内存,不用时由gc回收。

  即,静态方法、静态变量预先分配,非静态方法、非静态变量动态分配

  所有的class、static变量位于方法区,方法区既可以在上,又可以在上。

推荐阅读