Java当中的内存分配以及值传递问题内存解析
来源:互联网 发布:gnuradio ubuntu 编辑:程序博客网 时间:2024/06/14 08:20
一、Java当中所涉及到的内存分类
Java当中你知道这5种内存就够用了,下面对这5种内存里面所存放的数据做一解释。
①
②
③
④
⑤
好了这就是Java当中常见内存以及它里面所存放的数据,下面我们通过讲解Java当中的值传递问题,分析在代码执行的过程当中内存的状态。
二、Java当中的值传递问题以及代码执行过程当中内存的状态
什么是值传递?
值传递就是Java当中参数传递的一种方式(而且也是唯一的一种方式,也就是说Java当中只有值传递),所谓参数传递就是在某个方法被调用的时候把一个实参传递给形参的过程。
下面我们通过分析下面代码执行过称中内存的状态来说明Java当中的参数传递以及为什么Java当中只有值传递。
代码清单:(为了节省空间格式不是很规范)
定义学生类:
定义测试类:
测试结果:
为什么会有这样的结果?下面我们分析一下这段代码执行过称当中内存的分配,相信问题将迎刃而解。
1、
此时虚拟机为main()创建栈内存,内存分配如下
2、
3、
4、
这行代码到此还没有执行完,参数传过去之后接着程序跳到被调方法当中去执行,也就是执行age++;此时操作的是形参age与实参age没有任何关系,age++;完了之后形参age的值变成21,此时的内存分配如下
被调方法还没结束,程序接着往下执行到方法体的结束大括号,被调方法执行完毕,同时addAge(int age)的临时栈内存关闭。此时的内存分配如下
5、
6、
7、
- Java当中的内存分配以及值传递问题内存解析
- Java当中的内存分配以及值传递问题内存解析
- Java当中的内存分配以及值传递问题…
- C++当中的内存分配
- java的参数传递与内存分配问题
- java内存分配的问题
- java的内存分配问题
- 【Java】内存分配的问题
- 解析java内存分配
- JAVA内存分配解析
- java内存分配解析
- Java中的变量的内存分配以及传值机制
- Java 基础【04】数组内存分配 引用传递 值传递
- 从内存分配来看C语言的值传递和指针传递问题
- Java变量以及内存分配
- Java变量以及内存分配
- Java变量以及内存分配
- Java内存分配原理解析
- “iOS 推送通知”详解:从创建到设置到运行
- JVM学习之-JVM内存结构
- openModeller资源
- 13岁我们在做什么,现在20岁我又在做什么
- jquery实现新闻菜单选项
- Java当中的内存分配以及值传递问题内存解析
- 用Google Scholar输出文献bibtex
- 重新开始体验 Web
- JAVA内存模型
- 东芝超强悍的Windows 8 平板
- Linux平台用C++封装线程读写锁
- varnish缓存清除的问题和陷阱
- [转载]最好的53个 VC++ /MFC 开源软件项目
- loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式