// 如果d和c没有指向了同一个对象,则说明d没有被加入字符串池

else {

System.out.println(""ab"+"cd" 创建的对象 "没加入" 字符串池中");

}

String e = a + "cd";

// 如果e和c指向了同一个对象,则说明e也被加入了字符串池

if (e == c) {

System.out.println(" a  +"cd" 创建的对象 "加入了" 字符串池中");

}

// 如果e和c没有指向了同一个对象,则说明e没有被加入字符串池

else {

System.out.println(" a  +"cd" 创建的对象 "没加入" 字符串池中");

}

String f = "ab" + b;

// 如果f和c指向了同一个对象,则说明f也被加入了字符串池

if (f == c) {

System.out.println(""ab"+ b  创建的对象 "加入了" 字符串池中");

}

// 如果f和c没有指向了同一个对象,则说明f没有被加入字符串池

else {

System.out.println(""ab"+ b  创建的对象 "没加入" 字符串池中");

}

String g = a + b;

// 如果g和c指向了同一个对象,则说明g也被加入了字符串池

if (g == c) {

System.out.println(" a  + b  创建的对象 "加入了" 字符串池中");

}

// 如果g和c没有指向了同一个对象,则说明g没有被加入字符串池

else {

System.out.println(" a  + b  创建的对象 "没加入" 字符串池中");

}

}

}

运行结果如下:

String a = "ab";

String b = "cd";

"ab"+"cd" 创建的对象 "加入了" 字符串池中

a +"cd" 创建的对象 "没加入" 字符串池中

"ab"+ b 创建的对象 "没加入" 字符串池中

a + b 创建的对象 "没加入" 字符串池中

从上面的结果中我们不难看出,只有使用引号包含文本的方式创建的String对象之间使用“+”连接产生的新对象才会被加入字符串池中。对于所有包含new方式新建对象(包括null)的“+”连接表达式,它所产生的新对象都不会被加入字符串池中,对此我们不再赘述。因此我们提倡大家用引号包含文本的方式来创建String对象以提高效率,实际上这也是我们在编程中常采用的。

来源:考试大-Java认证

责编:zj  评论 纠错

java string对象创建_Java问题解析:到底创建了几个String对象相关推荐

  1. java对象怎么创建_Java对象是怎么创建的(通过对象的创建,了解JVM内存结构)...

    在代码层面,我们通过new关键字创建一个对象: Object obj=new Object(); 而虚拟机中,创建一个对象,则经过了许多环节,JVM的内存结构可以通过另一篇文章了解:一个"H ...

  2. java基础教程 类_Java零基础系列教程06初识类和对象

    配套视频教程 万物皆对象 分类是人们认识世界的一个很自然的过程,在日常生活中会不自觉地进行分类 身边的对象 顾客 姓名-张浩 年龄-20 体重-60kg 操作: 购买商品 收银员 员工号-10001 ...

  3. java添加窗体中_java中利用JFrame创建窗体 【转】

    Java代码 publicclassTest(){ publicstaticvoidmain(String[] args){ JFrame frame = newJFrame(); JPanel pa ...

  4. String s=a+b+c,到底创建了几个对象?

    首先看一下这道常见的面试题,下面代码中,会创建几个字符串对象? String s="a"+"b"+"c"; 如果你比较一下Java源代码和反 ...

  5. java对象怎么创建_java对象是如何创建的

    当虚拟机遇到一条new指令以后,首先会去检测这个指令的参数能否在常量池中定位到一个类的符号引用,并检测这个类是否被加载.解析.初始化过,没有就先去加载类. 对象创建在堆划分空间可用指针碰撞(使用过的内 ...

  6. java对象怎么创建_java对象是怎么创建出来的

    1.使用new关键字 这是最常见也是最简单的创建对象的方式了.通过这种方式,我们可以调用任意的构造函数(无参的和带参数的). Employee emp1 = new Employee();0: new ...

  7. java构建xml参数_Java中使用XML创建EMAIL模板

    邮件模板 让我们来看看邮件模板的格式.模板是XML文件,它包含一个根元素和一系列根的子元素.根元素是.必要的子元素是, , 和 .可选的子元素是 , , 和 .如果你使用过邮件系统,那么你可以推导出这 ...

  8. java 鼠标拖动矩形_java – 用鼠标拖动创建矩形,而不是绘制

    nb-首先要注意的是,这是使用Java 7完成的,在Java 6中创建透明窗口的方式不同,在更新10之下是不可能的(我相信) 基本上,这会创建一个透明窗口,其大小和位置可以覆盖整个虚拟屏幕(也就是说, ...

  9. java 鼠标拖动矩形_java – 用鼠标拖动创建矩形,而不是绘制

    nb-首先要注意的是,这是使用Java 7完成的,在Java 6中创建透明窗口的方式不同,在更新10之下是不可能的(我相信) 基本上,这会创建一个透明窗口,其大小和位置可以覆盖整个虚拟屏幕(也就是说, ...

最新文章

  1. 爱送礼成中国好前任,谢谢你让我认识了快递员
  2. HP DL380 G6安装Windows server 2003(有光驱和无光驱两种方法)
  3. WPF 3D基础学习 - 画布、相机、Model3D(1)
  4. 《深入浅出数据分析》第十章第十一章
  5. 334. Increasing Triplet Subsequence
  6. 以太网帧格式、最少字节介绍(arp)
  7. Android开源项目,圆形ImageView之CircleImageView
  8. 如何利用工业大数据降本增效
  9. shell应用之cobbler批量部署
  10. 转:开源项目学习方法ABC
  11. 计算机公式英汉对照,Excel 2013中英文对照图
  12. C++关键字—this
  13. GitHub 中超过3.5万开源代码被投毒
  14. PS经典教程:从零开始设计一个漂亮的网页
  15. 应用于客户端的性能测试指标
  16. mysql默认编码改为gkb编码_MYSQL数据库默认latin1字符集转换为GBK或UTF8
  17. 幼儿园小朋友们的难题
  18. 天池竞赛员工离职预测训练赛
  19. SAP中注意区分采购合同中的订单单位和价格单位
  20. C语言编一个金山打字通小游戏,js实现金山打字通小游戏

热门文章

  1. 关于RNNLM的思考,特别是与HMM,n-gram的区别
  2. matlab scope 怎么调出,Matlab Figure图形保存以及Simulink中Scope窗口调出figure菜单
  3. 安装特定版本的keras_一定要看的Tensorflow-GPU+Keras安装教程
  4. 深度学习入门必看的书和论文?有哪些必备的技能需学习?
  5. STM32F429HAL库UART学习笔记
  6. python打包成exe fail to ex_寻求帮助:pyinstaller打包.exe
  7. ssm集成mysql_idea+SSM+Mysql框架整合
  8. python就业有哪些方向_Python就业有哪些方向?最全信息在这里!
  9. 清爽登录界面html,基于css3实现扁平简洁清爽的登录注册页面代码
  10. 图书馆的uml概念类图怎么画_UML科普文,一篇文章掌握14种UML图