Java String 和 new String()的比较与区别
发布时间 - 2026-01-11 00:45:29 点击率:次Java String 和 new String()的区别

栈区存引用和基本类型,不能存对象,而堆区存对象。==是比较地址,equals()比较对象内容。
String str1 = "abcd"的实现过程:首先栈区创建str引用,然后在String池(独立于栈和堆而存在,存储不可变量)中寻找其指向的内容为"abcd"的对象,如果String池中没有,则创建一个,然后str指向String池中的对象,如果有,则直接将str1指向"abcd"";如果后来又定义了字符串变量 str2 = "abcd",则直接将str2引用指向String池中已经存在的“abcd”,不再重新创建对象;当str1进行了赋值(str1=“abc”),则str1将不再指向"abcd",而是重新指String池中的"abc",此时如果定义String str3 = "abc",进行str1 == str3操作,返回值为true,因为他们的值一样,地址一样,但是如果内容为"abc"的str1进行了字符串的+连接str1 = str1+"d";此时str1指向的是在堆中新建的内容为"abcd"的对象,即此时进行str1==str2,返回值false,因为地址不一样。
String str3 = new String("abcd")的实现过程:直接在堆中创建对象。如果后来又有String str4 = new String("abcd"),str4不会指向之前的对象,而是重新创建一个对象并指向它,所以如果此时进行str3==str4返回值是false,因为两个对象的地址不一样,如果是str3.equals(str4),返回true,因为内容相同。
不多说,直接上代码:
String str1 = "abcd";
String str2 = "abcd";
String str3 = new String("abcd");
String str4 = new String("abcd");
System.out.println(str1==str2);//true地址一样
System.out.println(str3==str4);//false,但地址不一样
System.out.println(str3.equals(str3));//true,值一样
System.out.println(str2.equals(str3));//true,值一样
System.out.println((str1+"a")==(str2+"a"));//false;进行了+连接地址不一样
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java
# String
# 和
# new
# String()区别
# String()详解
# String()对比
# java中的 toString()方法实例代码
# 详解Java String类常用方法有哪些
# java 取交集方法retainAll的实现
# java如何用递归方法求阶乘
# 深入解析Java中反射中的invoke()方法
# 深入理解Java new String()方法
# 池中
# 进行了
# 返回值
# 堆中
# 他们的
# 是在
# 又有
# 希望能
# 谢谢大家
# 多说
# 创建一个
# 值为
# br
# abcd
# println
# str
# equals
# strong
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
Laravel中的Facade(门面)到底是什么原理
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
如何在IIS服务器上快速部署高效网站?
Laravel Fortify是什么,和Jetstream有什么关系
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Laravel如何处理表单验证?(Requests代码示例)
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
如何利用DOS批处理实现定时关机操作详解
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
教学论文网站制作软件有哪些,写论文用什么软件
?
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
如何用低价快速搭建高质量网站?
Laravel如何实现数据库事务?(DB Facade示例)
高防服务器租用首荐平台,企业级优惠套餐快速部署
动图在线制作网站有哪些,滑动动图图集怎么做?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
JS弹性运动实现方法分析
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
高防服务器租用如何选择配置与防御等级?
js代码实现下拉菜单【推荐】
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
Laravel如何实现本地化和多语言支持?(i18n教程)
微信小程序 五星评分(包括半颗星评分)实例代码
如何快速搭建高效WAP手机网站吸引移动用户?
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
如何快速生成专业多端适配建站电话?
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
浅析上传头像示例及其注意事项
如何在IIS中新建站点并配置端口与IP地址?
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
javascript中对象的定义、使用以及对象和原型链操作小结
Android仿QQ列表左滑删除操作
Laravel怎么实现模型属性的自动加密
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
深圳网站制作的公司有哪些,dido官方网站?
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
如何快速搭建个人网站并优化SEO?
长沙企业网站制作哪家好,长沙水业集团官方网站?
Laravel中的withCount方法怎么高效统计关联模型数量
Laravel怎么为数据库表字段添加索引以优化查询
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
Linux后台任务运行方法_nohup与&使用技巧【技巧】

