- 浏览: 468007 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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多线程例子
谜题49:比生命更大
第一眼看去,这个程序是在计算当前的年份减去1930的值。但运行程序结果为:Elvis wears a size -1930 belts.
这个问题是由类初始化顺序中的循环而引起的。Elvis类的初始化是由虚拟机对其main方法的调用而触发的。首先,其静态域被设置为缺省值,INSTANCE为null,CURRENT_YEAR为0。接下来,静态域初始器按照其出现的次序执行。第一个静态域INSTANCE,它的值通过调用构造器而计算出的。这个构造器用一个涉及了静态域CURRENT_YEAR的表达式来计算的,而此时其值仍然是0。所以beltSize为-1930。
谜题50:不是你的类型
本谜题测试你对java的两个经典操作符:instanceof和转型的理解程度。
第一个输出false,因为尽管null对于每一个引用类型来说都是其子类型,但是instanceof操作符被定义为在其做操作数为null时返回false。
第二个程序编译失败,原因是:instanceof操作符有这样的要求,如果两个操作数的类型是类,其中一个必须是另外一个的子类型。
第三个抛出 java.lang.ClassCastException异常
谜题54:null与void下面是经典hello world的变种,将打印什么呢?
这个程序似乎应该抛出NullPointerException异常,但它打印出了“hello world”。
理解本谜题的关键是,Null.greet是一个静态方法。等价于greet()和Null.greet().
如果将方法的static去掉,就会出现异常。
谜题55:特创论
这是一个作弄人的问题,看似打印100,但是它根本不能编译。java语言规范不允许一个本地变了声明语句作为一条语句在for、while、do循环中重复执行。一个本地变量声明作为一条语句只能直接出现在一个语句块中。
import java.util.Calendar; public class Elvis { public static final Elvis INSTANCE = new Elvis(); private final int beltSize; private static final int CURRENT_YEAR = Calendar.getInstance().get( Calendar.YEAR); public static void main(String[] args) { System.out.println("Elvis wears a size " + INSTANCE.beltSize() + " belts."); } public int beltSize() { return beltSize; } private Elvis() { beltSize = CURRENT_YEAR - 1930; } }
第一眼看去,这个程序是在计算当前的年份减去1930的值。但运行程序结果为:Elvis wears a size -1930 belts.
这个问题是由类初始化顺序中的循环而引起的。Elvis类的初始化是由虚拟机对其main方法的调用而触发的。首先,其静态域被设置为缺省值,INSTANCE为null,CURRENT_YEAR为0。接下来,静态域初始器按照其出现的次序执行。第一个静态域INSTANCE,它的值通过调用构造器而计算出的。这个构造器用一个涉及了静态域CURRENT_YEAR的表达式来计算的,而此时其值仍然是0。所以beltSize为-1930。
谜题50:不是你的类型
本谜题测试你对java的两个经典操作符:instanceof和转型的理解程度。
public class Type1 { public static void main(String[] args) { String s = null; System.out.println(s instanceof String); //false } }
public class Type2 { public static void main(String[] args) { System.out.println(new Type2() instanceof String); } }
public class Type3 { public static void main(String[] args) { Type3 t = (Type3) new Object(); } }
第一个输出false,因为尽管null对于每一个引用类型来说都是其子类型,但是instanceof操作符被定义为在其做操作数为null时返回false。
第二个程序编译失败,原因是:instanceof操作符有这样的要求,如果两个操作数的类型是类,其中一个必须是另外一个的子类型。
第三个抛出 java.lang.ClassCastException异常
谜题54:null与void下面是经典hello world的变种,将打印什么呢?
public class Null { public static void greet(){ System.out.println("hello world"); } public static void main(String[] args) { ((Null)null).greet(); } }
这个程序似乎应该抛出NullPointerException异常,但它打印出了“hello world”。
理解本谜题的关键是,Null.greet是一个静态方法。等价于greet()和Null.greet().
如果将方法的static去掉,就会出现异常。
谜题55:特创论
class Creature { private static long numCreated = 0; public Creature() { numCreated++; } public static long numCreated() { return numCreated; } } public class Creator { public static void main(String[] args) { for(int i = 0;i<100;i++) Creature creature = new Creature(); System.out.println(Creature.numCreated()); } }
这是一个作弄人的问题,看似打印100,但是它根本不能编译。java语言规范不允许一个本地变了声明语句作为一条语句在for、while、do循环中重复执行。一个本地变量声明作为一条语句只能直接出现在一个语句块中。
发表评论
-
数据库及struts面试题
2011-06-22 11:07 1061数据库部分 Q: What is SQL? ... -
EJB面试题
2011-06-22 10:54 1126Q: What are the different kinds ... -
java中的servlet面试题
2011-06-22 10:43 1112Q: Explain the life cycle metho ... -
java中JSP的面试题
2011-06-22 10:22 1546Q: What is a output comment? (可 ... -
java中的集合面试题
2011-06-22 10:12 722Q: 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 9951,多线程 线程或者说 ... -
java面试题解惑 之变量初始顺序,变量覆盖,字符串池,final,finally区别
2011-06-02 16:26 8011,变量初始化顺序 package com.qdu.sun; ... -
java解惑(Map的使用,静态导入方法,线程中断interrupted与线程死锁)
2011-05-17 12:38 1401Map的使用 package other; import ... -
java 继承的一个问题(想不明白)
2011-04-13 17:03 917java中的继承问题,以为是学会了java,结果最简单的一个j ... -
java解惑(谜题76。。)
2011-03-09 11:22 1223谜题76:乒乓public class PingPong { ... -
java解惑(谜题60,65)
2011-03-08 15:52 919一行以毙之 1,编写一个 ... -
java解惑(谜题66。。。)
2011-02-28 20:54 957谜题66:一件私事 class Base{ public ... -
java解惑(谜题61。。。)
2011-02-28 20:17 917谜题61:日期游戏 import java.util.Cal ... -
java解惑(谜题56到。。库之谜)
2011-02-28 19:41 861谜题56:大问题 import jav ... -
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中,...
在每个谜题之后都有详细的解惑方案,这些方案在给出那些实际行为与表面上迥异的程序行为的简单解释的同时,更向读者展示了如何一劳永逸地避免底层的陷阱与缺陷。 本书以轻松诙谐的语言,寓教于乐的方式,由浅入深、...
谜题49:比生命更大 谜题50:不是你的类型 谜题51:那个点是什么? 谜题52:合计数的玩笑 谜题53:按你的意愿行事 谜题54:Null与Void 谜题55:特创论 Java谜题6——库谜题 谜题56:大问题 谜题57:名字里...
### 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中的取余...