j***a语言中pop,J***A语言中的对象创建的方法和数据成员的创建方法
kodinid
18
大家好,今天小编关注到一个比较有意思的话题,就是关于java语言中pop()的问题,于是小编就整理了3个相关介绍Java语言中pop()的解答,让我们一起看看吧。
- pack函数作用?
- jvm工作原理是什么?
- 栈的操作特点是什么?
pack函数作用?
pack() - 类 JAVA.awt.Window 中的方法 调整此窗口的大小,以适合其子组件的首选大小和布局。 pack(JarFile, OutputStream) - 接口 j***a.util.jar.Pack200.Packer 中的方法 接收 JarFile 并将其转换为 Pack200 存档。
pack(JarInputStream, OutputStream) - 接口 j***a.util.jar.Pack200.Packer 中的方法 接收 JarInputStream 并将其转换成 Pack200 存档。 pack() - 类 j***ax.swing.JInternalFrame 中的方法 使此 JInternalFrame 的子组件按其首选大小进行布局。
pack() - 类 j***ax.swing.JPopupMenu 中的方法 布置容器,让它使用显示其内容所需的最小空间。
JVM中的内存分为五个部分:
(1)方法区:存储加载的class字节码,通过该区域我们能寻址到类中的方法的入口。除此之外,方法区还包括运行时常量区和静态常量区。这个区域是所有线程共享的。
(图片来源网络,侵删)
(2)堆:存储new出来的对象,垃圾回收器主要监控和回收的就是这块区域。在堆里面不断创建对象但是垃圾回收器不回收,就有可能造成OutOfMemoryError错误。这个区域也是线程共享的。
(3)虚拟机栈:存储所有被调用的j***a方法的上下文。在main方法里面调用test方法,则在虚拟机栈里面push进test方法上下文,调用完毕,则pop出test方法的上下文。倘若在main方法里面递归调用main方法,则虚拟机栈则会被消耗光***,造成StackOverflowError错误。这个区域是线程隔离的,也就是说每个线程都有一个虚拟机栈。
(4)本地方法栈:本地方法栈与虚拟机栈类似,只不过本地方法栈中存储所有被调用的本地native方法的上下文。这个区域也是线程隔离的。
(5)程序计数器:存储着CPU下一条指令的地址,也就是说记录着现在程序执行到了哪里,执行到了那条语句,哪个指令。这个区域也是线程隔离的。
栈(stack)是J***a用来在Ram中存放数据的地方。与C++不同,J***a自动管理栈,程序员不能直接地设置栈。
堆栈是一种执行“后进先出”算法的数据结构
栈的特点是先进后出,队列的特点是先进先出.
栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共
享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,J***a的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要
在运行时动态分配内存,存取速度较慢。
堆栈就是这样一种数据结构.它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中.有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器.开始放入数据的单元叫做“栈底”.数据一个一个地存入,这个过程叫做“压栈”.在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1.读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减
到此,以上就是小编对于j***a语言中pop()的问题就介绍到这了,希望介绍关于j***a语言中pop()的3点解答对大家有用。
标签: 方法
数据
一个
版权声明:本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。