java中的堆、栈和常量池
来源:互联网 发布:巨人网络offer 编辑:程序博客网 时间:2024/05/22 13:51
http://blog.sina.com.cn/s/blog_798b04f90100ta67.html
说到java中堆、栈和常量池,首先还是看看他们各自存放的数据类型吧!
堆:存放所有new出来的对象;栈:存放基本类型的变量数据和对象的应用,对象(new出来的对象)本身并不存在栈中,而是存放在堆中或者常量池中(字符串常量对象存放在常量池中);常量池:存放基本类型常量和字符串常量。
对于栈和常量池中的对象可以共享,对于堆中的对象不可以共享。栈中的数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会自动消失。堆中的对象的由垃圾回收器负责回收,因此大小和生命周期不需要确定,具有很大的灵活性。
对于浅蓝色箭头,通过new操作产生一个字符串(“abc”)时,会先去常量池中查找是否有“abc”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此“abc”对象的拷贝对象,所以,对于String str=new String("abc"),如果常量池中原来没有"abc"则产生两个对象,否则产生一个对象。
- Java中的栈,堆和常量池
- java中的栈、堆和常量池
- java中的堆、栈和常量池
- java 中的堆 栈和常量池
- java中的堆、栈和常量池
- java 中的堆、栈和常量池
- java中的堆、栈和常量池
- java中的堆、栈和常量池
- java中的堆、栈和常量池
- java中的堆、栈和常量池
- Java中的堆、栈和常量池
- java中的堆、栈和常量池
- Java中的堆、栈 和常量池
- java中的堆、栈和常量池
- java中的堆、栈和常量池
- java中的堆、栈和常量池
- 详细介绍Java中的堆、栈和常量池
- Java堆、栈和常量池在应用中的区别
- 基于Ugui的窗口拖拽功能
- laravel下载安装
- var与ES6中const、let声明的变量的区别
- 解压缩安装mysql
- 利用MIUI在不获取ROOT的情况下获取WIFI密码
- java中的堆、栈和常量池
- MFC中的CListCtrl的最左边一列必须左对齐吗?
- 技术主管和架构师的职责
- python字符串格式化输出
- 欢迎使用CSDN-markdown编辑器
- Android中获取颜色的几种方法
- Qt4简单截图功能的实现
- 第四方支付平台哪个好?
- Cause: net.sf.cglib.beans.BulkBeanException 解决方法