- 浏览: 467777 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- java基础 (59)
- struts (8)
- spring (8)
- 数据库 (8)
- java 网络编程 (29)
- hibernate (3)
- JavaScript (10)
- 日志管理 (2)
- jsp (4)
- servlet (7)
- xml (4)
- ajax (2)
- web service (4)
- 算法与数据结构 (13)
- java 反射机制 (11)
- java 泛型 (3)
- java I/O (8)
- java 线程 (12)
- JavaEE (6)
- java解惑 (33)
- 工具 (5)
- MyEclipse编程实践 (1)
- OSGI (2)
- 设计模式 (9)
- 正则表达式 (0)
- EJB (3)
- Ubuntu linux (6)
- Android (1)
- web前端 (2)
- 找工作 (1)
- SCA (1)
- maven (1)
- 缓存 (1)
- json (1)
- javamail (1)
- 工作笔记 (2)
最新评论
-
霜花似雪:
博主可以分享一下源码吗?
使用maven构建web项目实例 -
王庆波-行:
很好的demo!
memcache使用实例 -
surpassno:
大写的牛逼
java可视化显示内存使用情况 -
zhulin0504:
怎么访问NetEcho.html页面呀???
applet与servlet的网络通信 -
springdata:
java多线程实例demo源代码下载:http://www.z ...
java多线程例子
谜题61:日期游戏
打印出的结果是2000 1。
第一个bug就是cal.set(1999, 12,31);当月份以数字来表示时,习惯上我们将第一个月赋值为1。遗憾的是,Date将第一个月表示为0。因此设置为了13个月的第31天。Calendar类替换为下一年的第一个月。修改的最好方法是:使用Calendar专有的常量。cal.set(1999, Calendar.DECEMBER,31);
第二个bug就是Date.getDay返回的是Date实例所表示的星期日期,而不是月份日期。这个返回值是基于0的,从星期天算起。
总之,在使用Calendar和Date时,一定要查看API文档。
谜题62:名字游戏
不要使用IdentityHashMap,除非你需要其基于标识的语义;它不是一个通用目的的Map实现。
谜题63:更多同样的问题
居然是0,为什么呢?因为该类没有任何程序员声明的构造器。注意public void MoreNames() 方法不是构造器。编程处处要小心啊!!本题的教训:不要因为偶然地添加了一个返回类型,而将一个构造器声明为一个方法声明。
谜题64:按余数编组
该程序抛出java.lang.ArrayIndexOutOfBoundsException异常。abs方法几乎总是返回它的参数的绝对值,但是在一种情况下,它做不到这一点。"如果参数等于Integer.MIN_VALUE,那么产生的结果与该参数相同,它是一个负数。”本题教训:Math.abs不一定保证一定会返回非负的结果。
import java.util.Calendar; import java.util.Date; public class D{ public static void main(String[] args) { Calendar cal = Calendar.getInstance(); cal.set(1999, 12,31); System.out.print(cal.get(Calendar.YEAR)+" "); Date d = cal.getTime(); System.out.println(d.getDay()); //该方法已被弃用了 } }
打印出的结果是2000 1。
第一个bug就是cal.set(1999, 12,31);当月份以数字来表示时,习惯上我们将第一个月赋值为1。遗憾的是,Date将第一个月表示为0。因此设置为了13个月的第31天。Calendar类替换为下一年的第一个月。修改的最好方法是:使用Calendar专有的常量。cal.set(1999, Calendar.DECEMBER,31);
第二个bug就是Date.getDay返回的是Date实例所表示的星期日期,而不是月份日期。这个返回值是基于0的,从星期天算起。
总之,在使用Calendar和Date时,一定要查看API文档。
谜题62:名字游戏
import java.util.IdentityHashMap; import java.util.Map; public class Difference { public static void main(String[] args) { Map<String,String> m = new IdentityHashMap<String,String>(); m.put("Mickey","Mouse"); m.put("Mickey","Duck"); System.out.println(m.size()); //1 } }
不要使用IdentityHashMap,除非你需要其基于标识的语义;它不是一个通用目的的Map实现。
谜题63:更多同样的问题
import java.util.HashMap; import java.util.Map; public class MoreNames { private Map<String, String> m = new HashMap<String, String>(); public static void main(String[] args) { MoreNames n = new MoreNames(); System.out.println(n.size()); //0 } private int size() { return m.size(); } public void MoreNames() { m.put("Mickey", "Mouse"); m.put("Mickey", "Duck"); } }
居然是0,为什么呢?因为该类没有任何程序员声明的构造器。注意public void MoreNames() 方法不是构造器。编程处处要小心啊!!本题的教训:不要因为偶然地添加了一个返回类型,而将一个构造器声明为一个方法声明。
谜题64:按余数编组
public class Mod { public static void main(String[] args) { final int N = 3; int[] histogram = new int[N]; int i = Integer.MIN_VALUE; do{ histogram[Math.abs(i)%N]++; }while(i++!=Integer.MAX_VALUE); for(int j = 0;j<N;j++){ System.out.println(histogram[j]+" "); } } }
该程序抛出java.lang.ArrayIndexOutOfBoundsException异常。abs方法几乎总是返回它的参数的绝对值,但是在一种情况下,它做不到这一点。"如果参数等于Integer.MIN_VALUE,那么产生的结果与该参数相同,它是一个负数。”本题教训:Math.abs不一定保证一定会返回非负的结果。
发表评论
-
数据库及struts面试题
2011-06-22 11:07 1060数据库部分 Q: What is SQL? ... -
EJB面试题
2011-06-22 10:54 1126Q: What are the different kinds ... -
java中的servlet面试题
2011-06-22 10:43 1111Q: Explain the life cycle metho ... -
java中JSP的面试题
2011-06-22 10:22 1544Q: What is a output comment? (可 ... -
java中的集合面试题
2011-06-22 10:12 721Q: What is the Collections API? ... -
彻底搞清楚java的内部类
2011-06-15 10:47 1507内部类允许在一个类中 ... -
细说java(java中的浮点数十六进制表示)
2011-06-12 16:48 3566java中浮点数不能用八进制表示,但可以用十六进制表示,只能用 ... -
SCJP试题
2011-06-09 16:14 1179package scjp; public class T ... -
java面试题解惑 之 继承、多态、重载、重写
2011-06-03 09:36 1301继承、多态、重载、重写 继承 java中有三种类:类,抽象类, ... -
java面试题解惑 之 多线程
2011-06-02 17:24 9921,多线程 线程或者说 ... -
java面试题解惑 之变量初始顺序,变量覆盖,字符串池,final,finally区别
2011-06-02 16:26 7991,变量初始化顺序 package com.qdu.sun; ... -
java解惑(Map的使用,静态导入方法,线程中断interrupted与线程死锁)
2011-05-17 12:38 1397Map的使用 package other; import ... -
java 继承的一个问题(想不明白)
2011-04-13 17:03 916java中的继承问题,以为是学会了java,结果最简单的一个j ... -
java解惑(谜题76。。)
2011-03-09 11:22 1221谜题76:乒乓public class PingPong { ... -
java解惑(谜题60,65)
2011-03-08 15:52 919一行以毙之 1,编写一个 ... -
java解惑(谜题66。。。)
2011-02-28 20:54 956谜题66:一件私事 class Base{ public ... -
java解惑(谜题56到。。库之谜)
2011-02-28 19:41 860谜题56:大问题 import jav ... -
java解惑(谜题49。。)
2011-02-27 10:52 954谜题49:比生命更大 import java.util.Cal ... -
java解惑(谜题41到谜题)
2011-02-27 10:18 922谜题41:域和流 下面的 ... -
谜题36-谜题
2011-02-25 10:55 902谜题36:优柔寡断 public ...
相关推荐
本文将深入探讨Java中的表达式谜题、字符谜题、循环谜题以及异常谜题,帮助你解开这些编程难题,进一步提升你的Java技能。 ### Java表达式谜题 Java表达式是程序中进行计算的部分,它们可以是简单的变量引用,也...
我整理出来的Java解惑/谜题的CHM版本,包括目录、全文搜索和收藏夹。比目前Word/PDF版本的多个目录,比TXT版本的多一些格式。-- 如果不能打开CHM,请按下面方法解决:-- 右键点击chm文档,查看属性,可以看到...
### JAVA解惑中的关键知识点解析 #### 谜题1:奇数性的判断 在《JAVA解惑》一书中,作者通过一系列实例介绍了Java编程语言中的一些不易掌握的知识点。其中一个例子是关于如何正确判断一个整数是否为奇数。 **原始...
《Java解惑》是一本专为Java程序员设计的书籍,旨在揭示编程中常见的陷阱、误解和易犯的错误。这本书的中文版使得更多的中国开发者能够深入理解这些“谜题”,提高编程技能。Java Puzzlers是由Java之父James Gosling...
文档《java解惑 PDF版》中列举了95个这样的谜题,每个谜题都旨在帮助开发者理解并纠正一些常见的错误理解。以下是根据提供的部分内容解析的几个相关知识点。 ### 表达式谜题与取余操作符(%)的行为 在Java中,...
在每个谜题之后都有详细的解惑方案,这些方案在给出那些实际行为与表面上迥异的程序行为的简单解释的同时,更向读者展示了如何一劳永逸地避免底层的陷阱与缺陷。 本书以轻松诙谐的语言,寓教于乐的方式,由浅入深、...
谜题61:日期游戏 谜题62:名字游戏 谜题63:更多同样的问题 谜题64:按余数编组 谜题65:一种疑似排序的惊人传奇 Java谜题7——更多的类谜题 谜题66:一件私事 谜题67:对字符串上瘾 谜题68:灰色的阴影 ...
### Java解惑 书籍类 谜题 #### Java谜题1——表达式谜题 **谜题1:奇数性** 本节讨论了一个看似简单的Java方法,旨在判断一个整数是否为奇数: ```java public static boolean isOdd(int i) { return i % 2 ==...
该书特写了95个有关Java或其类库的陷阱和缺陷的谜题,其中大多数谜题都采用了短程序的方式,这些程序的行为与其看似的大相径庭。在每个谜题之后都给出了详细的解惑方案,这些解惑方案超越了对程序行为的简单解释,向...
### JAVA面试谜题解惑知识点解析 #### 表达式谜题:奇数性检查方法的缺陷 **题目背景:** 题目中提到的谜题旨在检验面试者对Java中的基本数学运算符及其行为的理解程度。具体来说,是针对取余运算符`%`在处理整数...
本书特写了95个有关Java或其类库的陷阱和缺陷的谜题,其中大多数谜题都采用了短程序的方式,这些程序的行为与其看似的大相径庭。在每个谜题之后都给出了详细的解惑方案,这些解惑方案超越了对程序行为的简单解释,向...
《Java解惑》是一本由Google工程师编写的经典教材,旨在帮助开发者解决在实际编程过程中遇到的困惑和误解。这本书通过一系列精心设计的“Java谜题”,揭示了语言中的一些不直观特性和陷阱,从而提升读者对Java深层...
《Javapuzzler+JAVA解惑 中英双语 完整源代码》是一份集学习与实践于一体的Java编程资源,包含《Java Puzzlers》和《JAVA解惑》两部分,以及对应的完整源代码。这份资料对于深入理解Java语言的特性和陷阱,提升编程...
java谜题解惑This Fifth Edition is completely revised and expanded to cover JavaScript as it is used in today's Web 2.0 applications. This book is both an example-driven programmer's guide and a keep-...
以下是对这两个Java谜题的深入解析: 谜题1:奇数性 在这个问题中,我们有一个方法`isOdd(int i)`,它通过检查`i % 2`是否等于1来判断一个整数是否为奇数。然而,这个方法在处理负数时会出现问题,因为Java中的取余...