java静态方法、静态变量在调用时生成唯一标识,即在内存中给定一个静态位子,这样在调用时可以直接找到,而且会节省内存。但如果声明的静态方法、静态变量过多,会占用过多内存,有可能导致内存溢出。
非静态方法、非静态变量有gc管理,每new一个对象时,在堆上分配一块内存,不用时由gc回收。
即,静态方法、静态变量预先分配,非静态方法、非静态变量动态分配。
所有的class、static变量位于方法区,方法区既可以在堆上,又可以在栈上。
2023-08-27 13:46:04
java静态方法、静态变量在调用时生成唯一标识,即在内存中给定一个静态位子,这样在调用时可以直接找到,而且会节省内存。但如果声明的静态方法、静态变量过多,会占用过多内存,有可能导致内存溢出。
非静态方法、非静态变量有gc管理,每new一个对象时,在堆上分配一块内存,不用时由gc回收。
即,静态方法、静态变量预先分配,非静态方法、非静态变量动态分配。
所有的class、static变量位于方法区,方法区既可以在堆上,又可以在栈上。