当前位置:   article > 正文

内存划分、递归_递归 内存

递归 内存

内存划分、递归

  1. 内存划分
    程序 : 一堆代码的集合,是个可执行文件,但是是一个静态概念,一般保存在硬盘中

进程 : 就是正在执行的可执行文件,是个动态概念,会按照程序的设计,在内存中一步步执行
运行起来的程序,指的是载入到内存中的可执行文件,这个时候操作系统就会开启一个进程来运行这个内存中的文件对象
如果我们想关闭某个软件,可以直接结束这个进程即可

java的内存划分和管理

	Java Runtime Data Area : java 运行时数据区域,我们一般叫JVM内存
	分为 : 静态区/方法区 , VM栈,堆内存,本地栈,程序计数器
		
	程序计数器 : 是一块比较小的内存,,可以看做字节码文件的指示器,分支,循环,跳转等,都需要程序计数器来完成
	
	静态区/方法区 : 
		是存放我们的程序文件的,载入内存后的class文件,在静态区存储
		包括方法,静态属性都是在静态区的
		还有运行时常量池 

		VM栈 : 虚拟机栈,一般都叫栈内存
			栈内存,是以栈数据结构为模型,开辟的一块内存空间
				栈是一种数据结构,先进后出, 比如说 弹夹
		栈构成因素 : 
					栈空间  : 就是以栈数据结构为模块开辟的空间 就叫栈空间
					栈帧 : 栈空间中的每一个元素,就是一个栈帧 , 比如 弹夹 就是栈空间, 弹夹中的每一个子弹,就是栈帧
					栈顶元素 : 指最后一个放进去的栈帧,在最上面
					栈底元素 : 指第一个放进去的栈帧,在最下面
			方法是在栈内存中 执行的
			栈的操作 : 
					压栈 : 就是把栈帧放到栈空间的过程
					弹栈 : 就是把栈帧从栈空间中弹出的过程
	
	  本地栈 : 
			比如hashCode() 方法,前面 有个 native声明,本地,当我们执行这些方法的时候,会在本地栈执行
			对于我们来说就是简单的调用方法,但是对于JVM来说,需要单独的空间来存储C的服务
			结构和VM栈 一模一样

		堆内存 : 
				用来保存对象的,先不管
				每个对象空间,分为3大类
					数据部分 : 成
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/116118
推荐阅读
相关标签
  

闽ICP备14008679号