堆和栈的区别
来源:互联网 发布:人工智能专业就业大学 编辑:程序博客网 时间:2024/06/08 06:15
堆和栈的区别,有一个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])) {
System.out.println(array[i]);
break;
}
阅读全文
0 0
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 堆和栈的区别
- 史上最详细bitbucket入门手册,手把手操作指南-----可建立私有仓库
- Socket:server端的插入文件处理遇到的问题
- RecyclerView条目点击和长按
- 网络--tcp协议中控制位
- Android 新控件学习总结
- 堆和栈的区别
- 盐水的故事
- 反编译apk获得xml文件
- Golang 中的正则表达式
- 中兴捧月算法大赛Dijkstra派解决方案
- 从今天开始要写微博了
- Doris更新到5.0了
- VIM显示行号、自动缩进 、为操作的一行添加下划线、设置鼠标、设置tab的缩进量
- osx 代码创建自定义NSMenu & NSMenuItem