Java的内存分配
Java的内存分为两种,一个是堆内存,这个是栈内存。
堆内存
堆内存是用于存放Java中的数组和由new创建的对象。他满足先进先出,后进后出的存放方式。最后会由GC垃圾回收机制来清理缓存。堆内存属于动态存放,不需要自己提前开辟内存,但是速度比较慢。
栈内存
栈内存是用于存放Java中的基本类型的变量和对象的引用变量、函数等。他满足栈的的存放方式。也会由GC回收。堆内存需要提前定义空间大小,速度较快,仅仅小于缓存。
两者之间的关系
左边为栈右边为堆
Java的运行机制
Java的运行机制是讲用户所写的Java源代码通过编译器解释成字节码文件,再通过Java虚拟机变成机器码文件。
每一种平台的解释器是不同的,但是实现的虚拟机是相同的。这也就是Java为什么能够跨平台的原因。