Java
wangyun19850918
这个作者很懒,什么都没留下…
展开
-
Java异常的限制
Java 中还是对异常有限制的——在继承和覆盖方法的过程中,异常声明只能越变越小。这是因为如果不这么做,继承和覆盖的方法声明了新的异常声明,那么在对象的向上转型并调用该方法时肯定会出现问题! 异常声明越变越小有两层意思: 1)继承和覆盖的方法只声明部分基类的异常声明。 2)继承和覆盖的方法声明基类声明异常的派生类。 但是异常的限制对构造器不起作用!派生类的构造器可以声明任何的异常,...2008-06-19 23:20:48 · 234 阅读 · 0 评论 -
正则表达式略知
Java在JDK1.4中开始加入了正则表达式。但Java的正则表达式使用与其他语言的正则表达式有个很大的区别:反斜杠!在Java中“\\”表示一个反斜杠因此“\\\\”才表示两个反斜杠。然后某些转义字符却只需要一个反斜杠,如“\n”,“\t”,不用写成“\\n”,“\\t”。 在Java中可以使用Pattern.compile静态方法创建正则表达式。在使用正则表达式匹配数据时,可以根...2008-05-03 21:30:19 · 73 阅读 · 0 评论 -
继承和组合的反思
无数的书中都在写尽量的使用组合而不要设用继承,可是让我们去看看那些“高人”写得设计模式吧,有多少是通过组合实现的。可见继承才是王道。他的优越性远远大于组合,我这里不提他的优越性,相信大家是知道的吧,那为什么还是老是去提倡组合呢?功能越强大的东西往往副作用更加大,去看看那些武侠小说吧最上乘武功其副作用都是很大的,最经典的就是葵花宝典了。哈哈。继续,也是说我们继承使用不当往往会产生对代码的...2008-08-28 23:21:00 · 133 阅读 · 0 评论 -
重载和覆盖
方法的重载和覆盖定义没有什么好说的了。直接写出他们的区别就可以了。 重载:编译器会检查方法名称,方法参数的个数和参数类型。 覆盖:编译器会检查方法名称,方法参数的个数和参数类型,还有方法返回类型和方法抛出的异常列表。 ...2008-08-16 23:43:33 · 83 阅读 · 0 评论 -
RTTI与反射
RTTI 的中文意思是“运行时类型识别”。在Java 中是通过Class 对象实现并且在使用“instanceof”操作符时也用到了RTTI。首先instanceof 操作符和Class对象有什么区别呢?instanceof 操作符用于判断对象的类型是否是指定的类型或其继承类,而Class需要通过isInstance 或isAssignableFrom 两个方法来判别,如果使用equa...2008-08-07 21:21:04 · 92 阅读 · 0 评论 -
构造器
虽然,Java 的构造器非常的简单方便,但还是由我们需要值得注意的地方。 首先当然逃不过对象的初始化顺序。为了能够体现对象的顺序,我写了一个如下一个类,相信已经包含了所有的对象初始化顺序了 class Base { public Base() { System.out.println( "B"); } } class Inner { ...2008-07-22 23:22:28 · 107 阅读 · 0 评论 -
元数据
Java 提供了三个标准注解: @Override 表示当前方法将覆盖基类的某个方法。这样编译器就会对该方法进行检查。 @Deprecated 表示当前元素使用注释编译器会提示警告错误 @SuppressWarnings 另外,Java 还提供了四种元注解: @Target 表示该注释用于什么地方。 ...2008-07-10 09:02:02 · 101 阅读 · 0 评论 -
Java1.5 新特性
在Java1.5 中增加了很多新的特性,首先我想介绍的新特性之一:泛型。 我对泛型一词的理解是:将抽象的类型具体化(Object 的泛型化,使其特指某一个特性的对象)。Java 通过泛型使对集合指定存储类型,在集合对象使用的时候不再需要强制转型。并且在往集合中存放数据时得到了编译器的检查。Java 的泛型很像C++中的模板机制。但两者可能存在一定的区别。(具体我也不知道。:...2008-07-07 15:13:04 · 188 阅读 · 0 评论 -
Java 的基本特性
以下内容摘自《Thinking in Java》。并对内容进行了修改和添加了自己的理解。 Java的五个基本特性: 1)万物皆为对象。相信也正是因为万物皆为对象,面向对象的编程语言才可以解决任何的问题。其实这是对象的一个特性:抽象。 2)程序是对象的集合,它们通过发送消息来告知彼此所要做的。消息可以理解为对象方法的调用请求。 3)每个对象...2008-07-06 21:29:18 · 98 阅读 · 0 评论 -
final 关键字
根据上下文环境,Java final 关键字存在的细微的差别,但通常它指的是“这是无法改变的”。而不想改变的原因可能出于两种:设计或效率。 首先我们先要说的final 数据,final 数据如何提升效率的呢?编译器在编译常量时会同时计算使用该常量的计算公式,这样便减轻了运行时的负担,提高了效率。但是该常量必须是基本类型并且在创建时进行了初始化。在用final 修饰字段时可以...2008-07-05 23:59:02 · 88 阅读 · 0 评论 -
异常链
Java 1.4以后有了异常链。显然异常链是为了解决某种设计上出现的问题。那么这个问题到底是什么呢?通过阅读JDK 的源代码我们便可以有所了解。 异常链是为了解决某种特别的情况:A 方法调用B 方法时,B 方法却抛出了异常。那么A 方法是继续抛出原有的异常还是抛出一个新异常呢?我们可以具体的分析便可以了解异常链的用处了。 首先,是抛出原有的异常。这就很糟糕的设计...2008-07-02 17:02:08 · 142 阅读 · 0 评论 -
finally 语句的妙用2
虽然标题说是finally 语句的妙用,但其实是finally 的错误用法。我们在编写的时候应该时刻的避免这种情况的发生! 言归正传,finally 语句的这个妙用的用途是丢失异常。 代码如下: class VeryImportantException extends Exception { } class HoHumException extends Exceptio...2008-06-05 21:48:14 · 106 阅读 · 0 评论 -
finally语句的妙用
在Java 中finally 语句只用于try-catch 语句之后,用于清理的目的。但是我们可以通过finlly 语句的妙用达到goto 语句的效果(java 中没有goto 语句,只有goto 这个保留字。) 代码如下: /** * 通过finally 语句的妙用 * 在Java 中达到goto语句的效果 */ public class Goto { sta...2008-06-03 21:53:25 · 300 阅读 · 0 评论 -
Java异常略知
Java异常虽然使用非常方便且浅显易懂,但还是有些值得我们关注的知识点或者可以说是“小技巧”。 1)在捕获异常的过程中,应该将Exception异常要放于捕获异常的最后。因为Exception可以捕获任何可以捕获的异常,如果它放于其他的异常之前,那么在Exception异常之后的异常捕获代码永远不会执行,因此Exception异常要放于捕获异常的最后! 2)重新抛出异常 将捕获的异常...2008-06-02 22:22:29 · 71 阅读 · 0 评论 -
new String("abc")的联想。。。
有这么一道Java 面试题:new String("abc")创建了几个String 对象?答案是2个。为什么呢。。。 这样从Java 的虚拟机说起,JVM 是通过栈堆的方式存储变量的。栈主要存放内部变量(基本变量)和对象的引用。栈的数据可以共享且读取速度快。堆用于存放对象数据。其读取速度不如栈那么地快。 接下来我们要分析“abc”的存储方式。它是以对象进行存储...2008-07-01 13:23:22 · 81 阅读 · 0 评论 -
数字转型
在Java中字符串转换成数字的方式有很多。如Integer.parseInt方法等等。在这里我想介绍一个关于NumberFormat类,它可以用于格式化和分析任何语言环境的数字。 NumberFormat方法介绍: 1)getInstance():获取NumberFormat对象 2)format():格式化数字,方法返回字符串对象 3)parse():将字符串解析为数字,方法返回Nu...2008-05-13 17:17:32 · 75 阅读 · 0 评论