第1章 对象导论
1、public、private、protected及包访问权限:
1)public:表示紧随其后的元素对任何人都是可用的。
2)private:表示除类型的创建者和类型的内部方法之外的任何人都不能访问的元素。
3)protected:与private作用相当,差别仅在于继承的类可以访问protected成员。
4)包访问权限:类可以访问在同一个包(可构件)中的其他类的成员,但是在包之外,这些成员如同指定了private一样。
第2章 一切都是对象
1、boolean类型所占存储空间的大小没有明确指定,仅定义为能够取字面值true或false。
2、在c和c++里将一个较大作用域的变量“隐藏”起来的做法,在Java里是不允许的。
3、若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。当变量作为类的成员使用时,Java才确保给定其默认值。
4、javadoc只能诶public和protected成员进行文档注释。private和包内可访问成员的注释会被忽略掉,所以输出结果中看不到它们(不过可以用
-private进行标记,以便把private成员的注释也包括在内)。
5、所有类型的注释文档--类、域和方法--都支持嵌入式HTML。
第3章 操作符
1、静态导入(static import)。
2、当且仅当两个对象引用同一个对象时,equals方法才返回true。
3、在Java中通过equals比较两个对象默认是hashcode+value,只有这两个相同才算是相同对象。string修改了hashcode,还有hashcode并不代表内存,
只是一个散列码而已。
第4章 控制执行流程
1、Java不支持goto语句。尽管goto仍是Java中的一个保留字,但在语言中并未使用它;Java没有goto。
2、return关键字有两方面的用途:
1)指定一个方法返回什么值;
2)导致当前的方法退出。
第5章 初始化与清理
1、尽管可以用this调用一个构造器,但却不能调用两个。必须将构造器调用置于最起始处,否则编译器会报错。
2、除构造器之外,编译器禁止在其他任何方法中调用构造器。
3、垃圾回收器只知道释放那些由new分配的内存。
4、静态初始化只有在必要的时刻才会进行。
第6章 访问权限控制
第7章 复用类
1、Java会自动在导出类的构造器中插入对基类构造器的调用。
2、构造器也是static方法,尽管static关键字并没有显示地写出来。
第8章 多态
1、Java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定的。
2、只有非private方法才可以被覆盖。
3、如果某个方法时静态的,它的行为就不具有多态性。静态方法与类,而非与单个的对象相关联的。
第9章 接口
1、接口也可以包含域,但是这些域隐式地是static和final的。
2、放入接口中的任何域都自动是public、static、final的。
3、接口可以嵌套在类或其他接口中。
4、当实现某个接口时,并不需要实现嵌套在其内部的任何接口。
第10章 内部类
1、在拥有外部类对象之前,是不可能创建内部类对象的。
2、如果定义一个匿名内部类,并且希望它使用一个在其外部定义的对象,那么编译器会要求其参数引用时final的。
3、匿名内部类既可以扩展类,也可以实现接口,但是不能两者兼备。而且如果是实现接口,也只能实现一个接口。
4、正常情况下,不能在接口内部放置任何代码,但嵌套类可以作为接口的一部分。
第11章 持有对象
1、TreeSet将元素存储在红-黑树数据结构中。
2、创建了任何实现Iterable的类,都可以将它用于foreach语句中。
第12章 通过异常处理错误
1、异常处理是java中唯一正式的错误报告机制。
2、所有的标准异常类都有两个构造器:一个是默认构造器;另一个是接受字符串作为参数,以便能把相关信息放入异常对象的构造器。
3、printStackTrace()方法所提供的信息可以通过getStackTrace()方法来直接访问,这个方法将返回;一个由栈轨迹中的元素所构成的数组,其中每一个元
素都表示栈中的一帧、
第13章 字符串
第14章 类型信息
1、在传递给forName()的字符串中,必须使用全限定名(包含包名)。
2、通过使用反射,仍旧可以到达并调用所有方法,甚至是private方法。
3、没有任何方式可以阻止反射到达并调用那些非公共访问权限的方法。
第15章 泛型
1、泛型可以用于接口。
2、Java泛型的一个局限性:基本类型无法作为类型参数。Java SE5具备了自动打包和拆包的功能,可以很方便地在基本类型和其相应的包装器类型之间进行
转换。
3、Java泛型是使用擦除来实现的,这意味着当你在使用泛型时,任何具体的类型信息都被擦除了。
4、一个类不能实现同一个泛型接口的两种变体。
5、下列程序是不能编译的,即使编译它是一种合理的尝试:
public class UserList<W,T>{
void f(List<T> v){}
void f(List<W> v){}
}
由于擦除的原因,重载方法将产生相同的类型签名。
6、catch语句不能捕获泛型类型的异常。
第16章 数组
1、在Java中,数组是一种效率最高的存储和随机访问对象引用序列的方式。
2、对象数组保存的是引用,基本类型数组直接保存基本类型的值。
3、equals()用于比较两个数组是否相等(deepEquals()用于多维数组)。
第17章 容器深入研究
1、默认的Object.equals()只是比较对象的地址。
第18章 Java I/O系统
第19章 枚举类型
1、调用enum的values()方法,可以遍历enum实例。
2、创建enum时,编译器会为你生成一个相关的类,这个类继承自java.lang.Enum。
3、enum不能再继承其他的类。
第20章 注解
1、Java SE5内置了三种,定义在java.lang中的注解:
1)@Override,表示当前的方法定义将覆盖超类中的方法。
2)@Deprecated,如果程序员使用了注解为它的元素,那么编译器会发出警告信息。
3)@SuppressWarnings,关闭不当的编译器警告信息。
2、注解也会编译成.class文件。
3、Java SE5中定义了三种标准注解,以及四种元注解。
第21章 并发
1、Java的线程机制基于来自C的低级的p线程方式。
第22章 图形化用户界面
1、“三次修订”规则(产品在修订三次之后才会成熟)。
2、JComponent有一个setBorder()方法,它允许你为任何可视组件设置各种边框。
3、对于JRadioButton,如果把多个单选按钮的状态都设置为选中,那么只有最后设置的那个有效。
4、某个特定组件只能持有一个JMenuBar对象。
5、任何能接受文本的组件都可以接受HTML文本,且能根据HTML的规则来重新格式化文本。
6、ProgressMonitor只能向前移动,并且一旦移动到底就会关闭。
1、public、private、protected及包访问权限:
1)public:表示紧随其后的元素对任何人都是可用的。
2)private:表示除类型的创建者和类型的内部方法之外的任何人都不能访问的元素。
3)protected:与private作用相当,差别仅在于继承的类可以访问protected成员。
4)包访问权限:类可以访问在同一个包(可构件)中的其他类的成员,但是在包之外,这些成员如同指定了private一样。
第2章 一切都是对象
1、boolean类型所占存储空间的大小没有明确指定,仅定义为能够取字面值true或false。
2、在c和c++里将一个较大作用域的变量“隐藏”起来的做法,在Java里是不允许的。
3、若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。当变量作为类的成员使用时,Java才确保给定其默认值。
4、javadoc只能诶public和protected成员进行文档注释。private和包内可访问成员的注释会被忽略掉,所以输出结果中看不到它们(不过可以用
-private进行标记,以便把private成员的注释也包括在内)。
5、所有类型的注释文档--类、域和方法--都支持嵌入式HTML。
第3章 操作符
1、静态导入(static import)。
2、当且仅当两个对象引用同一个对象时,equals方法才返回true。
3、在Java中通过equals比较两个对象默认是hashcode+value,只有这两个相同才算是相同对象。string修改了hashcode,还有hashcode并不代表内存,
只是一个散列码而已。
第4章 控制执行流程
1、Java不支持goto语句。尽管goto仍是Java中的一个保留字,但在语言中并未使用它;Java没有goto。
2、return关键字有两方面的用途:
1)指定一个方法返回什么值;
2)导致当前的方法退出。
第5章 初始化与清理
1、尽管可以用this调用一个构造器,但却不能调用两个。必须将构造器调用置于最起始处,否则编译器会报错。
2、除构造器之外,编译器禁止在其他任何方法中调用构造器。
3、垃圾回收器只知道释放那些由new分配的内存。
4、静态初始化只有在必要的时刻才会进行。
第6章 访问权限控制
第7章 复用类
1、Java会自动在导出类的构造器中插入对基类构造器的调用。
2、构造器也是static方法,尽管static关键字并没有显示地写出来。
第8章 多态
1、Java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定的。
2、只有非private方法才可以被覆盖。
3、如果某个方法时静态的,它的行为就不具有多态性。静态方法与类,而非与单个的对象相关联的。
第9章 接口
1、接口也可以包含域,但是这些域隐式地是static和final的。
2、放入接口中的任何域都自动是public、static、final的。
3、接口可以嵌套在类或其他接口中。
4、当实现某个接口时,并不需要实现嵌套在其内部的任何接口。
第10章 内部类
1、在拥有外部类对象之前,是不可能创建内部类对象的。
2、如果定义一个匿名内部类,并且希望它使用一个在其外部定义的对象,那么编译器会要求其参数引用时final的。
3、匿名内部类既可以扩展类,也可以实现接口,但是不能两者兼备。而且如果是实现接口,也只能实现一个接口。
4、正常情况下,不能在接口内部放置任何代码,但嵌套类可以作为接口的一部分。
第11章 持有对象
1、TreeSet将元素存储在红-黑树数据结构中。
2、创建了任何实现Iterable的类,都可以将它用于foreach语句中。
第12章 通过异常处理错误
1、异常处理是java中唯一正式的错误报告机制。
2、所有的标准异常类都有两个构造器:一个是默认构造器;另一个是接受字符串作为参数,以便能把相关信息放入异常对象的构造器。
3、printStackTrace()方法所提供的信息可以通过getStackTrace()方法来直接访问,这个方法将返回;一个由栈轨迹中的元素所构成的数组,其中每一个元
素都表示栈中的一帧、
第13章 字符串
第14章 类型信息
1、在传递给forName()的字符串中,必须使用全限定名(包含包名)。
2、通过使用反射,仍旧可以到达并调用所有方法,甚至是private方法。
3、没有任何方式可以阻止反射到达并调用那些非公共访问权限的方法。
第15章 泛型
1、泛型可以用于接口。
2、Java泛型的一个局限性:基本类型无法作为类型参数。Java SE5具备了自动打包和拆包的功能,可以很方便地在基本类型和其相应的包装器类型之间进行
转换。
3、Java泛型是使用擦除来实现的,这意味着当你在使用泛型时,任何具体的类型信息都被擦除了。
4、一个类不能实现同一个泛型接口的两种变体。
5、下列程序是不能编译的,即使编译它是一种合理的尝试:
public class UserList<W,T>{
void f(List<T> v){}
void f(List<W> v){}
}
由于擦除的原因,重载方法将产生相同的类型签名。
6、catch语句不能捕获泛型类型的异常。
第16章 数组
1、在Java中,数组是一种效率最高的存储和随机访问对象引用序列的方式。
2、对象数组保存的是引用,基本类型数组直接保存基本类型的值。
3、equals()用于比较两个数组是否相等(deepEquals()用于多维数组)。
第17章 容器深入研究
1、默认的Object.equals()只是比较对象的地址。
第18章 Java I/O系统
第19章 枚举类型
1、调用enum的values()方法,可以遍历enum实例。
2、创建enum时,编译器会为你生成一个相关的类,这个类继承自java.lang.Enum。
3、enum不能再继承其他的类。
第20章 注解
1、Java SE5内置了三种,定义在java.lang中的注解:
1)@Override,表示当前的方法定义将覆盖超类中的方法。
2)@Deprecated,如果程序员使用了注解为它的元素,那么编译器会发出警告信息。
3)@SuppressWarnings,关闭不当的编译器警告信息。
2、注解也会编译成.class文件。
3、Java SE5中定义了三种标准注解,以及四种元注解。
第21章 并发
1、Java的线程机制基于来自C的低级的p线程方式。
第22章 图形化用户界面
1、“三次修订”规则(产品在修订三次之后才会成熟)。
2、JComponent有一个setBorder()方法,它允许你为任何可视组件设置各种边框。
3、对于JRadioButton,如果把多个单选按钮的状态都设置为选中,那么只有最后设置的那个有效。
4、某个特定组件只能持有一个JMenuBar对象。
5、任何能接受文本的组件都可以接受HTML文本,且能根据HTML的规则来重新格式化文本。
6、ProgressMonitor只能向前移动,并且一旦移动到底就会关闭。