java oca

在OCA系列的Java Puzzlers的这一部分中,我将展示定义字符串和与之相关的潜在惊喜的多种方法。 创建字符串的两种基本类型是使用new关键字和仅使用字符串文字来创建。

 String strWithNew = new String( "hey" );  String strWithLiteral = "ho" ; 

由于经常使用字符串,因此JVM使用字符串池并使用其中的值,因此它不必一次又一次为相同的值创建新对象。 因此,看到相同字符串文字的对象地址相同就不足为奇了。

 public class Puzzler { public static void main(String[] args) { String s1 = "myString" ; String s2 = "myString" ; System.out.println(s1 == s2); // true }  } 

好吧,这应该也一样吧?

 public class Puzzler { public static void main(String[] args) { String s1 = new String( "myString" ); String s2 = new String( "myString" ); System.out.println(s1 == s2); }  } 

并不是的。 这将打印“ false”。 因此,如果我用文字“ myString”创建一个新字符串,它将被放置在字符串池中。 如果我使用new关键字创建它,则不会在池中搜索它,并且在创建它时,也不会将其放在字符串池中。

 public class Puzzler { public static void main(String[] args) { String s1 = new String( "myString" ); String s2 = new String( "myString" ); String s3 = "myString" ; String s4 = "myString" ; System.out.println(s1 == s2); System.out.println(s2 == s3); System.out.println(s3 == s4); System.out.println(s1 == s4); }  } 

我希望你能猜出上面发生的事情。 s1创建一个新字符串,并且不将其放入池中,s2执行相同的操作。 s3看一看字符串池,看不到myString并将其创建并放置在池中。 s4说:“好吧,它在游泳池里”。 因此,如果我们计算创建的字符串数,则为3,如果计算池中放置的内容,则为1(myString)。 false,false,true,false是打印到控制台的内容。

翻译自: https://www.javacodegeeks.com/2020/05/java-puzzlers-from-oca-part-7.html

java oca

java oca_OCA第7部分中的Java难题相关推荐

  1. java oca_OCA第5部分中的Java难题

    java oca 在Java Puzzlers系列的第五部分中,我们将看到与X.parseX(String s)方法相关的内容. 您可以看到我们对X.parseX()方法的期望. public cla ...

  2. java oca_OCA第4部分中的Java难题

    java oca 在Java Puzzlers的第四部分中,我们有一些与char类型有关的东西. public class Puzzler { public static void main(Stri ...

  3. java oca_OCA第6部分中的Java难题

    java oca 即使对于新的Java开发人员,构造函数也可能不是什么大谜. 本质上,当您创建一个类的实例时,该类的构造函数就会启动. 在Java Puzzlers系列的第6部分中,我们将看到一个与构 ...

  4. java oca_OCA第2部分中的Java难题

    java oca 欢迎使用OCA的Java Puzzlers的第二部分. 在这一部分中,我们将看到一个有趣的案例,涉及Java 7附带的数字文字中的下划线分隔符. 在下面的类中,您可以在十进制文字中看 ...

  5. java oca_OCA第1部分中的Java难题

    java oca 我在业余时间正在阅读Mala Gupta的Oracle认证Java SE程序员助理书,我对所学到的一些新知识感到惊讶. 有时候他们真的没有道理,有时候他们说得通,但真的让人惊讶. 因 ...

  6. spring 加载java类_在Spring中基于Java类进行配置的完整步骤

    在Spring中基于Java类进行配置的完整步骤 发布于 2020-7-7| 复制链接 基于Java配置选项,可以编写大多数的Spring不用配置XML,下面 前言JavaConfig 原来是 Spr ...

  7. java铃声类_MediaPlayer.setDataSource中的java.lang.IllegalStateException,使用铃声类

    我有一个用户(Samsung Galaxy S5,Android 4.4)报告的崩溃,我不明白发生了什么.这似乎是可以吸收的,但也许有些人遇到了同样的问题,或类似的问题.MediaPlayer.set ...

  8. java解析shell命令_Android中执行java命令的方法及java代码执行并解析shell命令

    这篇文章给大家介绍Android中执行java命令的方法及java代码执行并解析shell命令,需要的朋友一起学习 android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析 ...

  9. js 中 java 代码_在js中嵌套java代码

    jsp中有时候在js中操作某些java后台传递过来的数据逻辑比较复杂,比如list内容的遍历,可以直接在页面上添加java脚本来执行内容,代码如下: //在js中插入java代码操作 //取出java ...

最新文章

  1. Java方法案例--比较两个值是否相等
  2. [译]GLUT教程 - 每秒帧数
  3. 计算机辅助初中数学教学,初中数学合作教学如何融入计算机辅助教学
  4. 免费解决vcruntime140.dll文件缺失 - 资源篇
  5. java环境变量都是什么意思_Java环境变量,真的还有必要配吗?
  6. C程序设计案例(矩形法求定积分问题)
  7. python中索引越界的常见原因
  8. java jdom dom4j_实例分析jdom和dom4j的使用和区别
  9. 霍夫变换提取圆心坐标,并拟合直线
  10. react-redux多reducer完整实例
  11. Giving an effective oral presentation at university(The Hong Kong Polytechnic University 香港理工大学)
  12. [第四届蓝桥杯省赛C++B组]省赛全题目题解
  13. 电力行业三次谐波计算
  14. 谐振电路及品质因数(三)
  15. 那些年啊,那些事——一个程序员的奋斗史 ——72
  16. CKA考试习题:存储管理-普通卷、PV、PVC
  17. 201521123007《Java程序设计》第5周学习总结
  18. 天池AI大赛 智能制造预测赛题
  19. mysql关键字的区别_Mysql关键字和保留字(注意)
  20. 你找到“活着”的意义了吗?

热门文章

  1. Lottery Gym - 102822L
  2. 2020牛客国庆集训派对day1 Zeldain Garden
  3. CF1237F Balanced Domino Placements(dp+组合计数)
  4. 洛谷P2761:软件补丁问题(状压、分层图最短路)
  5. 数论:扩展欧几里德(洛谷P1516 青蛙的约会)
  6. P7519-[省选联考 2021 A/B 卷]滚榜【状压dp】
  7. P3177-[HAOI2015]树上染色【树形dp】
  8. P2463-[SDOI2008]Sandy的卡片【SA,二分答案】
  9. POJ1275-Cashier Employment【差分约束系统】
  10. hdu4699-Editor【对顶栈】