当前位置: 首页 > wzjs >正文

东莞企业网站推广技巧各大网站收录提交入口

东莞企业网站推广技巧,各大网站收录提交入口,西宁做网站的公司,电商平台运营是做什么1. 栈的存储 每个线程都有自己的栈,栈中数据以栈帧(Stack Frame)为基本单位 线程上正在执行的每个方法都各自对应一个栈桢(Stack Frame) 栈桢是一个内存区块,是一个数据集,维系着方法执行过程…
1. 栈的存储

每个线程都有自己的栈,栈中数据以栈帧(Stack Frame)为基本单位

线程上正在执行的每个方法都各自对应一个栈桢(Stack Frame)

栈桢是一个内存区块,是一个数据集,维系着方法执行过程中的各种数据信息

JVM 对栈的操作有两个:压栈与出栈,遵循“新进后出”或“后进先出”原则

1.1 当前栈帧

一条活动线程中,一个时间点上,只会有一个活动的栈帧。

即当前执行的方法的栈帧(栈顶栈帧)是有效的,被称为当前栈帧。

1.2 当前方法

与当前栈帧对应的方法是当前方法

1.3 当前类

当前方法所在的类就是当前类

1.4 代码测试

执行引擎运行的所有字节码指令只针对当前栈帧操作

若在该方法中调用了其他方法,对应新的栈帧就会被创建出来,

放在站的顶端,成为新的栈帧

测试:方法 1 调用方法 2 ,方法 2 调用 3 ,方法 3 结束;

调用方法 1 时,方法 1 对应的栈帧为当前栈帧;

调用方法 2 时,方法 2 对应的栈帧为当前栈帧;

调用方法 3 时,方法 3 对应的栈帧为当前栈帧;

方法 3 执行完毕,方法 2 对应的栈帧为当前栈帧;

方法 2 执行完毕,方法 1 对应的栈帧为当前栈帧;

public class StackStruTest {public static void main(String[] args) {StackStruTest stackStruTest = new StackStruTest();stackStruTest.method1();}public void method1(){System.out.println("method1 开始执行");method2();System.out.println("method1 执行结束");}public void method2(){System.out.println("method2 开始执行");method3();System.out.println("method2 执行结束");}public void method3(){System.out.println("method3 开始执行");System.out.println("method3 执行结束");}
}
method1 开始执行
method2 开始执行
method3 开始执行
method3 执行结束
method2 执行结束
method1 执行结束
1.5 运行原理

不同线程中包含的栈帧不允许相互引用

方法的结束(栈帧弹出):

        ① 正常结束,以 return 为代表

        ② 异常结束:方法执行中出现未捕获处理的异常,以抛出异常的方式结束

2. 栈的内部结构

栈帧入栈:表示方法调用

栈帧出栈:表示方法结束

栈帧是有大小的,

其大小取决于栈帧内部的结构

栈帧五大部分:

        局部变量表(Local Variables)

        操作数栈(Operand Stack)(或表达式栈)

        动态链接(Dynamic Linking)(或指向运行时常量池的方法引用)

        方法返回地址(Return Address)(或方法正常退出/异常退出的定义)

        一些附加信息

2.1 局部变量表 

又被称为局部变量数组或本地变量表

定义为一个数字数组,主要用于存储方法参数和定义在方法体内的局部变量

局部变量表存储在建立线程的栈上,每个方法都有对应的各自的栈帧,因此不存在数据安全问题

局部变量表所需的容量大小是在编译期确定下来的

方法嵌套调用的次数由栈的大小决定。一般来说,栈越大,方法嵌套调用次数越多

局部变量表中的变量只在当前方法调用中有效

当方法调用结束后,随着方法栈桢的销毁,局部变量表也会随之销毁

3. 堆

一个 JVM 实例 只存在一个堆内存,堆也是 Java 内存管理的核心区域

Java 堆区在 JVM 启动的时候被创建,其空间大小也就确定

堆是 JVM 管理的最大一块内存空间

        堆的大小可以调节

堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的

所有的线程共享 Java 堆,堆里还可以划分线程私有的缓冲区(Thread Local Allocation Buffer,TLAB)[多个线程共享堆,易出现并发性,为避免,可再划分为缓冲区]

几乎所有的对象实例以及数组都应当在运行时分配在堆上。

数组和对象可能永远不会存储在栈上;

在方法结束后,堆中的对象几乎不会被马上移除,仅仅在垃圾收集的时候才会被移除

堆,是GC(global collection,垃圾回收器),执行垃圾回收的重点区域

3.1 内存细分

新生区 == 新生代 == 年轻代

养老区 == 老年区 == 老年代

永久区 = 永久代

堆空间暂时只包含两部分:新生代,老年代

http://www.dtcms.com/wzjs/401002.html

相关文章:

  • 如何做网站结构优化天津seo选天津旗舰科技a
  • 网站要实名认证吗珠海网站建设优化
  • 岳阳建设网站网站推广找哪家公司好
  • 网站制作多少钱资讯谷歌浏览器网页版进入
  • 智能网站建设软件站长之家网站模板
  • 网站建设的wbs分解陕西新闻今日头条
  • 做网站需要下什么软件合肥网络推广营销
  • 正规的食品行业网站开发电脑优化用什么软件好
  • 口碑好的邯郸网站建设宣传推广渠道有哪些
  • 涿州城乡建设局网站北京seo营销公司
  • 美女学习资料网站免费成都网络推广公司
  • ibm用来做测试的网站抚顺优化seo
  • 如何个网站做二维码网上营销怎么做
  • 网站建设公司的会计分录百度广告竞价
  • 专业网站建设专家广告联盟平台挂机赚钱
  • 做机械方面外贸最大的网站seo的外链平台有哪些
  • 阿里巴巴网站建设的不足之处安卓优化大师2021
  • 有专门做特产的网站吗关键词查询网站
  • 怎样建设小游戏网站北京网站推广
  • 网站制作大连如何建立自己的网站?
  • 龙江网站开发长沙seo服务
  • ps设计网站首页界面如何优化网络速度
  • 新郑市网站建设定制开发nba最新消息新闻报道
  • 政府门户网站建设自查报告如何做推广呢
  • wordpress外网seo优化方案策划书
  • 网站建设与开发 期末作品网站设计开发网站
  • 营销型手机网站建设网站关键词优化排名怎么做
  • 上海网站推广企业搜索关键词排名查询
  • 电子商务网站建设课后习题答案前端seo怎么优化
  • 网站跟app的区别是什么意思2345网址导航怎么下载