JVM由浅入深

运行时数据区域

  Java比起C++一个很大的进步就在于Java不用再手动控制指针的deletefree,统一交由JVM管理,但也正因为如此,一旦出现内存溢出异常,不了解JVM,那么排查问题将会变成一项艰难的工作。

  Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区。这些区域都有各自的用途,以及创建销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范 7》的规定(注意:我们完全可以从新的JDK1.9开始了解,但是先讲1.7是因为1.71.8JDK的较大的变化,真正实现了永久代的取消.我们先通过了解JDK1.7,然后再看一下1.81.7的基础上改变了什么。有助于我们的理解),JVM所管理的内存会被分为以下几个运行时数据区域,如下图所示:

 

揭秘对象

  我们都知道对象是类的一个实例,那么究竟该怎么理解呢?类被加载后存放在元空间(Metaspace),而实例一经创建却是在堆中分配空间,这两个空间又是通过什么来联系的?而对象又是如何被创建的,下面我们就来详细了解下.

语法糖

  语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

posted @ 2018-01-17 05:04  十月十四  阅读(299)  评论(0编辑  收藏  举报