【面试】虚拟机栈面试题
目录
- 一、举例栈溢出的情况
- 二、调整栈大小,能保证不出现溢出吗?
- 三、分配的栈内存越大越好吗?
- 四、垃圾回收是否会涉及到虚拟机栈?
- 五、方法中定义的局部变量是否存在线程安全问题?
- 5.1 说明
- 5.2 代码示例
一、举例栈溢出的情况
- 1. 当栈的大小是固定不变的,不断调用方法,栈中不断加入栈帧,会出现栈溢出的情况StackOverflowError异常
- 2. 可以通过-Xss设置栈的大小
- 3. 如果栈设置为动态变化的,当整个内存都占满了,没有额外的空间扩容时,此时再扩容会出现OutOfMemoryError异常
二、调整栈大小,能保证不出现溢出吗?
- 1. 不能保证
- 2. 例如某个递归方法被调用1000次出现了StackOverflowError,此时调整栈大小,递归方法被调用3000次才出现异常,如果该方法正常情况下最多调用2000次,那么调整栈大小是不会出现溢出的
- 3. 如果是死循环无限递归调用方法时,无论怎么调整栈的大小,总会有溢出的时候
- 4. 调大栈的大小只能让StackOverflowError异常来得晚一些
三、分配的栈内存越大越好吗?
- 1. 理论上栈内存分配得越大,延长了出现StackOverflowError异常的时间
- 2. 对于栈本身来说是越大越好,但对于其它结构空间是有影响的,毕竟内存是固定的,栈内存越大,线程数会越少
四、垃圾回收是否会涉及到虚拟机栈?
- 1. 不会
五、方法中定义的局部变量是否存在线程安全问题?
5.1 说明
- 1. 如果只有一个线程才可以操作此数据,则是线程安全的
- 2. 如果有多个线程操作此数据,则此数据是共享数据。不考虑同步机制的话,会存在线程安全问题。
- 3. 在方法里定义的变量,且变量的生命周期仅限于该方法,则该变量是线程安全的
- 4. 如果变量是作为参数传到方法里的,或者方法中定义的变量作为返回值,给到其它方法调用,这两种情况是线程不安全的
5.2 代码示例
package com.learning.stack.local_variables;/*** @Author wangyouhui* @Description 线程安全**/
public class ThreadSafeTest {// stringBuilder是线程安全的public static void test1(){StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("a");}// stringBuilder是线程不安全的public static void test2(StringBuilder stringBuilder){stringBuilder.append("a");try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}stringBuilder.append("b");}// stringBuilder是线程不全的public static StringBuilder test3(){StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("a");return stringBuilder;}public static void main(String[] args) {for (int i = 0; i < 1000; i++) {StringBuilder stringBuilder = new StringBuilder();Thread thread = new Thread(() -> {stringBuilder.append("c");try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}stringBuilder.append("d");});thread.start();test2(stringBuilder);try {thread.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println(stringBuilder.toString());}}
}相关文章:
【面试】虚拟机栈面试题
目录 一、举例栈溢出的情况二、调整栈大小,能保证不出现溢出吗?三、分配的栈内存越大越好吗?四、垃圾回收是否会涉及到虚拟机栈?五、方法中定义的局部变量是否存在线程安全问题?5.1 说明5.2 代码示例 一、举例栈溢出的…...
白话熵增定律
白话熵增定律 热力学中的熵增定律 熵是指一个系统的混乱程度的度量,是热力学中的一个系统的属性。熵增定律是指一个封闭的系统随着时间的发展,在朝平衡状态发展时,其熵会增加,即其越来越混乱。 对于一个房间,如果经常…...
(论文阅读14/100)End-to-end people detection in crowded scenes
文献阅读笔记 简介 题目 End-to-end people detection in crowded scenes 作者 Russell Stewart, Mykhaylo Andriluka 原文链接 https://arxiv.org/pdf/1506.04878.pdf 关键词 Null 研究问题 当前的人员检测器要么以滑动窗口的方式扫描图像,要么对一组离…...
Go的错误处理
什么是错误? 错误表示程序中发生的任何异常情况。假设我们正在尝试打开一个文件,但该文件在文件系统中不存在。这是一种异常情况,表示为错误。 Go 中的错误是普通的旧值。就像任何其他内置类型(例如 int、float64 等)…...
云原生相关概念
云计算 指托管在外部数据中心并按使用量付费提供给用户的软件基础设施。公司不必为昂贵的服务器付费并进行维护。相反,他们可以使用云提供商提供的按需云原生服务,例如存储、数据库和分析。 云原生 是在 云计算环境 中构建、部署和管理现代应用程序的…...
【JS】this指向
一、this指向的四种规则 1.默认绑定规则 默认指向:指向window 独立调用:指向window 对象指向,比较的是引用地址。 console.log(this window); //true console.log({} {}); //false //函数的独立调用 function test(){console.lo…...
SpringCloud Alibaba Demo(Nacos,OpenFeign,Gatway,Sentinel)
开源地址: ma/springcloud-alibaba-demo 简介 参考:https://www.cnblogs.com/zys2019/p/12682628.html SpringBoot、SpringCloud 、SpringCloud Alibaba 以及各种组件存在版本对应关系。可参考下面 版本对应 项目前期准备 启动nacos. ./startup.c…...
基于nodejs+vue畅听校园点歌系统的设计与实现
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...
IDEA 设置代码注释模板
功能简介: 每次看别人代码时,面对毫无注释的类,除了头大还是头大, 以下提供了一种代码类注释模板 新建java类的时候,自动增加类注释,养成代码开发好习惯 效果展示: 代码模板: #if (…...
emoji对齐 特殊字符对齐 文本对齐
emoji如何对齐 特殊字符如何对齐 高级文本对齐 问题引出 我们在程序打印输出时,如何我们所输出的字符中包含emoji文本,或者其它特殊的字符文本,则我们的打印对齐效果将出现错位。以下代码复现了这一效果(tips: 马老师…...
Selenium Python 中的动作链
Selenium 是一个用于自动化的独立的基于 Web 的工具。 它是任何人都可以使用的开源工具。 与Python语言结合使用该工具进行测试。 操作链是 Selenium 的基本组成部分,提供了一种管理低级交互的方法,例如按键、鼠标移动、鼠标按钮操作以及与上下文菜单的…...
OceanBase:03-集群部署
目录 一、集群规划 二、配置要求 三、部署前配置 1.配置 limits.conf 2.配置 sysctl.conf 3.关闭防火墙 4.关闭 SELinux 5.创建数据目录,修改文件所有者信息 6.设置无密码 SSH 登录 7.安装jdk 四、解压执行安装 五、集群部署 1.OBD命令行部署 2. OBD白…...
PTA: 矩阵的乘法运算
矩阵的乘法运算 题目输入格式输出格式输入样例输出样例 代码 题目 线性代数中的矩阵可以表示为一个row*column的二维数组,当row和column均为1时,退化为一个数,当row为1时,为一个行向量,当column为1时&…...
4K Video Downloader Pro v4.28.0(视频下载器)
4K Video Downloader Pro是一款专业的视频下载软件,支持从YouTube、Vimeo、Facebook、Instagram、TikTok等主流视频网站下载高质量的4K、HD和普通视频。它的操作流程简单,只需复制视频链接并粘贴到软件中即可开始下载。此外,该软件还提供了多…...
java pdf,word,ppt转图片
pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0…...
map set
目录 一、关联式容器 二、键值对 三、树形结构的关联式容器 3.1 set 3.1.1 set的介绍 3.1.2 set的使用 3.2 multiset 3.2.1 multiset的介绍 3.2.2 multiset的使用 3.3 map 3.3.1 map的介绍 3.3.2 map的使用 …...
Fourier分析导论——第3章——Fourier级数的收敛性(E.M. Stein R. Shakarchi)
第 3 章 Fourier级数的收敛性(Convergence of Fourier Series) The sine and cosine series, by which one can represent an arbitrary function in a given interval, enjoy among other remarkable properties that of being convergent. This property did not escape…...
解决ruoyi-vue部署到域名子路径静态资源404
参考ruoyi前端手册...
游戏引擎中为什么要用四元数表示旋转而不用欧拉角旋转?
个人观点,仅供参考,如有错误可太刺激了 四元数的简单概念和使用 欧拉角通常用于表示一个物体的旋转状态,而不是表示旋转过程。 欧拉角描述的是物体相对于某个参考坐标系的朝向或旋转状态,通常以不同的轴(例如&#x…...
E-Office(泛微OA)前台任意文件读取漏洞复现
简介 泛微E-Office是一款企业级的全流程办公自动化软件,它包括协同办公、文档管理、知识管理、工作流管理等多个模块,涵盖了企业日常工作中的各个环节。在该产品前台登录页存在文件读取漏洞。 officeserver.php文件存在任意文件读取漏洞,通…...
如何彻底解决Cursor AI试用限制:开源技术方案深度解析
如何彻底解决Cursor AI试用限制:开源技术方案深度解析 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tri…...
别再为VectorCAST环境变量头疼了!手把手教你配置.bat启动脚本(附DO-178C等标准切换指南)
VectorCAST启动脚本配置全指南:从环境变量到行业标准切换 第一次双击那个神秘的.bat文件时,我盯着闪退的命令行窗口足足愣了五分钟。作为刚接触航空电子单元测试的嵌入式工程师,VectorCAST的环境配置就像一堵无形的墙——编译器路径报错、环境…...
减 10 斤 vs 瘦 10 斤,别再被体重秤骗了!
外行看体重,内行看体脂。 减重 10 斤,你掉的可能只是水分、肌肉、肠道废物,身材看着没变化。 瘦 10 斤(减脂),才是真正减掉脂肪组织,身材会明显小一圈,腰围、腿围肉眼可见地缩小。 这…...
Stateflow实战:构建LKA系统状态机的模块化建模与数据管理
1. 从零理解LKA系统与Stateflow建模 第一次接触车道保持辅助系统(LKA)时,我盯着那个能在高速上自动修正方向的方向盘看了半天。这玩意儿到底怎么判断什么时候该介入?后来才知道,核心就是藏在控制器里的状态机逻辑。Sta…...
钉钉知识库日志迁移至Cursor的实践方法和具体操作步骤
一、钉钉知识库导出方法 方法1:手动导出(适合文档数量较少) 操作步骤: 电脑端钉钉 → 左下角【更多】→【文档】→【知识库】 进入目标知识库,打开需要迁移的文档 点击页面左上角 【文档】→【下载为】 选择导出格式:Word (.docx)、PDF 或 长图 文件默认以当前文档…...
告别Minecraft模组英文界面:MASA全家桶汉化包完全指南
告别Minecraft模组英文界面:MASA全家桶汉化包完全指南 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 你是否曾经在Minecraft中面对满屏的英文模组界面感到困惑?…...
从概率图到优化问题:信息矩阵、Hessian矩阵与协方差矩阵的内在统一
1. 概率图模型中的信息矩阵与协方差矩阵 我第一次接触信息矩阵是在做视觉SLAM项目时,当时被一堆矩阵运算绕得头晕。后来才发现,理解它们的关系就像拼乐高——每个零件都有明确的位置和作用。让我们从一个简单的因子图例子开始,看看这些矩阵如…...
aFileChooser架构设计分析:Fragment、Loader和Intent的最佳实践
aFileChooser架构设计分析:Fragment、Loader和Intent的最佳实践 【免费下载链接】aFileChooser [DEPRECATED] Android library that provides a file explorer to let users select files on external storage. 项目地址: https://gitcode.com/gh_mirrors/af/aFil…...
一键切换语境+保留术语一致性+上下文感知翻译,Perplexity翻译查询功能的3大颠覆性能力,现在不用就落后了
更多请点击: https://codechina.net 第一章:Perplexity翻译查询功能的全景概览 Perplexity 的翻译查询功能并非传统意义上的“文本翻译器”,而是一种融合语义理解、上下文感知与多语言知识检索的智能问答增强机制。它允许用户以任意自然语言…...
告别丑表格!用xlsx-style给Vue+Element UI导出的Excel加个美颜(附完整代码)
专业级Excel导出美化实战:VueElement UI与xlsx-style深度整合指南 在企业级后台管理系统开发中,数据报表的导出功能几乎是标配需求。但开发者常遇到这样的尴尬:精心设计的页面表格导出为Excel后,所有样式荡然无存,变成…...
