堆和栈的区别,有一个64k的字符串,是放到堆上,还是放到栈上,为什么?
来源:互联网 发布:matlab复共轭矩阵 编辑:程序博客网 时间:2024/04/28 18:45
堆和栈的区别,有一个64k的字符串,是放到堆上,还是放到栈上,为什么?
答:只有引用及基本数据类型是直接存在栈上。对象类型可能是在堆、方法区、常量池中。如二楼所说,放到堆中还是放到栈中,jvm会根据你的数据类型决定。
一般在栈中存放了编译期可知的各种基本数据类型,对象引用和returnAddress类型。
在堆中存放对象实例
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
1:堆栈都是内存的可用区域,但是 堆的速度慢容量大,栈的速度快容量小。一个64K的字符串,自然放在堆。栈的内存是很宝贵的。
2:接口和抽象类都是面向对象编程的特点,都是可继承(实现)为明确的类。一般:所描述的事物(事件)属于很抽象的,则先使用接口表达这个事物,然后使用抽象类实现划分出各种分类事物。例如:List 接口下有抽象类:AbstractSequentialList<E> AbstractList<E>等,然后才有LinkedList ArrayList
3:有一个100万的数组,里边有两个是重复的,如何设计算法找到:
int i=0;
Set<Integer> set=new HashSet<Integer>();
for(;i<array.length;i++)
if(set.add(array[i])) break;
array[i];//就是了
0 0
- 堆和栈的区别,有一个64k的字符串,是放到堆上,还是放到栈上,为什么?
- Java ==和equals的区别 栈与堆的概念 放到一起就容易理解了
- 栈上和堆上分配内存初始化的区别
- 我的C++实践(15):判断对象是在堆上还是在栈上
- 放到沙发上的发
- 堆和栈的区别,为什么堆更慢?
- 鼠标放到链接上出现一个说明框,里面有滚动的文字说明
- c++ 局部对象指针及到底是在堆上创建的对象还是在栈上创建的?
- 堆和栈的区别是啥?
- 堆和栈的区别是啥?
- 堆和栈的区别是啥?
- 堆和栈的区别是啥?
- 堆和栈的区别是啥?
- 堆和栈的区别是啥?
- 堆上分配内存和栈上分配内存的区别
- 为什么书架上的书读不了,那放到书架上饭什么?
- C++堆还是栈上创建对象
- C++,类的对象,其地址,栈上还是堆上?
- redis3.2.2 安装
- [随笔+吐槽]猿类如何同“傻逼”一起工作
- 从关系型数据库到非关系型数据库
- 143. Reorder List
- 大数据系列修炼-Scala课程82
- 堆和栈的区别,有一个64k的字符串,是放到堆上,还是放到栈上,为什么?
- 关于linux下system()函数的总结
- 计数原理与应用
- Codevs1961 躲避大龙
- HDU 4734 F(x) 数位DP .
- OC-通知&Size Classes
- getServletContext()详解
- 大数相乘
- 关键字-分节1(auto && register)