text: 从这个图可以知道，堆中存放的是实例化的对象；局部变量实在栈中分配的，局部变量就是函数里面的变量。如何区分局部变量：由数据类型+变量名组成，就是局部变量。字符串就是放在第三个区，而函数，if，for等等放在代码区。而静态区存放有static定义的类变量，存放静态成员。
  --》要明白的几个问题：既然堆存放实例化对象，就是类似c语言中的malloc动态分配，所以堆是动态分配的，动态分配有程序员手动分配，手动释放。
  1：栈不需要手动分配，他在函数终止时会自动释放，所以栈中的函数不能跨函数使用，因为局部变量是在栈中分配的，在局部变量所在的函数终止时会释放内存，所以栈中的函数不能跨函数使用。或者说栈中的局部变量随着方法的消失而消失，这就是局部变量只能在方法中有效的原因。
  :2：堆中的函数可以跨函数使用，因为他们的空间是手动释放的。例如a这个函数，b函数里面可以调用a这个函数。你可以想象为在堆中的东西都是共享，共享就是可以相互访问。
  3：一知道堆就要想到是动态分配，栈是静态分配。例如：有一个局部变量，马上可以想到它是静态分配的，实例化的对象马上想到它是在堆中，动态分配的。
  此时有个名为S.java文件，系统解读会将代码分为4块区域，该放哪的就放哪。例如局部变量放在栈中等等。
  （2）：Aaa=newA();可以知道，A是数据类型，aa是局部变量，局部变量存在于内存中的栈中，进一步得知是静态分配的；而newA()是在堆中动态分配的，new相当于C语言中的malloc函数。
  （4）：既然知道了aa是静态分配，new生成的A对象是动态分配了。那么aa保存了动态内存分配对象的地址，也就是说aa这个静态指针变量指向了动态内存中的A对象。aa.i的意思就是静态指针变量指向动态内存中A对象中的i变量。
  （5）：Aaa=newA();是在堆中分配一块内存，这块内存里面的i和j变量的初始值是10和20，如果你通过aa.i=80;aa.j=66;这样在堆内存中两个的值就改变成了80和66。
  在最新版本中，Vue给出了各种规格大小的种类。有专门做服务端渲染的vue，也有专门用于组件化前端开发的版本，这里先介绍到这些。在后面的源码分析中，我们会详细的解释
  想对作者说点什么？
  授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里，不积小流无以成江海，程序人生的精彩需要坚持不懈地积累！