黑马JVM总结(二)

news2024/10/9 4:21:55

(1)栈

栈帧对应一次方法的调用,线程是要执行代码的,这些代码都是由一个个方法组成,线程运行的时候每个方法需要的内存叫做一个栈帧 

(2)栈的演示

Frames:相当有栈   方法相当于栈帧,Variables:方法的参数

活动栈帧在我们栈的顶部正在执行的栈帧叫做活动栈帧

method2栈帧执行完释放掉出栈

 method1:执行完出栈

 主方法再执行,执行结束

(3) 栈的问题辨析

 

 1.栈帧内存在每一次方法结束后都会弹出栈,会自动的被回收掉,不需要垃圾回收管理栈内存

2.栈划分的越大,反而会使线程数变少,划分大了只是能够进行更多次的方法递归调用,并不是划分越大越好,增强运行的效率

3.需要看多个线程对这个变量时共享的或者这个变量对你每个线程是私有的

比如说多个线程调用这个方法,会不会造成 x值的混乱呢?不会的因为x变量是方法内的局部变量,一个线程对应一个栈,线程内每一次方法的调用都会产生一个新的栈帧 ,他们是互不干扰的

如果变量时static的:如果不加线程安全 保护的话,就会产生线程安全问题

如果是共享的需要考虑线程安全问题,你是每个线程私有的就不用考虑线程安全问题

 

(4)栈问题辨析-线程安全

m1方法不会产生线程安全问题,因为sb是线程内的一个局部变量,是属于每个线程私有的,是线程安全的

m2:不是线程安全的,因为作为方法的参数,意味着可能有其他的线程可能访问到它,他就不是线程私有的啦对多个线程是一个共享的

m3:也不是线程安全的,因为他把结果对象返回啦,其他线程可能拿到这个参数进行修改

main方法中把它作为参数进行修改,其他线程也进行修改,它就是线程共享的啦,多个线程共享一个对象,需要使用StringBuffer

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/994345.html

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

相关文章

大数据导论 笔记

一、大数据方向 1、技术发展 计算机网络云计算大数据时代人工智能(本科:使用,研究生:推导,博士:创新) 2023年 大数据模型 人工智能元年 2、基础课程 hadoop 大数据基础 三大件:HDF…

计算机网络原理 网络层

一,网络层的几个重要概念 1,网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)引起了长期的争论。争论的焦点就是:在计算机通信中,可靠交…

Kafka3.0.0版本——消费者(RoundRobin分区分配策略以及再平衡)

目录 一、RoundRobin 分区分配策略原理二、RoundRobin分区分配策略代码案例2.1、创建带有7个分区的sixTopic主题2.3、创建三个消费者 组成 消费者组2.3、创建生产者2.4、测试2.5、RoundRobin分区分配策略代码案例说明 三、RoundRobin 分区分配再平衡案例3.1、停止某一个消费者后…

MySQL--MySQL表的增删改查(进阶)

check 聚合查找 count sum average max min 我们这里先构造出多张表 查询lisi同学的成绩 来自student和来自score c 增加名字这一条件 查询所有同学的总成绩以及个人信息 来自score和来自student 查询所有同学的各科成绩以及个人信息 来自student,course和…

数据分享|SAS数据挖掘EM贷款违约预测分析:逐步Logistic逻辑回归、决策树、随机森林...

全文链接:http://tecdat.cn/?p31745 近几年来,各家商业银行陆续推出多种贷款业务,如何识别贷款违约因素已经成为各家商业银行健康有序发展贷款业务的关键(点击文末“阅读原文”获取完整数据)。 相关视频 在贷款违约预…

Python开源项目周排行 2023年第33周

#2023年第33周2023年9月9日1feapder款上手简单,功能强大的 Python 爬虫框架,内置 AirSpider、Spider、TaskSpider、BatchSpider 四种爬虫解决不同场景的需求。命名源于 fast-easy-air-pro-spider 缩写。 支持断点续爬、监控报警、浏览器渲染、海量数据去…

【洛谷 P1105】平台 题解(结构体+暴力枚举)

平台 题目描述 空间中有一些平台。给出每个平台的位置,请你计算从每一个平台的边缘落下之后会落到哪一个平台上。注意,如果某两个平台的某个两边缘横坐标相同,物体从上面那个平台落下之后将不会落在下面那个平台上。平台可能会重叠。 如果…

使用GPU虚拟化技术搭建支持3D设计的职校学生机房(云教室)

背景 学校为职业学校,计算机教室需要进行Maya、Adobe Illustrator、Adobe Dreamweaver、Adobe PhotoShop等软件的教学。每个教室为35用户。资源需求为4核、8G内存、80G硬盘。 基于桌面虚拟化VDI技术的机房在成本、可管理性方面,相对于传统胖终端的机房…

004微信小程序云开发API数据库-插入记录-删除记录-更新记录

文章目录 1.微信小程序云开发API数据库-插入记录案例代码 2.微信小程序云开发API数据库-删除记录案例代码 3.微信小程序云开发API数据库-更新记录案例代码 1.微信小程序云开发API数据库-插入记录 微信小程序云开发API数据库是一个方便快捷的数据库解决方案,可以让开…

lv4 嵌入式开发-1 Linux文件IO

目录 1 文件的概念和类型 2 如何理解标准IO 3 流(FILE)的含义 3.1 流 3.2 文本流和二进制流 3.3 流的缓冲类型 4 小结 5 缓存区实验 1 文件的概念和类型 概念:一组相关数据的有序集合 文件类型: 常规文件 r 目录文件 d 字符设备文件 …

电力社区电力故障,潜在风险如何避免?

在现代社会中,电力已经成为我们日常生活不可或缺的一部分。它驱动着我们的家庭设备、照明系统、电子设备和许多其他关键基础设施。然而,电力的可靠性和安全性对于确保我们的住宅社区运行顺畅至关重要。 在这个背景下,配电柜监控成为了一个至关…

Python项目打包与部署(三):打包与部署的实际操作流程

其它章节 Python项目打包与部署(一):模块与包的概念与关系Python项目打包与部署(二): init.py的作用及内容各类Python项目的项目结构及代码组织最佳实践 在实际项目开发过程中,标准化的项目打包与部署流程,对于开源项目,可以帮助你…

[移动通讯]【Carrier Aggregation-4】【LTE-2】

前言: 参考: 4G/LTE - LTE Advanced 参考: 《Carrier Aggregation Explained In 101 Seconds》 Qualcomm 《Carrier aggregation (CA) in LTE-Advanced by TELCOMA Global》 《Carrier Aggregation _CA_Part1》 《Carrier Aggregation _CA_Pa…

手动开发-简单的Spring基于XML配置的程序--源码解析

手动开发-简单的Spring基于XML配置的程序 文章目录 手动开发-简单的Spring基于XML配置的程序思路分析完整代码&: 本文带着大家写一个简单的Spring容器,通过读取beans.xml配置文件,获取第一个JavaBean:Monster的对象&#xff0…

光源控制器光源亮度调节操作说明

光源控制器光源亮度调节操作说明 光源亮度的调节在许多应用中都扮演着至关重要的角色,不仅影响图像质量,还能改善工作环境。下面是关于光源控制器光源亮度调节的详细操作步骤,帮助您轻松实现亮度的合适调整。 步骤一:登录系统 …

MySQL——常见问题

NULL和空值的区别 1、空值不占空间,NULL值占空间。当字段不为NULL时,也可以插入空值。 2、当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者为 NULL 的,不能查出空值。 3、判断NULL 用IS NULL 或者 is no…

Bootstrap与响应式图片设计相关的类

01-图像随父元素的同步缩放 可以利用类 .img-fluid 实现图像随父元素同步缩放。 示例代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>图像的同步缩放</title><meta name"viewport&…

C/C++标准输入输出函数最全解析(含C/C++的输出控制符)

C/C标准输入输出函数最全解析&#xff08;含C/C的输出控制符&#xff09; 一、标准输入流1、C 标准输入1.1 标准输入流及对缓冲区的理解1.2 scanf()1.2.1 scanf()简介1.2.2 ANSI C中scanf()的转换说明1.2. 3 scanf()转换说明中的修饰符 1.3 gets() - 不建议1.4 fgets()1.5 fget…

【笔记】大模型时代下做科研的四个思路 - 论文精读·52

视频地址&#xff1a;大模型时代下做科研的四个思路 相关大模型 CV: ViT(22B) , ViT-G(2B) from google 多模态&#xff1a;ViT-E(4B) from google NLP&#xff1a;LLaMA(70B,130B,330B,651B) from Meta 提问&#xff1a;在模型越来越大的时代背景下&#xff0c;如何利用有限…

【接口测试】微信小程序接口自动化的实现方案

背景 前几天看到有人问微信小程序怎么进行接口自动化&#xff0c;所以想把自己如何进行微信小程序接口自动化的方法分享下。 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html这是微信小程序的登陆流程&#xff0c;小程序登陆需要在小程序…