美文网首页
了解JVM 特性

了解JVM 特性

作者: 小眼睛卡卡 | 来源:发表于2017-07-23 18:02 被阅读0次

    与平台无关

    Java语言的一个重要特性就是与平台无关性。JVM是实现这一技术的关键。

    JVM对类的加载机制请参考 Java 类加载器的工作机制

    堆和栈的区别

    jvm 中堆和栈属于不同的内存区域。栈区用于存放方法帧和局部变量,堆区用于存放对象,也就是对象分配在堆上。栈区比较小,但是速度快,栈区数据不在多线程之间存在共享,堆是被整个JVM所有的线程共享的。

    JVM内存分配

    1、基本类型数据变量和对象的引用都是在栈上分配的

    2、堆内存用来存放new的对象和数组

    3、类变量(static修饰的变量),程序在第一次加载的时候就在堆中为类变量分配内存,堆中的内存地址存放在栈中

    4、实例变量:当new对象的时候,系统在堆中为其开辟不一定是连续的空间分配给变量,是根据零散的堆内存地址,通过哈希算法换算为一串数字来表示这个变量在堆中的物理位置,实例变量的生命周期———当实例变量的引用失去后,将会被GC列入可回收名单列表,但并不是立即释放堆中内存

    5、局部变量:因为其声明在方法中或者某段代码里,执行他的时候会在栈中开辟内存,当局部变量一但脱离作用域,内存立即释放

    相关文章

      网友评论

          本文标题:了解JVM 特性

          本文链接:https://www.haomeiwen.com/subject/fpumkxtx.html