java中String的两种创建方法、字符串常量池

java中String的两种创建方法

        • 字符串常量池

字符串常量池

String的两种创建方式:

  • 第一种方式是在常量池中获取字符串对象。
  • 第二种方式是直接在堆空间创建一个新的字符串对象。
//先检查字符串常量池中有没有“apesource”,如果字符产常量池中没有,则创建一个,然后str1指向字符串床常量池中的对象,如果有,则直接将str1指向“apesource”
String str1 = "apesource";
String str2 = new String("apesource");//堆中创建一个新的对象
String str3 = new String("apesource");//堆中创建一个新的对象

System.out.println(str1 == str2);//false
System.out.println(str2 == str3);//false

String的intern()方法:

检查指定字符串在常量池中是否存在?如果存在,则返回地址,如果不存在,则在常量池中创建

String s1 = new String("apesource");
String s2 = s1.intern();//查看字符串常量池中是否存在“apesource”,如果存在则返回地址,如果不存在,则在常量池中创建
String s3 = "apesource"//使用常量池中的已有字符串常量“apesource”
    
System.out.println(s2 == s3);//true,地址相同

String的拼接

String str1 = "str";
String str2 = "ing";

String str3 = "str" + "ing";//常量池中的新字符串对象
String str4 = str1 + str2;//在堆中创建新的字符串对象
String str5 = "string";//常量池中的已有字符串对象

System.out.println(str3 == str4);//false
System.out.println(str3 == str5);//true
System.out.println(str4 == str5);//false

在这里插入图片描述

**String s1 = new String(“abc”);**这句代码里创建了几个字符串对象?

​ 创建1或2个字符串。如果常量池中已存在字符串常量“abc”,则只会在堆空间创建一个字符串常量“abc”。如果常量池中没有字符串常量“abc”,那么它将首先在池中创建,然后在堆空间中创建,因此将创建总共2个字符串对象。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

测绘资质工程测量乙级资质办理条件

新测绘资质分为10个专业: 1.大地测量 2.测绘航空摄影 3.摄影测量与遥感 4.工程测量 5.海洋测绘 6.界线与不动产测绘 7.地理信息系统工程 8.地图编制 9.导航电子地图制作 10.互联网地图服务。 新《测绘资质管理办法》和《测绘资质分类分级标准》&#xff…

【linux】查看Debian应用程序图标对应的可执行命令

在Debian系统中,应用程序图标通常与.desktop文件关联。您可以通过查看.desktop文件来找到对应的可执行命令。这些文件通常位于/usr/share/applications/或~/.local/share/applications/目录下。这里是如何查找的步骤: 1. 打开文件管理器或终端。 2. 导…

Windows下python用ctypes调用C++程序的动态链接库方法(vs2019)

Windows下python用ctypes调用C程序的动态链接库方法(vs2019) https://blog.csdn.net/qq_34288751/article/details/121939189 https://blog.csdn.net/iambinglan1/article/details/133790822

​HDD回暖于2024,与SSD决战于2028--part1

去年小编曾表达过类似观点,市场留给HDD的时间已经不多了,未来5年的发展决定了HDD的最终命运。 扩展阅读:HDD最后的冲刺:大容量硬盘的奋力一搏 SSD以其高速度和低延迟等优点,尤其在容量增长和每GB成本降低方面&#x…

基于Ubuntu22.04部署生产级K8S集群v1.27(规划和核心组件部署篇)

本文档主要根据k8s官网文档和其插件的官网文档,参考部分他人优秀经验,在实际操作中逐渐完成,比较详尽,适合在境内学习者和实践者参考。 实操环境基于VMware Workstation 17 pro,采用ubuntu22.04操作系统(有…

【JAVA-打包jar】jar不能双击运行,Jar包找不到主类

我的问题比较简单,搞了一下午,查阅了很多教程,无意发现,居然是 jdk过期需要更新! 气的吐血! 所以不要废话,首先检查自己的环境变量和JDK!!! 环境变量&…

STC8H8K蓝牙智能巡线小车——2. 点亮左右转弯灯与危险报警灯

任务调用示例 RTX 51 TNY 可做多任务调度,API较为简单。 /* 接口API */// 创建任务 extern unsigned char os_create_task (unsigned char task_id); // 结束任务 extern unsigned char os_delete_task (unsigned char task_id);// 等待 extern unsig…

MySQL 协议(非常详细适合小白学习)

MySQL 查询过程 MySQL 查询过程大致如下: 1)客户端与服务器端建立连接; 2)客户端登陆 MySQL; 3)客户端向服务器端发起一条请求; 4)服务器端先检查查询缓存,如果命中缓…

uniapp 权限申请插件(权限使用说明) Ba-Permissions

简介(下载地址) Ba-Permissions 是一款权限申请插件,支持权限使用说明弹窗,满足市场审核需求。支持自定义权限申请,也支持快速申请定位、相机、媒体、文件、悬浮窗等常见权限。 支持权限使用说明弹窗,满足…

new mars3d.graphic.PolygonEntity({计算平面几何中心点及贴地效果展示

1.Mars3d提供了几何图形相关点位的计算方法polyutil: PolyUtil - V3.7.0 - Mars3D API文档 2.通过api可以算出相关经纬度坐标,实现相关中心点的展示 : 功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 3.相关实现代码: fu…

【例7.5】 取余运算(mod) 快速幂

1326:【例7.5】 取余运算(mod) 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 输入b,p,k的值,求bpmodk 的值。其中b,p,kk为长整型数。 【输入】 输入b,p&#xf…

Python 基础【八】--数据类型-字典【2024.1.11】

1.定义 字典的内容在花括号 {} 内,键-值(key-value)之间用冒号 : 分隔,键值对之间用逗号 , 分隔,比如创建字典 ,如下所示: d{name:小明,age:18}# 使用 dict 函数:强转 # 方式一&am…

YOLOv8训练自己的数据集

文章目录 1. 创建数据集文件结构数据集标注脚本分割数据集转换数据格式 2. 配置文件2.1 数据集配置2.2 选择需要的模型 3. 模型训练4. 测试 1. 创建数据集 环境: Ultralytics YOLOv8.0.230 🚀 Python-3.8.18 torch-2.3.0.dev20231226cu118 CUDA:0 (NVIDI…

Python基础知识:整理10 异常相关知识

1 异常的捕获 1.1 基础写法 """基本语法:try:可能发生错误的代码except:如果出现异常,将执行的代码""" try:fr open("D:/abc.txt", "r", encoding"utf-8") except:print("出现异常…

Linux的基础命令学习

pwd - 显示当前工作目录的路径 cd - 切换工作目录,ls - 列出当前目录的文件和子目录 rm - 删除文件或目录 mkdir - 创建新目录 rm - 删除目录 nano/vi - 编辑文本文件,按Enter键进入 之后按i键就可以进入写入模式 之后输入文字以后按Esc键与:q就不保…

文件夹重命名:关键词替换文本间内容的方法,文件夹名称替换操作

在日常的生活和工作中,文件管理是一项重要的任务。经常要对文件夹重命名,或者替换文件夹名称中的特定关键词。现在一起来看云炫文件管理器如何批量操作。 文件夹名称的中间内容替换前后缩略图对比。 关键词替换文本间内容的方法: 操作1、执…

word无法插入方程式(方程式反灰)

word无法插入方程式(方程式反灰) 来自实测>插入方程式,反灰用不了>随便存在哪里,右键看属性:>发现真的是doc,得改成docx才可以:>打开原始档案,另存为word文件即可&#…

STM32WL用户手册学习

介绍 STM32Cube是意法半导体的原创产品,通过减少开发工作量、时间和成本来显著提高开发人员的生产力。STM32Cube涵盖了整个STM32产品组合。 STM32Cube包括: 一套用户友好的软件开发工具,涵盖项目开发从设计到生产,其中&#xf…

如何实现图片压缩

文章目录 1、canvas实现图片压缩2、其他 1、canvas实现图片压缩 canvas 实现图片压缩,主要是使用 canvas 的drawImage 方法 具体思路 拿到用户上传的文件转成base64创建一个 Image,主要是获取到这个图片的宽度和高度创建一个 2D 的画布,画布…

RS485浪涌防护经验分享

对于一些室外的产品,485信号可能会引出,长期暴露在户外,并且走线还会比较长,所以对于户外485信号浪涌防护是必不可少的。 非隔离的485信号典型的防护电路就是这个,防护器件包括气体放电管,PTC自恢复保险丝…