- 浏览: 468029 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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多线程例子
谜题66:一件私事
注意该程序有编译错误。因为子类中的变量比父类中的变量更具限制性的访问权限。而子类的变量是private,访问不了。尽管父类的变量被隐藏了,但是可以通过将子类实例转化为父类来访问它,如下可以打印出Base:System.out.println(((Base)new Sub()).className);
一旦一个方法在子类中被覆盖,你就不能在子类的实例上调用它了(除了在子类内部,通过使用super关键字的方法),然而,你可以通过将子类实例转化为父类来访问被隐藏的域。
谜题67:对字符串上瘾
运行会出现下图错误并报异常:java.lang.NoSuchMethodError: main
VM找不到main方法,是因为它并不在那里。一个main方法必须接受一个单一的字符串参数,而此程序中String是我们自己定义的String类,而非java.lang.String类。
谜题68:灰色的阴影
输出的是White。有一条规则决定着程序的行为,即当一个变量和一个类型具有相同的名字,并且它们位于相同的作用域时,变量名具有优先权。相似的,变量名和类型名可以遮掩包名。
注意:编程习惯,变量名小写,类名大写
谜题71:进口税
编译错误,Arrays.toString(Object[])可以完全匹配,为啥出错呢?本例中toString引用的是Object继承而来的toString方法。简单地说,本身就属于某个范围的成员在该范围内与静态导入相比具有优先权。
可改为:
谜题:
编译成功并打印出2 cents。
final修饰符对方法和域而言,意味着某些完全不同的事情。对于方法,final意味着该方法不能被覆写(对实例方法而言)或者隐藏(对静态方法而言)。对于域,final意味着该域不能被赋值超过一次。
class Base{ public String className = "Base"; } class Sub extends Base{ private String className = "subclass"; } public class PrivateMatter { public static void main(String[] args) { System.out.println(new Sub().className); } }
注意该程序有编译错误。因为子类中的变量比父类中的变量更具限制性的访问权限。而子类的变量是private,访问不了。尽管父类的变量被隐藏了,但是可以通过将子类实例转化为父类来访问它,如下可以打印出Base:System.out.println(((Base)new Sub()).className);
一旦一个方法在子类中被覆盖,你就不能在子类的实例上调用它了(除了在子类内部,通过使用super关键字的方法),然而,你可以通过将子类实例转化为父类来访问被隐藏的域。
谜题67:对字符串上瘾
public class StrungOut { public static void main(String[] args) { String s = new String("hello"); System.out.println(s); } } class String{ private final java.lang.String s; public String(java.lang.String s){ this.s = s; } public java.lang.String toString(){ return s; } }
运行会出现下图错误并报异常:java.lang.NoSuchMethodError: main
VM找不到main方法,是因为它并不在那里。一个main方法必须接受一个单一的字符串参数,而此程序中String是我们自己定义的String类,而非java.lang.String类。
谜题68:灰色的阴影
public class Shade { public static void main(String[] args) { System.out.println(X.Y.Z); } } class X{ static class Y{ static String Z = "Black"; } static C Y = new C(); } class C{ String Z= "White"; }
输出的是White。有一条规则决定着程序的行为,即当一个变量和一个类型具有相同的名字,并且它们位于相同的作用域时,变量名具有优先权。相似的,变量名和类型名可以遮掩包名。
注意:编程习惯,变量名小写,类名大写
谜题71:进口税
import static java.util.Arrays.toString; public class ImportDuty { public static void main(String[] args) { printArgs(1,2,3,4,5); } static void printArgs(Object...args) { System.out.println(toString(args)); } }
编译错误,Arrays.toString(Object[])可以完全匹配,为啥出错呢?本例中toString引用的是Object继承而来的toString方法。简单地说,本身就属于某个范围的成员在该范围内与静态导入相比具有优先权。
可改为:
import java.util.Arrays; public class ImportDuty { public static void main(String[] args) { printArgs(1,2,3,4,5); } static void printArgs(Object...args) { System.out.println(Arrays.toString(args)); //[1, 2, 3, 4, 5] } }
谜题:
class Base { public static final String PRIZE = "$64,000"; } public class Sub extends Base { public static final String PRIZE = "2 cents"; public static void main(String[] args) { System.out.println(Sub.PRIZE); // 2 cents } }
编译成功并打印出2 cents。
final修饰符对方法和域而言,意味着某些完全不同的事情。对于方法,final意味着该方法不能被覆写(对实例方法而言)或者隐藏(对静态方法而言)。对于域,final意味着该域不能被赋值超过一次。
发表评论
-
数据库及struts面试题
2011-06-22 11:07 1061数据库部分 Q: What is SQL? ... -
EJB面试题
2011-06-22 10:54 1127Q: 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解惑(谜题61。。。)
2011-02-28 20:17 917谜题61:日期游戏 import java.util.Cal ... -
java解惑(谜题56到。。库之谜)
2011-02-28 19:41 861谜题56:大问题 import jav ... -
java解惑(谜题49。。)
2011-02-27 10:52 955谜题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 解惑 java 解惑 java 解惑 java 解惑 java 解惑 java 解惑
《Java解惑(中文版)》是一本专为Java初学者设计的学习资料,旨在帮助读者解答在学习Java过程中遇到的各种困惑。"solve65p"可能代表这本书包含65个问题或主题,每个都深入浅出地进行了讲解,旨在解决初学者在编程...
文档《java解惑 PDF版》中列举了95个这样的谜题,每个谜题都旨在帮助开发者理解并纠正一些常见的错误理解。以下是根据提供的部分内容解析的几个相关知识点。 ### 表达式谜题与取余操作符(%)的行为 在Java中,...
《Java解惑》 布洛克 著;陈昊鹏 译 扫描清晰带目录,仅供参阅,请支持正版
Java PUZZLE Java 解惑 Java PUZZLE Java 解惑 Java PUZZLE Java 解惑Java PUZZLE Java 解惑 Java PUZZLE Java 解惑 Java PUZZLE Java 解惑
《Java解惑中文版》是一本专为Java程序员设计的指南,旨在帮助读者解决在编程过程中遇到的各种问题,提升程序的健壮性。本书深入浅出地探讨了Java语言的核心概念、常见疑惑以及最佳实践,旨在使开发者能够编写出更...
Java谜题 Java谜题1——表达式谜题 谜题1:奇数性 谜题2:找零时刻 谜题3:长整除 谜题4:初级问题 谜题5:十六进制的趣事 谜题6:多重转型 谜题7:互换内容 谜题8:Dos Equis 谜题9:半斤 谜题10:八两 ...
在每个谜题之后都有详细的解惑方案,这些方案在给出那些实际行为与表面上迥异的程序行为的简单解释的同时,更向读者展示了如何一劳永逸地避免底层的陷阱与缺陷。 本书以轻松诙谐的语言,寓教于乐的方式,由浅入深、...
"JAVA解惑"的主题针对的是Java学习过程中遇到的一些常见问题和难点,旨在帮助开发者深入理解和解决这些问题。以下是基于这个主题和描述可能涵盖的一些关键知识点: 1. **Java基础**:这可能包括变量、数据类型、...
#### Java谜题1——表达式谜题 **谜题1:奇数性** 本节讨论了一个看似简单的Java方法,旨在判断一个整数是否为奇数: ```java public static boolean isOdd(int i) { return i % 2 == 1; } ``` 此方法的逻辑...
这份“Java解惑.pdf”文档很可能包含了解决Java开发者在编程过程中遇到的常见问题和困惑的详细解答。以下是可能涵盖的一些Java相关知识点: 1. **基础语法**:Java的基础语法包括变量、数据类型、运算符、流程控制...
"java解惑" PDF版本
该书特写了95个有关Java或其类库的陷阱和缺陷的谜题,其中大多数谜题都采用了短程序的方式,这些程序的行为与其看似的大相径庭。在每个谜题之后都给出了详细的解惑方案,这些解惑方案超越了对程序行为的简单解释,向...
《JAVA解惑》是Java开发者领域的一本经典著作,它被广大编程爱好者称为Java四大名著之一,旨在解决初学者及有一定经验的开发者在学习和使用Java过程中遇到的各种困惑。这本书深入浅出地讲解了Java语言的核心概念和...
《JAVA解惑》这本书主要针对Java编程中遇到的各种常见问题和困惑进行了解答,旨在帮助开发者深入理解Java语言,提高编程技巧。以下是一些关键的知识点解析: 1. **异常处理**:Java中的异常处理是通过try-catch-...