用php做的网站有/网站排名top排行榜

用php做的网站有,网站排名top排行榜,科普文章在那个网站做,个人网站可以做百度推广么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.mzph.cn/bicheng/75104.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣HOT100之矩阵:73. 矩阵置零

这道题我没有想到什么好的办法,直接暴力AC了,直接遍历两次矩阵,第一次遍历用两个向量分别记录出现0的行数和列数,第二次遍历就判断当前的元素的行数或者列数是否出现在之前的两个向量中,若出现了就直接置零&#xff0c…

推荐系统(十八):优势特征蒸馏(Privileged Features Distillation)在商品推荐中的应用

在商品推荐系统中,粗排和精排环节的知识蒸馏方法主要通过复杂模型(Teacher)指导简单模型(Student)的训练,以提升粗排效果及与精排的一致性。本文将以淘宝的一篇论文《Privileged Features Distillation at …

深度学习四大核心架构:神经网络(NN)、卷积神经网络(CNN)、循环神经网络(RNN)与Transformer全概述

目录 📂 深度学习四大核心架构 🌰 知识点概述 🧠 核心区别对比表 ⚡ 生活化案例理解 🔑 选型指南 📂 深度学习四大核心架构 第一篇: 神经网络基础(NN) 🌰 知识点概述…

R语言对偏态换数据进行转换(对数、平方根、立方根)

我们进行研究的时候经常会遇见偏态数据,数据转换是统计分析和数据预处理中的一项基本技术。使用 R 时,了解如何正确转换数据有助于满足统计假设、标准化分布并提高分析的准确性。在 R 中实现和可视化最常见的数据转换:对数、平方根和立方根转…

第十四届蓝桥杯省赛电子类单片机学习记录(客观题)

01.一个8位的DAC转换器,供电电压为3.3V,参考电压2.4V,其ILSB产生的输出电压增量是(D)V。 A. 0.0129 B. 0.0047 C. 0.0064 D. 0.0094 解析: ILSB(最低有效位)的电压增量计算公式…

【算法】手撕快速排序

快速排序的思想 任取一个元素作为枢轴,然后想办法把这个区间划分为两部分,小于等于枢轴的放左边,大于等于枢轴的放右边 然后递归处理左右区间,直到空或只剩一个 具体动画演示详见 数据结构合集 - 快速排序(算法过程, 效率分析…

《八大排序算法》

相关概念 排序:使一串记录,按照其中某个或某些关键字的大小,递增或递减的排列起来。稳定性:它描述了在排序过程中,相等元素的相对顺序是否保持不变。假设在待排序的序列中,有两个元素a和b,它们…

JavaScript DOM与元素操作

目录 DOM 树、DOM 对象、元素操作 一、DOM 树与 DOM 对象 二、获取 DOM 元素 1. 基础方法 2. 现代方法(ES6) 三、修改元素内容 四、修改元素常见属性 1. 标准属性 2. 通用方法 五、通过 style 修改样式 六、通过类名修改样式 1. className 属…

大模型学习:从零到一实现一个BERT微调

目录 一、准备阶段 1.导入模块 2.指定使用的是GPU还是CPU 3.加载数据集 二、对数据添加词元和分词 1.根据BERT的预训练,我们要将一个句子的句头添加[CLS]句尾添加[SEP] 2.激活BERT词元分析器 3.填充句子为固定长度 代码解释: 三、数据处理 1.…

10组时尚复古美学自然冷色调肖像电影照片调色Lightroom预设 De La Mer – Nautical Lightroom Presets

De La Mer 预设系列包含 10 种真实的调色预设,适用于肖像、时尚和美术。为您的肖像摄影带来电影美学和个性! De La Mer 预设非常适合专业人士和业余爱好者,可在桌面或移动设备上使用,为您的摄影项目提供轻松的工作流程。这套包括…

机器学习的一百个概念(4)下采样

前言 本文隶属于专栏《机器学习的一百个概念》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见[《机器学习的一百个概念》 ima 知识库 知识库广场搜索&…

数据安全系列4:密码技术的应用-接口调用的身份识别

传送门 数据安全系列1:开篇 数据安全系列2:单向散列函数概念 数据安全系列3:密码技术概述 什么是认证? 一谈到认证,多数人的反应可能就是"用户认证" 。就是应用系统如何识别用户的身份,直接…

STL之map和set

1. 关联式容器 vector、list、deque、 forward_list(C11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。 关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是结…

Vue3 其它API Teleport 传送门

Vue3 其它API Teleport 传送门 在定义一个模态框时,父组件的filter属性会影响子组件的position属性,导致模态框定位错误使用Teleport解决这个问题把模态框代码传送到body标签下

《Python Web网站部署应知应会》No4:基于Flask的调用AI大模型的高性能博客网站的设计思路和实战(上)

基于Flask的调用AI大模型的高性能博客网站的设计思路和实战(上) 摘要 本文详细探讨了一个基于Flask框架的高性能博客系统的设计与实现,该系统集成了本地AI大模型生成内容的功能。我们重点关注如何在高并发、高负载状态下保持系统的高性能和…

力扣刷题-热题100题-第27题(c++、python)

21. 合并两个有序链表 - 力扣(LeetCode)https://leetcode.cn/problems/merge-two-sorted-lists/description/?envTypestudy-plan-v2&envIdtop-100-liked 常规法 创建一个新链表,遍历list1与list2,将新链表指向list1与list2…

AI加Python的文本数据情感分析流程效果展示与代码实现

本文所使用数据来自于梯田景区评价数据。 一、数据预处理 数据清洗 去除重复值、空值及无关字符(如表情符号、特殊符号等)。 提取中文文本,过滤非中文字符。 统一文本格式(如全角转半角、繁体转简体)。 中文分词与去停用词 使用 jieba 分词工具进行分词。 加载自定义词…

Microi吾码界面设计引擎之基础组件用法大全【内置组件篇·上】

🎀🎀🎀 microi-pageengine 界面引擎系列 🎀🎀🎀 一、Microi吾码:一款高效、灵活的低代码开发开源框架【低代码框架】 二、Vue3项目快速集成界面引擎 三、Vue3 界面设计插件 microi-pageengine …

【多线程】单例模式和阻塞队列

目录 一.单例模式 1. 饿汉模式 2. 懒汉模式 二.阻塞队列 1. 阻塞队列的概念 2. BlockingQueue接口 3.生产者-消费者模型 4.模拟生产者-消费者模型 一.单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,其核心思想是确保…

Vuex状态管理

Vuex Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式管理应用的所有组件状态,并以相应的规则保证状态以一种可预测的方式发生变化。(类似于在前端的数据库,这里的数据存储在内存当中) 一、安装并配置 在项目的…