基于String变量的两种创建方式(详解)
发布时间 - 2026-01-11 02:15:23 点击率:次在java中,有两种创建String类型变量的方式:
String str01="abc";//第一种方式
String str02=new String("abc");//第二种方式
第一种方式创建String变量时,首先查找JVM方法区的字符串常量池是否存在存放"abc"的地址,如果存在,则将该变量指向这个地址,不存在,则在方法区创建一个存放字面值"abc"的地址。
第二种方式创建String变量时,在堆中创建一个存放"abc"的对象,使变量str02指向堆中的对象。
根据上面的创建方式,观察下面的示例:
String str01 = "abc";
String str02 = "abc";
String str03 = new String("abc");
String str04 = new String("abc");
System.out.println("str01==str02:" + (str01 == str02));
System.out.println("str03==str04:" + (str03 == str04));
System.out.println("str01==str03:" + (str01 == str03));
分析:
1、在创建str01时,方法区的字符串常量池中没有存储"abc"的地址,就在常量池中创建一个存放"abc"的地址,使变量str01指向该地址。创建str02时,字符串常量池已存在存放"abc"的地址,将str02变量指向该地址,此时str01与str02指向同一内存地址,所以"str01==str02"为true。
2、使用new关键字创建对象时,每一次都会在堆中创建一个新的对象,所以str03与str04指向对象的地址不同,"str03==str04"为false。
3、str01指向方法区,str03指向堆,所以"str01==str03"为false。
String对象被设计成不可改变的对象,即String对象所包含的字面值发生改变时,会开辟一个新的地址,创建一个新的对象,原地址不变。
String str01 = "abc"; String str02 = "abc"; str01="def";
在方法区的字符串常量池中建立一个新的存储"def"的地址,str01指向该地址,str02的指向不变。
以上这篇基于String变量的两种创建方式(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# String变量创建方式
# java中常用的字符串的比较方法(两种)
# 简单介绍JavaScript中字符串创建的基本方法
# Java String类的常用方法汇总
# 创建一个
# 池中
# 堆中
# 给大家
# 第二种
# 第一种
# 就在
# 两种
# 会在
# 希望能
# 不存在
# 这篇
# 有两种
# 建立一个
# 则在
# 小编
# 大家多多
# 是否存在
# 则将
# 所包含
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
香港服务器租用每月最低只需15元?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
如何在腾讯云免费申请建站?
Python自动化办公教程_ExcelWordPDF批量处理案例
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
高性能网站服务器配置指南:安全稳定与高效建站核心方案
EditPlus 正则表达式 实战(3)
如何在云服务器上快速搭建个人网站?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何在云主机上快速搭建多站点网站?
手机网站制作与建设方案,手机网站如何建设?
如何在IIS中新建站点并配置端口与物理路径?
网站制作软件有哪些,制图软件有哪些?
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
如何快速搭建高效可靠的建站解决方案?
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
如何批量查询域名的建站时间记录?
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
如何在香港免费服务器上快速搭建网站?
郑州企业网站制作公司,郑州招聘网站有哪些?
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
Laravel如何使用.env文件管理环境变量?(最佳实践)
Windows Hello人脸识别突然无法使用
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
JavaScript数据类型有哪些_如何准确判断一个变量的类型
如何快速搭建高效服务器建站系统?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
Laravel如何使用模型观察者?(Observer代码示例)
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
javascript读取文本节点方法小结
利用vue写todolist单页应用
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
高端建站三要素:定制模板、企业官网与响应式设计优化
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
如何在万网ECS上快速搭建专属网站?
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
如何在阿里云通过域名搭建网站?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
Laravel怎么上传文件_Laravel图片上传及存储配置
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
Linux后台任务运行方法_nohup与&使用技巧【技巧】
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup

