首页编程java编程java里面什么是栈?java中什么是栈啊

java里面什么是栈?java中什么是栈啊

编程之家2023-10-1195次浏览

大家好,今天小编来为大家解答java里面什么是栈这个问题,java中什么是栈啊很多人还不知道,现在让我们一起来看看吧!

java里面什么是栈?java中什么是栈啊

java中的“堆栈”是什么意思

您好!

堆用来存放引用对象,new一个对象之后就会在内存中的堆里开辟一片空间给这个对象,并把它的引用(地址)赋给引用变量,如 String s=new String();

栈的基本特点就是先进后出,栈主要存3种:1)值类型存在栈里2)引用类型存在堆里在栈中记录引用3)另外还有个栈是线程栈,线程栈就是一个线程里面函数调用的栈,main函数先压进栈再压进调用的其他函数(包括函数的字段等)

java里面什么是栈?java中什么是栈啊

栈和堆都是内存区域

敬请采纳!

中国物联网校企联盟

java里面什么是栈?java中什么是栈啊

请简单通俗易懂的解释一下在Java中什么叫堆 什么叫栈 谢谢

堆:也叫动态内存,相当于一个内存池子,在java中创建对象的时候,就从堆里面拿出一块来存放对象;当GC(垃圾回收)回收对象的时候,又把对象占用的内容还给堆。

举个例子:堆就好比一个面团,类就好比一个馒头印子,用印子从面团中取出一小块面团,印成馒头,这个馒头就是这个馒头印子类产生的对象了。当无限的创建馒头的时候,这个面团总会被用光的,这个时候就不能在创建新的馒头了。

所有GC就有存在的必要了,当对象不被持有的时候,GC就会把对象还给堆。也就是,当这个馒头没有被使用,这个馒头就变成小面团,还给面团。

栈:也是一段内存,但是这段内存比较有特点,遵循一个先进后出的规则。

举个例子:吃过罐装的薯片吧,薯片一片一片的放到罐里面去,想想,最先放进去的是不是放在罐的最底部。现在一片片把薯片取出来,是不是要从最顶部开始去,也就是最后放进去的,最先取出来。这个薯片放进去和取出来的这个过程,就是栈的工作原理啦(先进入的后出来,后进入的先出来)

在java中的栈:栈的原理明白了,其实只要是计算机只要是编程语言,什么堆什么栈都是一样的,基本作用也一样。java中可以认为,栈用来存放局部变量的。

public void fun(){

int i=0;//i是一个局部变量,存放在栈里面的

Object obj= new Objec();//obj是一个对象应用,同样也是一个局部变量,存放在站里面的,但是obj指向的对象,在存在堆中

}

java中什么是栈啊

存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new出来的对象)或者常量池中(字符串常量对象存放在常量池中。)。

栈和常量池中的对象可以共享,对于堆中的对象不可以共享。栈中的数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会消失。堆中的对象的由垃圾回收器负责回收,因此大小和生命周期不需要确定。

局部变量的数据存在于栈内存中。

栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量数据(int, short, long, byte, float, double, boolean, char)和对象句柄(引用)。

java中堆和栈有什么区别

堆:(对象)

引用类型的变量,其内存分配在堆上或者常量池(字符串常量、基本数据类型常量),需要通过new等方式来创建。

堆内存主要作用是存放运行时创建(new)的对象。

(主要用于存放对象,存取速度慢,可以运行时动态分配内存,生存期不需要提前确定)

栈:(基本数据类型变量、对象的引用变量)

基本数据类型的变量(int、short、long、byte、float、double、boolean、char等)以及对象的引用变量,其内存分配在栈上,变量出了作用域就会自动释放。

栈内存的主要作用是存放基本数据类型和引用变量。栈的内存管理是通过栈的"后进先出"模式来实现的。

(主要用来执行程序,存取速度快,大小和生存期必须确定,缺乏灵活性)

如果你还想了解更多这方面的信息,记得收藏关注本站。

java中字节数是什么(java中的变量各占得字节数)在java中rtti是什么(java中传统的RTTI和反射的区别是什么)