java堆与栈
来源:互联网 发布:螺纹梳刀编程 编辑:程序博客网 时间:2024/06/06 12:44
堆:
逻辑连续,物理不连续。
1. 全局共享。 new的对象都放里面。 jvm中最大的一块内存区域。
2. 堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时
动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。
栈:
- 栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。
栈中主要存放一些基本类 型的变量(,int, short, long, byte, float, double, boolean,
char)和对象句柄。
String是一个特殊的包装类数据。可以用:
String str = new String(“abc”);
String str = “abc”;
- 两种的形式来创建,第一种是用new()来新建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。
- 而第二种是先在栈中创建一个对String类的对象引用变量str,然后查找栈中有没有存放”abc”,如果没有,则将”abc”存放进栈,
并令str指向”abc”,如果已经有”abc” 则直接令str指向“abc”。
0 0
- Java栈与堆
- java 栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- Java栈与堆
- 斐波那契数列的第 n 项 mod 1000000007(矩阵乘法)
- 浅析栈区和堆区内存分配的区别
- 你好哇,程序员 - me 跳槽经验说
- Box2d源码学习<六>动态树的实现
- 数据库优化
- java堆与栈
- 【人体姿态】Stacked Hourglass算法详解
- Dijkstra算法 c/c++实现
- UVA10806Dijkstra, Dijkstra.
- Mybatis入门实践+与Hibernate对比
- namespace的用法理解
- java学习总结(16.05.16)java的标识符和命名规则
- 关于百度地图SDK v3.6.0以上版本找不到PoiOverlay类(开源代码)的解决方法.
- 总线设备驱动模型