梦的尽头...
程序人生
    孙卫琴这本书,总体看来,还是不错的,通俗易懂,由浅入深,和国外java经典教材还是有点不一样。特别是最后书的中段,对java虚拟机以及类、对象生命周期的描述,对于想深入理解java运行原理的程序员还是很有帮助的。

1&&||是短路操作符,如操作符左边的布尔表达式能推算出整个表达式,则右边的布尔表达式不会执行;

   & |是非短路操作符,它将执行操作符两边的布尔表达式。

2、“==”用于比较引用类型变量(非null)时,两边的变量被显示声明的类型必须是同种类型或有继承关系,否则编译器报错;instanceof的规则与==类似。

3boolean类型不能与其他基本类型进行强制转换。

4(byte、char、short) op (byte、char、short、int) ---> int

   byte、char、short ++/-- 一元运算中不自动转化类型。

5char2个字节,且是无符号数,默认值是'u0000',取值范围0~2^16 -1(注意,c里面是一个字节,可以是有符号数,也可以是无符号数);

   short2个字节,有符号数。char变量与short变量之间的赋值总要强制类型转换。但把char类型的直接数赋给short类型变量,或者把int类型直接数赋给char类型变量,只要直接数在变量所属类型的取值范围内就运行自动类型转换,否则需要强制类型转换。

6switchcase子句中表达式的合法类型必须为整型(byte、char、short、int)

7、子类方法抛出的异常类必须是父类方法抛出的异常或其子类。

8、子类可以覆盖父类的静态方法,但不能变为非静态;同样父类的非静态方法也不能被子类覆盖为静态方法;

   父类中的私有方法不能被子类覆盖,但可以在子类中重写(可以是非私有的);

   父类的非抽象方法可以被覆盖为抽象方法。

9super只能在构造方法或实例方法中使用,而不能在静态方法和静态代码块中使用。

10、父类的构造函数不应该调用可被子类覆盖的方法,因为如果这样,可能导致程序运行时出现伟预料的错误,虽然语法上并没有错。

11synchronizednative只能用来修饰成员方法;transientvolatile只能用来修饰成员变量。

12abstract不能修饰构造方法和静态方法,也不能与final连用。

13final修饰的成员变量(包括实例常量、静态常量)必须显示初始化,可在定义时、构造函数里或静态代码块中初始化。

14、一个接口可以继承多个接口:interface C extends A,B{}

15import static /接口;允许直接访问另一个类/接口中的静态常量,而不必指定类/接口名。

16finally代码块在return语句之前执行,但finally代码块不能通过重新给变量赋值的方式改变return语句的返回值。建议不要在finally代码块中使用return语句,因为这可能导致:1)覆盖trycatch块中的return语句;2)丢失异常。

17、运行时异常:编译器不会检查(即可以不try,也不用throws)。

18、对象的引用分为:StrongReferenceSoftReferenceWeakReferencePhantomReference

19Set中的对象不按特定方式排序,无重复对象,常用的有HashSetTreeSet;

    List的元素以线形方式存储,允许重复,常用的有ArrayListLinkedList

    Map中的键对象不允许重复,常用的有HashMapTreeMap

posted on 2007-11-05 11:15  图梦  阅读(450)  评论(0)    收藏  举报