- 浏览: 458740 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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多线程例子
谜题36:优柔寡断
原因:在一个try-finally语句中,finally总是在控制权离开try语句块时执行的。无论try语句块是正常结束还是意外结束,情况都是如此。
总之,千万不要用return、break、continue或throw来退出finally语句块,并且千万不要允许让受检查的异常传播到finally语句块之外。
谜题37:极端不可思议
先看下面三个程序,都会打印出什么呢?
第一个程序编译不过,因为println方法没有声明会抛出任何受检查异常,而IOException却是一个受检查异常,语言规范中描述到:如果一个catch子句要捕捉一个类型为E的受检查异常,而相应的try子句不能抛出E的某个子类型的异常,那么这就是一个编译错误
第二个可以编译,但什么都不会打印。捕捉Exception或Throwable的catch子句是合法的,不管相应的try子句的内容如何。
第三个也可以编译,一个方法可以抛出的受检查异常集合时它所适用的所有类型声明要抛出的受检查异常的交集,而不是合集。因此静态类型为Type3的对象上的方法f根本就不会抛出异常。
谜题38:不受欢迎的宾客
该程序不能编译,要确定一个程序是否可以不止一次对一个空final进行赋值是很困难的问题,事实上,这是不可能的。一个空final域只有在它的确未赋值的地方才可以被赋值。
谜题39:您好,再见
不论try语句块的执行是正常地还是意外地结束,finally语句块确实都会执行。然而,在这个程序中,try语句块根本没有结束其执行过程。System.exit方法将停止当前线程和所有其他当场死亡的线程。finally子句的出现不能给予线程继续执行的特殊权限。
谜题40:不情愿的构造器
会抛出java.lang.StackOverflowError异常。 与大多数抛出java.lang.StackOverflowError异常的程序一样本程序也包含了一个无限递归。当你调用一个构造器时,实例变量的初始化操作将先于构造器的程序体而运行。因为java.lang.StackOverflowError是Error的子类型,而不是Exception的子类型,所以
main中的catch子句无法捕捉到它。需要注意,构造器必须声明其实例初始化操作会抛出的所有受检查异常。
public class Main36 { public static void main(String[] args) { System.out.println(decision()); //false } private static boolean decision() { try{ return true; } finally{ return false; } } }
原因:在一个try-finally语句中,finally总是在控制权离开try语句块时执行的。无论try语句块是正常结束还是意外结束,情况都是如此。
总之,千万不要用return、break、continue或throw来退出finally语句块,并且千万不要允许让受检查的异常传播到finally语句块之外。
谜题37:极端不可思议
先看下面三个程序,都会打印出什么呢?
public class Main1 { public static void main(String[] args) { try { System.out.println("Hello world"); } catch (IOException e) { System.out.println("I've never seen println fail!"); }}}
public class Main2 { public static void main(String[] args) { try { //if you have nothing nice to say,say nothing. } catch (Exception e) { System.out.println("This can't happen!"); }}}
import java.io.IOException; interface Type1 { void f() throws CloneNotSupportedException; } interface Type2 { void f() throws InterruptedException; } interface Type3 extends Type1, Type2 { } public class Main37 implements Type3 { public static void main(String[] args) { Type3 t3 = new Main37(); t3.f();//打印Hello world } @Override public void f() { System.out.println("Hello world"); } }
第一个程序编译不过,因为println方法没有声明会抛出任何受检查异常,而IOException却是一个受检查异常,语言规范中描述到:如果一个catch子句要捕捉一个类型为E的受检查异常,而相应的try子句不能抛出E的某个子类型的异常,那么这就是一个编译错误
第二个可以编译,但什么都不会打印。捕捉Exception或Throwable的catch子句是合法的,不管相应的try子句的内容如何。
第三个也可以编译,一个方法可以抛出的受检查异常集合时它所适用的所有类型声明要抛出的受检查异常的交集,而不是合集。因此静态类型为Type3的对象上的方法f根本就不会抛出异常。
谜题38:不受欢迎的宾客
public class Main38 { public static final long GUEST_USER_ID = -1; private static final long USER_ID; static { try { USER_ID = getUserIdFromEnvironment(); } catch (IdUnavailableException e) { USER_ID = GUEST_USER_ID; } } public static void main(String[] args) { System.out.println("User ID: " + USER_ID); } private static long getUserIdFromEnvironment() throws IdUnavailableException { throw new IdUnavailableException(); } }
该程序不能编译,要确定一个程序是否可以不止一次对一个空final进行赋值是很困难的问题,事实上,这是不可能的。一个空final域只有在它的确未赋值的地方才可以被赋值。
谜题39:您好,再见
public class Main39 { public static void main(String[] args) { try { System.out.println("hello world!"); System.exit(0); } finally{ System.out.println("goodbye world!"); } } }只打印出hello world!
不论try语句块的执行是正常地还是意外地结束,finally语句块确实都会执行。然而,在这个程序中,try语句块根本没有结束其执行过程。System.exit方法将停止当前线程和所有其他当场死亡的线程。finally子句的出现不能给予线程继续执行的特殊权限。
谜题40:不情愿的构造器
public class Reluctant { private Reluctant internalInstance = new Reluctant(); public Reluctant() throws Exception{ throw new Exception("I'm not coming out!"); } public static void main(String[] args) { try { Reluctant b = new Reluctant(); System.out.println("Surprise!"); } catch (Exception e) { System.out.println("I told you so"); } } }
会抛出java.lang.StackOverflowError异常。 与大多数抛出java.lang.StackOverflowError异常的程序一样本程序也包含了一个无限递归。当你调用一个构造器时,实例变量的初始化操作将先于构造器的程序体而运行。因为java.lang.StackOverflowError是Error的子类型,而不是Exception的子类型,所以
main中的catch子句无法捕捉到它。需要注意,构造器必须声明其实例初始化操作会抛出的所有受检查异常。
发表评论
-
数据库及struts面试题
2011-06-22 11:07 1026数据库部分 Q: What is SQL? ... -
EJB面试题
2011-06-22 10:54 1095Q: What are the different kinds ... -
java中的servlet面试题
2011-06-22 10:43 1077Q: Explain the life cycle metho ... -
java中JSP的面试题
2011-06-22 10:22 1506Q: What is a output comment? (可 ... -
java中的集合面试题
2011-06-22 10:12 689Q: What is the Collections API? ... -
彻底搞清楚java的内部类
2011-06-15 10:47 1454内部类允许在一个类中 ... -
细说java(java中的浮点数十六进制表示)
2011-06-12 16:48 3509java中浮点数不能用八进制表示,但可以用十六进制表示,只能用 ... -
SCJP试题
2011-06-09 16:14 1143package scjp; public class T ... -
java面试题解惑 之 继承、多态、重载、重写
2011-06-03 09:36 1270继承、多态、重载、重写 继承 java中有三种类:类,抽象类, ... -
java面试题解惑 之 多线程
2011-06-02 17:24 9501,多线程 线程或者说 ... -
java面试题解惑 之变量初始顺序,变量覆盖,字符串池,final,finally区别
2011-06-02 16:26 7621,变量初始化顺序 package com.qdu.sun; ... -
java解惑(Map的使用,静态导入方法,线程中断interrupted与线程死锁)
2011-05-17 12:38 1363Map的使用 package other; import ... -
java 继承的一个问题(想不明白)
2011-04-13 17:03 884java中的继承问题,以为是学会了java,结果最简单的一个j ... -
java解惑(谜题76。。)
2011-03-09 11:22 1178谜题76:乒乓public class PingPong { ... -
java解惑(谜题60,65)
2011-03-08 15:52 886一行以毙之 1,编写一个 ... -
java解惑(谜题66。。。)
2011-02-28 20:54 912谜题66:一件私事 class Base{ public ... -
java解惑(谜题61。。。)
2011-02-28 20:17 885谜题61:日期游戏 import java.util.Cal ... -
java解惑(谜题56到。。库之谜)
2011-02-28 19:41 828谜题56:大问题 import jav ... -
java解惑(谜题49。。)
2011-02-27 10:52 924谜题49:比生命更大 import java.util.Cal ... -
java解惑(谜题41到谜题)
2011-02-27 10:18 884谜题41:域和流 下面的 ...
相关推荐
Java谜题1——表达式谜题 谜题1:奇数性 谜题2:找零时刻 谜题3:长整除 谜题4:初级问题 谜题5:十六进制的趣事 谜题6:多重转型 谜题7:互换内容 谜题8:Dos Equis 谜题9:半斤 谜题10:八两 Java谜题2...
算法谜题,就是能够直接或间接地采用算法来加以解决的谜题。求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径。 本书是一本经典算法谜题的合集。本书包括了一些古已有之的谜题,数学和计算机科学有...
《算法谜题》是一本经典算法谜题的合集。本书包括了一些古已有之的谜题,数学和计算机科学有一部分知识就发源于此。本书中还有一些较新的谜题,其中有一部分谜题被用作知名IT企业的面试题。全书可分为4个部分,分别...
C语言的谜题 | | 酷 壳 - CoolShell1
JavaJava谜题谜题-表达式谜题表达式谜题 JavaJava谜题谜题 -表达式谜题表达式谜题
在VS2019环境下编写、编译的MFC应用程序,实现了四等谜题随机出题、自定义出题、游玩解题、生成答案等功能,非常全面。
Java谜题1——表达式谜题.htm Java谜题2——字符谜题.htm Java谜题3——循环谜题.htm Java谜题4——异常谜题.htm Java谜题5——类谜题.htm Java谜题6——库谜题.htm Java谜题7——更多的类谜题.htm Java谜题8——更...
用于面试培训的编程练习、代码套路和谜题-或者只是为了好玩。___下载.zip
《算法谜题》是一本经典算法谜题的合集。书中包括了一些古已有之的谜题,数学和计算机科学有一部分知识就发源于此。 《算法谜题》可以为对算法感兴趣的广大读者提供系统丰富而实用的资料,能够帮助读者提升高阶算法...
算法是计算机科学领域最重要的基石之一。算法谜题,就是能够直接或间接地采用算法来加以解决的谜题。求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径
自从我知道数独游戏以来,我... 这个 m 文件包含随机猜测方案,因此,当给它一个空的数独谜题时,它会解决它,结果,它会生成一个随机数独谜题。 之后,另一个 m 文件 Sudoku.m 被用来生成 SudokuSolver.m 的用户界面。
python百钱买百鸡 这个程序使用两个嵌套循环来尝试不同的公鸡和母鸡数量,然后计算出小鸡的数量。它检查是否满足条件:总价格为 100 元,总数量为 100 只鸡。如果条件满足,程序将打印出符合条件的公鸡、母鸡和小鸡...
算法谜题(算法谜题).pdf 完整版的;高清 ;英文版
Java 谜题
这是对先前提交的递归程序的改进,该程序可以找到给定数独谜题的所有可能解决方案。 由于 Leif Warland 的聪明建议,这个新程序找到解决方案的速度提高了大约 20 倍。
Tromino谜题是用C语言程序实现的,仅供参考
在工程技术学院 (IET http://theiet./org ) 出版物 2017 年 10 月附件早期职业的封面上发布的 GCHQ 拼图的合理表达中编码的坐标的向前检查和转置读取。 即使使用德州仪器 TINA Spice 模拟器构建简单的块也花费了太长...
java 表达式谜题 java 字符谜题 java 循环谜题 java 异常谜题 java 高级谜题 ......
C语言谜题.很有趣,不错的c语言的小知识,