JAVA 中堆和栈的差异,说下java 的内存机制
a.底子数据类型比变量和目标的引用都是在栈分配的
b.堆内存用来寄存由new创建的目标和数组
c.类变量(static修饰的变量),程序在一加载的时分就在堆中为类变量分配内存,堆中的内存地址寄存在栈中
d.实例变量:当你运用java关键字new的时分,系统在堆中开荒并不一定是连续的空间分配给变量,是根据零散的堆内存地址,通过哈希算法换算为一长串数字以表征这个变量在堆中的”物理方位”,实例变量的生命周期–当实例变量的引用丢掉后,将被GC(废物回收器)列入可回收“名单”中,但并不是马上就开释堆中内存
e.局部变量: 由声明在某办法,或某代码段里(比如for循环),实行到它的时分在栈中开荒内存,当局部变量一但脱离作用域,内存当即开释
传智播客Java培训是Java培训佼佼者,口碑良好的java培训学校,并提供Java培训,JavaEE培训,Java培训班,Java工程师培训,Java程序员培训,Java开发,Java编程服务。
|
|