Java容易搞错的知识点-觉得基础扎实的来看.docxVIP

Java容易搞错的知识点-觉得基础扎实的来看.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java容易搞错的知识点-觉得基础扎实的来看

一、关于Switch代码: Java代码 ?public?class?TestSwitch?{??????public?static?void?main(String[]?args)?{??????????int?i?=?2;??????????switch?(i)?{??????????case?1:??????????????System.out.println(1);??????????case?2:??????????????System.out.println(2);??????????case?3:??????????????System.out.println(3);??????????default:??????????????System.out.println(4);??????????}??????}??}??public class TestSwitch {public static void main(String[] args) {int i = 2;switch (i) {case 1:System.out.println(1);case 2:System.out.println(2);case 3:System.out.println(3);default:System.out.println(4);}}}结果: 2 3 4 分析: 少了break;所以2以下的case和default都执行了一遍。 二、Equals和==运算符代码: Java代码 ?public?static?void?test()?{??????String?x?=?hello;??????String?y?=?world;??????String?z?=?new?String(helloworld);??????String?a?=?helloworld;??????System.out.println(x+y?equals?z:?+?(x?+?y).equals(z));??????System.out.println(a?==?z:?+?(a?==?z));??????System.out.println(x?==?hello:?+?(x?==?hello));??????System.out.println(a?==?helloworld:?+?(a?==?hello?+?world));??????System.out.println(a?==?x+y:?+?(a?==?(x?+?y)));??}??public static void test() {String x = hello;String y = world;String z = new String(helloworld);String a = helloworld;System.out.println(x+y equals z: + (x + y).equals(z));System.out.println(a == z: + (a == z));System.out.println(x == hello: + (x == hello));System.out.println(a == helloworld: + (a == hello + world));System.out.println(a == x+y: + (a == (x + y)));}结果: x+y equals z:true a == z:false x == hello:true a == helloworld:true a == x+y:false 分析: 1.String.equals()方法比较的是字符串的内容,所以(x + y).equals(z)为true. 2.“==”比较的是 String 实例的引用,很明显 a 和z 并不是同一个 String 实例,所以(a == z)为false. 3.根据常量池的知识,容易得知(x == hello)和(a == hello + world)都为true. (常量池指的是在编译期被确定并被保存在已编译的.class 文件中的一些数据。它包含了 关于方法、类、接口等,当然还有字符串常量的信息。也就是所谓的持久代。) 4.那么(a == (x + y))为什么是false呢?这点暂点有点不大清楚。初步认为是x+y是引用相加,不能放入常量池。三、Override覆盖代码: Java代码 ?public?class?Parent?{????????public?static?String?say()?{??????????return?parent?static?say;??????}????????public?String?sa

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档