j***a语言中pop,J***A语言中的对象创建的方法和数据成员的创建方法

kodinid 18 0

大家好,今天小编关注到一个比较意思的话题,就是关于java语言中pop()的问题,于是小编就整理了3个相关介绍Java言中pop()的解答,让我们一起看看吧。

  1. pack函数作用?
  2. jvm工作原理是什么?
  3. 栈的操作特点是什么?

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 的子组件按其首选大小进行布局。

java语言中pop,JAVA语言中的对象创建的方法和数据成员的创建方法-第1张图片-安济编程网
图片来源网络,侵删)

pack() - 类 j***ax.swing.JPopupMenu 中的方法 布置容器,让它使用显示内容所需的最小空间。

jvm工作原理什么

JVM中的内存分为五个部分:

(1)方法区:存储加载的class字节码,通过该区域我们能寻址到类中的方法的入口。除此之外,方法区还包括运行常量区和静态常量区。这个区域是所有线程共享的。

java语言中pop,JAVA语言中的对象创建的方法和数据成员的创建方法-第2张图片-安济编程网
(图片来源网络,侵删)

(2)堆:存储new出来的对象,垃圾回收器主要监控和回收的就是这块区域。在堆里面不断创建对象但是垃圾回收器不回收,就有可能造成OutOfMemoryError错误。这个区域也是线程共享的。

(3)虚拟机栈:存储所有被调用的j***a方法的上下文。在main方法里面调用test方法,则在虚拟机栈里面push进test方法上下文,调用完毕,则pop出test方法的上下文。倘若在main方法里面递归调用main方法,则虚拟机栈则会被消耗光***,造成StackOverflowError错误。这个区域是线程隔离的,也就是说每个线程都有一个虚拟机栈。

(4)本地方法栈:本地方法栈与虚拟机栈类似,只不过本地方法栈中存储所有被调用的本地native方法的上下文。这个区域也是线程隔离的。

java语言中pop,JAVA语言中的对象创建的方法和数据成员的创建方法-第3张图片-安济编程网
(图片来源网络,侵删)

(5)程序计数器:存储着CPU下一条指令地址,也就是说记录着现在程序执行到了哪里,执行到了那条语句哪个指令。这个区域也是线程隔离的。

栈的操作特点是什么?

栈(stack)是J***a用来在Ram中存放数据的地方。与C++不同,J***a自动管理栈,程序员不能直接地设置栈。

堆栈是一种执行“后进先出”算法数据结构

栈的特点是先进后出,队列的特点是先进先出.

栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以

享,详见第3点。堆的优势是可以动态分配内存大小,生存期也不必事先告诉编译器,J***a的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要

在运行时动态分配内存,存取速度较慢。

堆栈就是这样一种数据结构.它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中.有一个地址指针指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器.开始放入数据的单元叫做“栈底”.数据一个一个地存入,这个过程叫做“压栈”.在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1.读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减

到此,以上就是小编对于j***a语言中pop()的问题就介绍到这了,希望介绍关于j***a语言中pop()的3点解答对大家有用。

标签: 方法 数据 一个

上一个c语言 结构体的定义,c语言结构体的定义和使用

下一个架构师学习python,python架构培训