当前位置:首页 » 编程语言 » java栈和堆

java栈和堆

发布时间: 2024-01-24 10:29:51

java中,静态变量存储在哪个区啊,堆还是栈啊,或者说其他地方,谢谢

首先,java里面是没有静态变量这个概念的,不信你自己在方法里面定义一个static
int
i
=0;java里只有静态成员变量。它属于类的属性。至于他放在那里?楼上说的是静态区。我不知道到底有没有这个翻译。但是
深入jvm里是是翻译为方法区的。虚拟机的体系结构:堆,方法区,本地方法栈,pc寄存器。而方法区保存的就是一个类的模板,堆是放类的实例的。栈是一般来用来函数计算的。随便找本计算机底层的书都知道了。栈里的数据,函数执行完就不会存储了。这就是为什么局部变量每一次都是一样的。就算给他加一后,下次执行函数的时候还是原来的样子。

② java 哪些数据存放在栈中哪些存放在堆中

栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。

Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。

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

热点内容
车的哪些配置是必须有的 发布:2025-09-17 19:00:32 浏览:998
php判断设备 发布:2025-09-17 18:27:53 浏览:401
医院存储方案 发布:2025-09-17 18:26:38 浏览:351
用户注册java 发布:2025-09-17 18:23:40 浏览:397
centosftp不能上传 发布:2025-09-17 18:19:15 浏览:734
我的世界超平坦生存服务器 发布:2025-09-17 18:01:06 浏览:758
手机只上微信要什么配置 发布:2025-09-17 17:56:19 浏览:695
什么叫配置高的电脑 发布:2025-09-17 17:53:15 浏览:572
php考试系统源码 发布:2025-09-17 17:52:27 浏览:825
打牌的算法 发布:2025-09-17 17:37:46 浏览:174