堆 栈(转载)
2016-01-28 15:00
197 查看
堆栈:必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。
栈解决程序的运行问题,即程序如何执行;堆解决的是数据存储的问题,即数据放在哪儿。
我们把对象拆开,你会发现,对象的属性其实就是数据,存放在堆中;而对象的行为(方法),就是运行逻辑,放在栈中。
1. 不要试图与C进行类比,Java中没有指针的概念
2. 程序运行永远都是在栈中进行的,因而参数传递时,只存在基本类型和对象引用的问题。不会直接传对象本身。
因为没有指针,所以它都是进行传值。
Java中,栈的大小通过-Xss来设置,当栈中存储数据比较多时,需要适当调大这个值,否则会出现java.lang.StackOverflowError异常。常见的出现这个异常的是无法返回的递归,因为此时栈中保存的信息都是方法返回的记录点。
JVM调优
栈解决程序的运行问题,即程序如何执行;堆解决的是数据存储的问题,即数据放在哪儿。
我们把对象拆开,你会发现,对象的属性其实就是数据,存放在堆中;而对象的行为(方法),就是运行逻辑,放在栈中。
1. 不要试图与C进行类比,Java中没有指针的概念
2. 程序运行永远都是在栈中进行的,因而参数传递时,只存在基本类型和对象引用的问题。不会直接传对象本身。
因为没有指针,所以它都是进行传值。
Java中,栈的大小通过-Xss来设置,当栈中存储数据比较多时,需要适当调大这个值,否则会出现java.lang.StackOverflowError异常。常见的出现这个异常的是无法返回的递归,因为此时栈中保存的信息都是方法返回的记录点。
JVM调优
相关文章推荐
- Android之网络编程(二)使用 HttpURLConnection
- hdu5366 The mook jong (DP)
- iOS Application相关知识
- Fragment笔记整理
- SQL查询结果区分大小写
- 常用用通配符
- 高性能 内存 事件优化
- Android使用AttributeSet自定义控件的方法
- 多级树
- 斐波那契数列 catalan
- HDU1096(最大递增子序列的变形)
- iOS CloudKit与Core Data、商业后端服务、自己的服务器相比优势
- Android滑动菜单框架完全解析,教你如何一分钟实现滑动菜单特效
- Ajax原生态
- Universal_Image_loader
- java native方法及JNI实例
- Java操作Excel JAVA EXCEL API
- linux 系统常用 命令
- cocoaPods导入第三方后不提示的解决方法
- MySql 申明变量以及赋值