首页 > linux技术/ 正文
关于java中的堆栈,很多人可能都没听说过,其实没有那么神秘,今天北大青鸟翔天信鸽的专业老师就给大家作详细介绍。
Java 中的堆和栈
Java把内存划分成两种:一种是栈内存,一种是堆内存。
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配 。
当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。
堆内存用来存放由 new创建的对象和数组。
在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。
在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。
引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象。
具体的说:
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。
Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。
栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。栈有一个很重要的特殊性,就是存在栈中的数据可以共享。
北大青鸟由北京大学提供技术支持,郑州北大青鸟翔天信鸽学校是北大青鸟在河南地区唯一的一家全产品校区,学校规模大,教学严格,师资力量强,设有ACCP软件开发课程、BENET网络工程师培训、学士后JAVA、学士后.NET、网络营销师、android软件开发课程。
本文由软件培训网整理,转载请注明:http://www.softpeixun.com
- 上一篇:高中生可以学linux技术吗?
- 下一篇:Linux技术学起来难吗?
更多android培训课程,php培训学校,android 软件,郑州android技术,jave课程,河南java相关文章
- Linux新手要了解的十个知识点
- 国产Linux遭遇鲜花与暗礁
- .net工程师培训费用
- Linux开发培训有哪些内容
- Linux系统入门学习从哪儿开始?
- linux学校哪个好?
- 怎么找个好点的linux学校?
- 高中生可以学linux技术吗?
- 学linux技术参加北大青鸟培训怎么样?
- 学习Linux有传说的那样难吗?
- linux技术是不是很难学习?
- Linux系统怎么用呢?
- 郑州比较好点的Linux培训学校有哪些?
- 想学习Linux开发,不知如何开始学习
- linux培训好像费用挺高的,不知道学不学好?
- Linux系统好还是windows系统好
- Linux下安装Apache+ASP环境的几个优势
- Linux curl使用简单介绍
- 怎么安装Linux操作系统
- 如何对linux系统检查磁盘装置有哪些损坏呢?
- 在系统是Linux的环境下如何搭建TFTP服务器?
- 为什么Windows系统会慢慢的变慢,而 Linux 不会?
- 新手学Linux运维工程师需要熟知的几个知识点
- 想做一名linux运维工程师的学生可以看下这里
- Linux桌面领域7大趋势
- 郑州软件培训网:Linux必学的60个命令
- 搜索
-
- 热门标签
-
- 郑州北大青鸟java培训课程包含哪些内容
- 郑州java大数据培训学校哪家好呢
- 郑州大数据培训机构哪家比较不错呢
- 2017年程序员的就业形势怎么样
- 迷茫不知所措学什么专业技术好呢
- 商丘IT学校计算机专业都学什么
- 郑州java软件测试培训学校哪家好
- 河南郑州软件开发培训机构
- 数控编程培训
- 郑州软件设计培训学校哪家好
- 郑州黑马java培训
- 郑州北大青鸟校区不仅仅是电脑学校
- 郑州Java电脑编程培训学校
- 郑州软件培训机构排名
- 周口适合不想上学的学生读的技术学校
- 郑州网页设计培训学校哪家好
- 郑州云培训学校怎么样
- 郑州java编程培训学校选择郑州翔天信鸽
- 郑州计算机中专技术学校有哪些
- 在郑州北大青鸟学java是一种什么样的感