黑马JVM总结(七)

news2024/11/30 6:37:51

(1)StringTable_编译器优化

“a”+“b”对应#4:是去常量池中找ab的这个符号

astore    5:是把这个存入编号为5的局部变量

“ab”对应的指令 #4,跟“a”+“b”对应#4下面弄是一样的

在执行s3=“ab”这行个代码时,去常量池中找ab这个对象,发现串池中没有ab这个对象,创建放入串池,执行到s5=“a”+“b”这行代码时,去常量池中找ab这个对象,串池中有了ab这个对象。不会再创建新的对象了,他们的值是相等的

所以astore到  3的变量和astore到 5 的变量都是串池中的ab字符串对象

(2)StringTable_字符串延迟加载

通过IDEA的Memory查看运行时String对象的个数,

跳转下一步:

 

 

在往下走是上面创建的对象串池中有了不会再创建新的对象啦

(3)StringTable_intern_1.8

new String("a")+new String("b")  底层调用是StringBuild通过newString("ab")是存放到堆中的

可以通过intern把堆中的对象放到串池中并返回,会返回true

最后串池中已有这个ab,“ab”就不会新建对象了,会返回true

如果先有“ab”,下面创建的对象s,调用intern方法是,因为串池中已经有了所以不会把队中的对象再放入串池,而是返回串池中的对象,所以s不等于x 

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

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

相关文章

【Python】从入门到上头—mysql数据库操作模块mysql-connector和PyMySQL应用场景 (15)

mysql-connector MySQL官方提供了mysql-connector-python驱动 安装驱动 python -m pip install mysql-connector连接数据库获取连接 import mysql.connectordb mysql.connector.connect(host"localhost", #ipuser"root", #用户名passwd"root",…

Python的命令行参数

Python的命令行参数,提供了很多有用的功能,可以方便调试和运行,通过man python就能查看,以下是一些常用参数使用实例和场景: 1. -B参数 在import时候,不产生pyc或者pyo文件: 比如有程序main.py如下: from Hello im…

SSM - Springboot - MyBatis-Plus 全栈体系(七)

第二章 SpringFramework 四、SpringIoC 实践和应用 3. 基于 注解 方式管理 Bean 3.4 实验四:Bean 属性赋值:基本类型属性赋值(DI) Value 通常用于注入外部化属性 3.4.1 声明外部配置 application.properties catalog.nameM…

UG\NX二次开发 获取装配部件的相关信息UF_ASSEM_ask_component_data

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 简介: UG\NX二次开发 获取装配部件的相关信息UF_ASSEM_ask_component_data 包括:零件名称、引用集名称、实例名称、组件的位置、坐标系矩阵、转换矩阵。 效果: 代…

Docker基础学习

Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用应用的安装 掌握docker迁移与备份相关命令 能够运用Dockerfile编写创建容器的脚本 能够…

并联电容器交流耐压试验方法

对被试并联电容器两极进行充分放电。 检查电容器外观、 污秽等情况, 判断电容器是否满足试验要求状态。 用端接线将并联电容器两极短接连接湖北众拓高试工频耐压装置高压端, 外壳接地。 接线完成后经检查确认无误, 人员退出试验范围。 接入符合测试设备的工作电源,…

Java(二)--面向对象

十.封装 1.访问权限不用加 在c中是访问权限&#xff1a; 属性/行为&#xff1a; class Person{public:void speak(){cout<<"666";} }; 在Java中是访问权限 属性/行为&#xff1a; class Person{public void speak(){cout<<"666";} }; 2.…

管理类联考——数学——汇总篇——知识点突破——代数——数列

⛲️ 一、考点讲解 1.数列的定义 按一定次序排列的一列数称为数列。 一般形式&#xff1a; a 1 &#xff0c; a 2 &#xff0c; a 3 &#xff0c; … &#xff0c; a n &#xff0c; … &#xff0c; a_1&#xff0c;a_2&#xff0c;a_3&#xff0c;…&#xff0c;a_n&#xf…

ICCV 2023 | 沉浸式体验3D室内设计装修,基于三维布局可控生成最新技术

文章链接&#xff1a; https://arxiv.org/abs/2307.09621 360场景布局可控合成&#xff08;360-degree Image Synthesis&#xff09;目前已成为三维计算机视觉领域一个非常有趣的研究方向&#xff0c;在虚拟三维空间中沉浸式的调整和摆放场景对象&#xff0c;可以为用户带来身临…

线性代数的本质(八)——内积空间

文章目录 内积空间内积空间正交矩阵与正交变换正交投影施密特正交化实对称矩阵的对角化 内积空间 内积空间 三维几何空间是线性空间的一个重要例子&#xff0c;如果分析一下三维几何空间&#xff0c;我们就会发现它还具有一般线性空间不具备的重要性质&#xff1a;三维几何空…

Java项目-苍穹外卖-Day12-Apache POI及Excel数据报表

文章目录 前言工作台需求分析代码导入功能测试 Apache POI介绍入门案例写入excel文件内容读取excel文件 导出运营数据Excel表需求分析代码开发功能测试 前言 最后一天&#xff0c;主要就是数据怎么从后端导出到excel表格&#xff0c;以及工作台内容的开发 工作台 需求分析 代…

中秋国庆双节邮件营销怎么做?看这里!

今年的国庆节恰逢中秋节&#xff0c;因此国家假日办安排国庆中秋连放8天。对于打工人来说&#xff0c;超长的假期是外出旅游、回家探亲好时机&#xff0c;可是对于企业来说&#xff0c;却是一次仅次于春节的营销大战。这个时候企业营销人员当然是要借助各种营销手段来获取流量和…

高阶导数的概念与公式

目录 高阶导数的概念 常用的高阶导数的公式 隐函数补充 反函数补充 高阶导数的概念 高阶导数是指一阶或二阶及以上的导数。这些导数可以通过连续进行一阶导数的计算来得到。然而&#xff0c;实际计算高阶导数时&#xff0c;存在一些问题&#xff0c;例如对抽象函数高阶导数…

测试-----selenuim webDriver

文章目录 1.页面导航2.元素定位3. 浏览器操作4.获取元素信息5. 鼠标的操作6. 键盘操作7. 元素等待8.下拉框9.弹出框10.滚动条11.frame处理12.验证码处理&#xff08;cookie&#xff09; 1.页面导航 首先是导入对应的包 :from selenium import webdriver然后实例化:driver web…

为什么大家都在用 WebP?

WebP 是谷歌在 2010 年提出的一种新型的图片格式&#xff0c;放到现在来讲&#xff0c;已经不算是“新”技术了&#xff0c;毕竟已经有了更新的 JPEG XL 和 AVIF 。但是在日常工作中&#xff0c;大家时常会碰到保存下来的图片的后缀是 .webp。那么 WebP 到底有什么魔力&#xf…

Explain 性能分析

目录 1. 能干什么 2. 如何分析 3. 各字段解释 1. 能干什么 使用 explainsql 的方式&#xff0c;分析查询语句的性能瓶颈。 ① 表的读取顺序&#xff1b; ② 数据读取操作的操作类型&#xff1b; ③ 哪些索引可以使用&#xff1b; ④ 哪些索引被实际使用&#xff1b; ⑤ 表之…

Latex之在作者名字后面加上OCRID的图标

\usepackage{orcidlink} \author{Bob\textsuperscript{\orcidlink{0000-0000-0000-0000}}}效果如图

Java8实战-总结27

Java8实战-总结27 用流收集数据分区分区的优势将数字按质数和非质数分区 用流收集数据 分区 分区是分组的特殊情况&#xff1a;由一个谓词(返回一个布尔值的函数)作为分类函数&#xff0c;它称分区函数。分区函数返回一个布尔值&#xff0c;这意味着得到的分组Map的键类型是B…

浅谈C++|STL初识篇

一.STL的诞生 长久以来&#xff0c;软件界一直希望建立一种可重复利用的东西。 .C的面向对象和泛型编程思想&#xff0c;目的就是复用性的提升 大多情况下&#xff0c;数据结构和算法都未能有一套标准,导致被迫从事大量重复工作 为了建立数据结构和算法的一套标准&#xff0c;诞…

linux入门---命名管道

如何创建命名管道 使用mkfifo函数就可以在程序里面创建管道文件&#xff0c;该函数的声明如下&#xff1a; 该函数需要两个参数&#xff0c;第一个参数表示要在哪个路径下创建管道文件并且这个路径得待上管道文件的名字&#xff0c;因为每个文件都有对应的权限&#xff0c;所…