是线程私有的,每个线程都是自己的栈,每个线程中的每个方法在执行的同时会创建一个栈帧用于存局部变量表、操作数栈、动态链接、方法返回地址等信息。每一个方法从调用到执行完毕的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。其中局部变量表,存放基本类型(boolean、byte、char、short、int、float)、对象的引用等等,对象的引用不是对象实例本身,而是指向对象实例的一个指针。

是线程共享的,所有的对象的实例和数组都存放在堆中,任何线程都可以访问。Java的垃圾自动回收机制就是运用这个区域的。

方法区也是线程共享的,用于存放类信息(包括类的名称、方法信息、字段信息)、常量、静态变量以及即时编译器编译后的代码等等。

这么讲比较抽象,写段代码:

当程序执行到箭头指向那一个行代码的时候,
入参i和局部变量j都是基本类型,直接存放在栈中。
入参str和oneMoreStudy是对象类型,在栈中只存放对象的引用。
如下图:

最新文章

  1. CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化
  2. SharePoint服务器端对象模型 之 使用CAML进展数据查询
  3. IE9 打不开界面也不报错,只有打开控制台才会显示 - console
  4. contentEditable属性设置是否可编辑元素的内容
  5. texrecon进行纹理映射
  6. 不用安装Oracle_Client就能使用PLSQL_Developer
  7. CSS之transition(动画)
  8. 从MVC框架看MVC架构的设计(转)
  9. CodeForces 379 D. New Year Letter
  10. style控制打印分页
  11. Anaconda配置多spyder多python环境
  12. Java自己动手写连接池四
  13. 17_8_9 Spring 注入
  14. 程序员必须搞清的概念-equals和=和hashcode的区别
  15. Redux学习(2) ----- 异步和中间件
  16. java学习(一)--- 基础语法
  17. Subversion版本控制系统的安装和操作.
  18. [BZOJ3173]最长上升子序列
  19. pcre库
  20. 一次性解决Intellij IDEA maven 自动跳到1.5的JDK

热门文章

  1. SpringCloud学习笔记(7):使用Spring Cloud Config配置中心
  2. SpringBoot之简单入门
  3. Django-中间件-csrf扩展请求伪造拦截中间件-Django Auth模块使用-效仿 django 中间件配置实现功能插拔式效果-09
  4. jenkins自动化部署项目9 --定时构建
  5. 接口测试返回数据为JSONP格式时如何处理
  6. mysql 排序规则
  7. 校园网 虚拟机VMware Linux桥接模式 无法上网 问题
  8. scalikejdbc 学习笔记(1)
  9. Scala 学习笔记之函数(2)
  10. CSS 预处理语言之 Scss 篇