我是靠谱客的博主 端庄星星,最近开发中收集的这篇文章主要介绍java 栈回收_Java基础必备 -- 堆栈、引用传值、垃圾回收等,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在Java中,对象作为函数参数的传递方式是值传递还是引用传递?String str = "abc" 与 String str = new String("abc")在存储上有何区别?想成为一名合格的搬砖工,掌握吧,颤抖吧!

堆(heap)和栈(stack)

在数据结构中存在堆和栈,在内存分配中也有堆和栈的概念,指的是堆空间和栈空间,注意不要将两者混为一谈,这里要讨论的是后者。

在数据结构中,堆和栈是两种不同的数据结构。栈是一种后进先出的线性表,堆是一种特殊的完全二叉树,树中所有非终端结点的值均不大于(或不小于)其左右孩子结点的值。

在内存分配中,栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。在C++中,程序员可以通过malloc函数申请堆空间,但在Java中,程序员不能直接地操作堆与栈,只能由Java自动管理。

栈的优势:① 存取速度比堆要快,仅次于直接位于CPU中的寄存器;② 栈数据可以共享。存在栈中的数据大小与生存期必须是确定的,缺乏一定灵活性。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。

一个经典的关于堆和栈的比喻:使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。

Java两种数据类型与存储

Java有两种数据类型:① 一种是基本数据类型,共8种,即int、short、long、byte、float、double、boolean、char(注意不包含string数据类型);② 另一种是对象数据类型,是类类型或应用数据类型,如Integer、String、Double等。

原文:http://www.cnblogs.com/hanganglin/p/4341854.html

最后

以上就是端庄星星为你收集整理的java 栈回收_Java基础必备 -- 堆栈、引用传值、垃圾回收等的全部内容,希望文章能够帮你解决java 栈回收_Java基础必备 -- 堆栈、引用传值、垃圾回收等所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部