网站大量收购独家精品文档,联系QQ:2885784924

Java常见疑惑和陷阱.pdf

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java 常见疑惑和陷阱 逾轮 2010/11/3 Topic • Java基础的常见陷阱 • 集合框架的系统梳理 • 揭开神秘的锁机制 • 窥视Java并发包(JUC ) • 一些学习体会 2 Java基础的常见陷阱 • 不一样的数字的宽类型和窄类型 • 令人崩溃的字符串常量池和subString() • 不正常的finally和null • equals()也不容易 • ... 3 Java基础的常见陷阱 • 发生在我们身边的事 StringBuffer clienetCookieList = new StringBuffer(h1Client/h1 : /br); SetEntryString, String cookieSet = TaobaoSession.getCookiesPool().entrySet(); while (cookieSet.iterator().hasNext()) { Entry entry = cookieSet.iterator().next(); clienetCookieList.append(entry.getKey() + + entry.getValue() + /br); } for(EntryString,String e:TaobaoSession.getCookiesPool().entrySet()) clienetCookieList.append(e.getKey() + + e.getValue() + /br); 常规问题采用常规的方式处理 不确定问题可以增加一些特殊/特定的条件( 比如while循环中增加一些强 制退出机制) 4 Java基础的常见陷阱 • 诡异的数字 System.out.println(12345+5432l); 66666? List l = new ArrayListString(); l.add(Foo); System.out.println(1); 0x100000000L + 0xcafebabe = ? Long num = 0x111111111L; 变量名称永远不要用l 数字结尾永远不要用l,表示long使用L 5 Java基础的常见陷阱 • 诡异的数字 for (byte b = Byte.MIN_VALUE; b Byte.MAX_VALUE; b++) { if (b == 0x99) System.out.print(Found it!); } byte与int进行比较时,会进行有符号扩展 窄类型与宽类型比较时特别需要注意符号扩展 b == (byte)0x99 (b0xFF)==0x99 6 Java基础的常见陷阱 • 不经意的规则 X = x +1; x+=1; byte x = 10; x += 1234; // x? x = x + 1234; // x? Object taobao= “taobao”; String ali = “ali”; taobao = taobao+ali; // taobao? taobao += ali; // taobao? 复合赋值表达式自动地将它们所执行的计算的结果转型为其左侧变量的类型 赋值操作数据越

文档评论(0)

sjatkmvor + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档