String s = new String(123) 究竟创建了几个对象
分享一波:程序员赚外快-必看的巅峰干货
今天上班划水的过程中有人询问到这个问题,网上对于这个问题也有争议,有说创建了一个对象,有说两个,有说三个。
首先说三个的肯定是扯淡了,今天来讨论一下这条语句到底创建了几个对象。
==和equals的区别想必就不需要我着重介绍了,equals比较的是值,==比较引用类型时,比较的是地址。
进入正题
稍微介绍了一下上面两个基础知识点,下面进入正题,String s = new String(“123”)究竟创建了几个对象?这里先说结论,第一次创建了两个,第二次创建了一个。
String temp = “123”;
String s = new String(temp);
这样就很容易理解了,String temp = "123"毫无疑问是创建了一个对象,new String(temp)又创建了一个对象,因此是两个。
String s1 = “123”;
String s2 = “123”;
System.out.println(s1 == s2);
s1和s2都是字符串对象,通过==比较的是二者地址,运行结果为true,说明二者地址相同,是同一个对象。
在 String s1 = “123”;这条语句中,创建了一个对象"123",放入常量池中,下面的String s2 = “123”;从常量池中取出了123并赋值给s2,因此s2这条语句没有创建对象。
String temp = “123”;
String s1 = new String(temp);
String temp2 = “123”;
String s2 = new String(temp2);
在 String s = new String(“123”) 这条语句中
*************************************优雅的分割线 **********************************
分享一波:程序员赚外快-必看的巅峰干货
如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程
请关注微信公众号:HB荷包
一个能让你学习技术和赚钱方法的公众号,持续更新
String s = new String(123) 究竟创建了几个对象相关推荐
- 【Java深入理解】String str = “a“ + “b“ + “c“到底创建了几个对象?
String str = "a" + "b" + "c"到底创建了几个对象?这是我们在讨论中最经常遇到的一个问题同时也是面试题.我们都知道在 ...
- new String(123) 创建了几个对象?
String 对象可谓再熟悉不过了,与此相关的面试题经常会引出内存性能优化的问题,本篇主要以 new String("123") 创建了几个对象为例记录. 一.你能回答正确吗 St ...
- String s=new String(abc)创建了2个对象的原因
问题:String str=new String("abc"); 这行代码究竟创建了几个String对象呢? 相信大家对这道题并不陌生,答案也是众所周知的,2个. 接下来我们就从这 ...
- java的知识点15——String基础、String类和常量池、String类常用的方法、字符串相等的判断、组合模式
String基础 1. String类又称作不可变字符序列. 2. String位于java.lang包中,Java程序默认导入java.lang包下的所有类. 3. Java字符串就是Unicode ...
- 云端飘 String s=new String(abc)创建了几个对象?
转自:http://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.html -------------------------------- ...
- java string对象创建对象_Java String 创建了几个对象
我们首先来看一段代码: Java代码 String str=new String("abc"); 紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢 ...
- Java:面试题:String s=new String(abc)创建了几个对象?
String str=new String("abc"); 紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢? 相信大家对这道题并不陌生,答案 ...
- 美团面试题:String s = new String(111)会创建几个对象?
点击关注公众号,Java干货及时送达 来源:blog.csdn.net/o9109003234/article/details/109523691 String不可变吗? public class A ...
- 工作10年后,再看String s = new String(xyz) 创建了几个对象?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 转自:艾小仙 这个问题相信每个学习java的同学都不陌生, ...
最新文章
- Linux多用户、多任务的特性
- 告别2019,展望2020:让我们看一看这十年中深度学习的经典瞬间
- POJ 2456 Aggressive cows ( 二分 贪心 )
- mfc控件变量没定义_WinCC字符串归档变量查询
- STM32开发 -- 外部中断详解
- java 实验张智,JAVA实验指导
- Spring-Cloud中的 熔断、限流、降级
- 栈,堆,值类型,引用类型,装箱,拆箱 .NET中 6个重要的概念
- instancing render
- mysql启动redis_docker一系列mysql,redis,centos啥的启动参数记个笔记
- 单例模式Java的七种写法
- Spring Boot 知识笔记(集成zookeeper)
- 红外夜视摄像头 蒂卡尔K-TF使用手记 2
- gdiPlus 显示图片缩放不正确的可能解决方案
- 记一个typeorm问题 Main alise is not set
- 数据科学的重要支柱——统计学的最佳入门书籍
- 几种排序算法的稳定性分析
- 企业承担社会责任的必要性
- Spring Cloud Stream Rabbit 3.1.3 入门实践
- 手把手教你写第一个Windows窗口
热门文章
- 服务器日志文件中包含堆栈跟踪,日志框架 Logback 官方手册(第三章:Configuration)...
- mysql怎么把datetime类型转换_mysql怎样实现time转datetime
- 采用Kruskal算法生成最小生成树,并采用并查集的合并优化和查询优化。
- JSP访问数据库,Session对象和九大内置对象
- python实现队列_Python学习教程:用队列实现栈
- html制作卡通图案代码,CSS画的卡通动画图案
- python能和wincc一起用_搬家第二天-41.Wincc V7.3 利用Inputbox和Msgbox做权限管理和二次确认设计...
- arm与linux的些许问题,《ARM与Linux些许问题》第一章:ARM工作模式
- java快捷键 --_Java中的快捷方式“或分配”(| =)运算符
- ros构建机器人运动学模型_ROS入门学习之八机器人综合应用