new String创建几个对象
在java17中 :
问题1:new String("abc")会产生多少个对象?
分两种情况:
情况1:
如果”abc”这个字符串常量不存在,则创建两个对象,分别是“abc”这个字符串常量,以及new String这个实例对象
情况2:
如果”abc“这个字符串常量存在,则只会创建一个对象,就是String这个对象。
分析:
new关键字根据已经加载的系统类Sting在堆内存里面去实例化一个字符串对象,然后在String对象的构造函数里面传递了一个”abc“的一个字符串,因为String里面的字符串成员变量是一个final修饰的,所以它是一个字符串常量,所以接下来JVM会去拿字面量"abc"去字符串常量池里面去试图找到对应它的一个String的对象引用,如果拿不到就会在堆内存里面去创建一个”abc“的String对象,并且把引用保存到字符串常量池里面,后续如果再有字面量”abc“的一个定义,只需要从常量池里面获取对应的引用就可以了,不需要再创建。
问题2:String str =“ab”+ “c” 会创建几个对象 ?
分析:
”ab“+”c”在编译阶段编译为abc字符串,被放到字符串常量池中。常量与常量的拼接,在编译阶段会优化。
所以会创建一个对象:abc
问题3:String abc ="a"+ new String("bc")会创建几个对象 ?
分析:
通过javap -v test.class反编译可知
会产生一个new String(”bc“)对象和一个bc字符串常量
问题4:String str =new String(“a”) + new String(“b”) 会创建几个对象 ?
分析:

通过javap -v test.class反编译可知
会创建四个对象,一个 new String(“a”)、一个常量池的a、一个 new String(“b”)和一个常量池的b
在java1.8中
问题1:new String("abc")会产生多少个对象?
与java17一致
问题2:String str =“ab”+ “c” 会创建几个对象 ?
与java17一致
问题3:String abc ="a"+ new String("bc")会创建几个对象 ?
分析:
会产生一个StringBuilder对象、一个字符串常量a、一个string(”bc“)对象、一个bc字符串常量 深入剖析: StringBuilder 的 toString() 方法中有 new String(value, 0, count)、加上new String(“abc”)对象 ,总共4个对象
问题4:String str =new String(“a”) + new String(“b”) 会创建几个对象 ?
分析:
会产生一个StringBuilder对象、一个string(”a”)对象、一个a字符串常量、一个string(“b”)对象、一个b字符串常量、加上一个new String(“ab”)对象,总共6个对象
相关文章:
new String创建几个对象
在java17中 : 问题1:new String("abc")会产生多少个对象? 分两种情况: 情况1: 如果”abc”这个字符串常量不存在,则创建两个对象,分别是“abc”这个字符串常量,以及ne…...
【路由协议】使用按需路由协议和数据包注入的即时网络模拟传递率(PDR)、总消耗能量和节点消耗能量以及延迟研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
c#实现依赖注入
当谈到C#中的依赖注入(Dependency Injection,DI)时,我们可以使用一个简单的示例来说明它是如何工作的。依赖注入是一种设计模式,用于将依赖关系从一个类传递到另一个类,以实现松耦合和可测试性。 假设我们有一个简单的订单处理应用程序,其中包含两个主要类:OrderServi…...
算法通关村十一关 | 位运算实现加法和乘法
1.位实现加法和乘法 在计算机中,位运算的效率要比加减乘除的效率更高,因此在高性能软件中源码中大量使用,计算机里各种运算基本上都是位运算。 学习下面内容之前建议先学习位运算规则:算法通关村十一关 | 位运算的规则_我爱学算…...
C++笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用
C笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用 参考博客:C笔记之各种sleep方法总结 code review! 文章目录 C笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用1.条件变量&…...
Dubbo之DubboBootstrap源码解析
功能描述 DubboBootstrap是Dubbo的启动类,包含服务启动、初始化、预处理配置、销毁清理等核心功能 功能分析 核心DubboBootstrap类分析 主要成员变量分析 private static volatile DubboBootstrap instance; //缓存者启动类的实例对象,以static形式…...
SpringBoot + Vue 微人事 项目 (第八天)
基础信息设置 在该页面添加一个大div,然后添加一个tab选项卡,Element UI里面有 把代码复制到大div里面,把里面的label和name属性改成我们想要的,再把tab-click"handleClick"去掉 <div><el-tabs v-model"a…...
人工智能引领图文扫描新趋势
1. 背景和影响 近日,中国大学生服务外包创新创业大赛决赛在江南大学圆满落幕。为满足现代服务产业企业的现实需求,本次竞赛内容设计充分聚焦企业发展中所面临的技术、管理等现实问题,与产业的结合度更紧密,智能文字识别技术是大赛…...
ChatGPT在智能城市规划和交通优化中的应用如何?
智能城市规划和交通优化是应对城市化挑战、提高城市可持续性的重要领域。在这方面,ChatGPT作为一种强大的自然语言处理模型,可以发挥重要作用,帮助实现更智能、高效的城市规划和交通管理。本文将详细探讨ChatGPT在智能城市规划和交通优化中的…...
探索Perfetto:开源性能追踪工具的未来之光
探索Perfetto:开源性能追踪工具的未来之光 1. 引言 A. 介绍Perfetto的背景和作用 随着移动应用、桌面软件和嵌入式系统的不断发展,软件性能优化变得愈发重要。在这个背景下,Perfetto作为一款开源性能追踪工具,日益引起了开发者…...
A*算法图文详解
基本概念 A*算法最早于1964年在IEEE Transactions on Systems Science and Cybernetics中的论文《A Formal Basis for the Heuristic Determination of Minimum Cost Paths》中首次提出。其属于一种经典的启发式搜索方法,所谓启发式搜索,就在于当前搜索…...
[MySQL] — 数据类型和表的约束
目录 数据类型 数据类型分类 数值类型 tinyint类型 bit类型 小数类型 float decimal 字符串类型 char varchar char和varchar的区别 日期和时间类型 enum 和 set 表的约束 空属性 默认值 列描述 zeorfill 主键 创建表时在字段上指定主键 删除主键: 追…...
JetBrains IDE远程开发功能可供GitHub用户使用
JetBrains与GitHub去年已达成合作,提供GitHub Codespaces 与 JetBrains Gateway 之间的集成。 GitHub Codespaces允许用户创建安全、可配置、专属的云端开发环境,此集成意味着您可以通过JetBrains Gateway使用在 GitHub Codespaces 中运行喜欢的IDE进行…...
LVS 负载均衡集群
集群 集群(Cluster)是一组相互连接的计算机或服务器,它们通过网络一起工作以完成共同的任务或提供服务。集群的目标是通过将多台计算机协同工作,提高计算能力、可用性、性能和可伸缩性,适用于大量高并发的场景。 集群…...
Mongodb Ubuntu安装
Mongodb Ubuntu安装 1.更新软件源导入MongoDB的GPG密钥 sudo apt update sudo apt install -y dirmngr wget gnupg apt-transport-https ca-certificates software-properties-common gnupgwget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add…...
【Spring Boot 源码学习】自动装配流程源码解析(下)
自动装配流程源码解析(下) 引言往期内容主要内容4. 排除指定自动配置组件5. 过滤自动配置组件6. 触发自动配置事件 总结 引言 上篇博文,笔者带大家了解了自动装配流程中有关自动配置加载的流程; 本篇将介绍自动装配流程剩余的内…...
基于微信小程序的毕业设计题目200例
个人简介:7 年大厂程序员经历,擅长Java、微信小程序、Python、Android等,大家有这一块的问题可以一起交流! 各类成品 java毕设 。javaweb,ssh,ssm,springboot等等项目框架,源码丰富&…...
【数据管理】什么是数据管理?
文章目录 前言常见内容主题领域数据类型元数据引用数据主数据交易数据 数据类型的特点数据类型之间的关系GIGO数据质量评估 数据质量管理数据治理数据安全 前言 数据管理,即对数据资源的管理。按照 DAMA (国际数据管理协会)的定义࿱…...
[oneAPI] 手写数字识别-LSTM
[oneAPI] 手写数字识别-LSTM 手写数字识别参数与包加载数据模型训练过程结果 oneAPI 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel DevCloud for oneAPI:https://devcloud.intel.com/oneapi/get_started/aiAnalyticsToolk…...
通过css设置filter 属性,使整个页面呈现灰度效果,让整个网页变灰
通过css设置filter 属性设置页面整体置灰 效果图: 通过设置 filter 属性为 grayscale(100%),页面中的所有元素都会被应用灰色滤镜效果,使整个页面呈现灰度效果。 <style type"text/css"> html { filter: grayscale(100%); -webkit-f…...
红日靶场(vulnstack)实战复盘:从外网突破到域控的完整攻击链剖析
1. 红日靶场环境搭建与拓扑解析 红日靶场(vulnstack)是国内知名的渗透测试实战平台,模拟了真实企业网络环境中常见的漏洞场景。这个靶场特别适合想要系统学习内网渗透技术的新手,我自己第一次接触时就被它贴近实战的设计惊艳到了。…...
告别龟速下载:手把手教你离线部署Wine 5.0的Mono与Gecko组件
1. 为什么你需要离线安装Wine组件 每次在Linux上配置Wine运行Windows程序时,最让人头疼的就是等待Mono和Gecko组件下载的过程。我曾经在一个网络状况不太好的服务器上安装Wine,光是下载这两个组件就花了整整三个小时,期间还因为网络波动失败…...
MiGPT小爱音箱AI升级终极指南:5步快速接入ChatGPT和豆包大模型
MiGPT小爱音箱AI升级终极指南:5步快速接入ChatGPT和豆包大模型 【免费下载链接】mi-gpt 🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。 项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt 你是否曾希望家中的小…...
DroidCam OBS插件:如何将手机摄像头变成专业直播设备?
DroidCam OBS插件:如何将手机摄像头变成专业直播设备? 【免费下载链接】droidcam-obs-plugin DroidCam OBS Source 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam-obs-plugin 还在为直播设备预算不足而发愁?想让手机摄像头发…...
DOIP认知
1,概述 DOIP(Diagnostic communication over Internet Protocol)是基于以太网传输诊断数据的协议,规范于ISO13400标准。其核心功能是在TCP/IP协议栈之上构建诊断通信层,实现外部测试设备与车载网络之间的连接。 在ISO七…...
软件功能设计核心原则与方法论
软件功能设计需将用户需求转化为可落地的功能模块,遵循四大核心原则,确保规范性、实用性和可扩展性。以下表格总结核心原则及示例:原则核心要点示例(EMS场景)高内聚、低耦合模块职责单一,边界清晰ÿ…...
汽车电子架构演进:从分布式ECU到域控制器的技术变革与工程实践
1. 从一周新闻看汽车电子的演进脉络2012年8月的那一周,对于汽车电子行业来说,是平静水面下暗流涌动的一个缩影。当时,我正和几位在主机厂和Tier 1供应商工作的朋友频繁交流,大家普遍的感觉是,传统的汽车电子电气架构&a…...
PADS PCB设计工具的核心优势与应用实践
1. PADS PCB设计工具概述作为一名拥有十年PCB设计经验的工程师,我亲身体验过从Protel到Altium再到Cadence Allegro的各种EDA工具。但当我在2015年首次接触PADS时,它独特的"约束驱动设计"理念和高效的交互式布线引擎立刻吸引了我。PADS…...
从NASA音频设计看极端约束下的工程权衡:可靠性如何塑造系统特性
1. 项目概述:从一次论坛讨论说起如果你和我一样,是个对技术细节有强迫症的老工程师,或者是个音频发烧友,那你肯定也曾在看NASA的航天直播或纪录片时,皱起眉头嘀咕过:“这声音怎么这么差?” 那种…...
EDA数据管理难题的通用解法:规则引擎驱动的设计对象抽象
1. 项目概述:一个EDA数据管理难题的通用解法在芯片设计、PCB布局这些电子设计自动化领域摸爬滚打过的工程师,大概都经历过一种“幸福的烦恼”:手头的设计工具越来越强大,但随之产生的数据文件也越来越多、越来越复杂。一个简单的电…...
