Java高级语言的新特性1

  • 格式:doc
  • 大小:36.50 KB
  • 文档页数:4

1. 静态字段和方法
答:1) 静态字段:每个类中只存在一个这样的字段,反之,类的每一对象都有自己一份对这个实例字段的拷贝;
2) 静态方法:能不通过对象直接访问; 不能访问非静态变量; 不能被非静态方法重写;
2. 初始化块
答:1) 只被执行一次;
2) 初始化块首先被运行,然后才是构造器的主体部分被执行。

3. 调用构造器后详细的执行过程
答:1) 初始化所有数据字段为默认值(0、0.0、false或null);
2) 按照在类声明中出现的次序依次执行所有字段初始化语句和初始化块;
3) 如果构造器的第一行代码调用了另一个构造器,则执行被调用的构造器主体;
4) 执行构造器主体。

4. final关键字
答:1) final类不能被继承;
2) final方法不能被改写;
3) final变量不能被改变;
5. 抽象类
答:1) 方法没有方法体,必须被声明为抽象方法; 例:abstract int getAge();
2) 一个类中包含有抽象方法必须声明为抽象类;
3) 抽象类不能实例化,但仍可以创建类的对象变量;
4) 能声明方法或类类型为抽象;
注:1) 抽象方法如同方法占位符,这些方法一定要在子类中实现;
2) 即使不含抽象方法,类也可被声明为抽象类。

6. 接口
答:1) 接口是抽象类的另外一种形式(没有实例变量的抽象类);
2) 在一个接口中所有方法都是抽象方法;
3) 接口中所有变量都必须被定义为final static;
4) 接口可以继承多个接口。

注:1) 接口中的方法自动被置为public, 因经,在接口中声明方法并不需要提供public 关键字。

但在实现接口时,必须把方法声明为public。

7. 访问控制
答:修饰符内部类相同包子类其它
public √√√√
protected √√√
default √√
private √
8. “==”操作符和equals()方法
答:1) “==”操作符确定两个引用是否指向相同对象;
2) equals()方法判断两个对象是否指向同一块内存区域(这种测试并没有太大用处,如果想测试对象是否相等,就需要覆盖equals方法,进行更有意义的比较);
9. toString()方法
答:1) 和equals()方法一样,toString()是Object类另外一个重要的方法;
2) 它返回一个代表该对象值的字符串。

几乎每个类都会覆盖该方法,以便打印该对象当前状态的表示。

3) 无论何时对象同字符串相连接,那么就可以使用"+"操作符,这时Java编译器会自动调用toString方法获得对象的字符串表示。

例:
Point p = new Point(10,20);
String message = "The current position is " + p;//自动调用p.toString()
10. 内部类
答:内部类是定义在其他类内部的类:
1) 内部类对象能够访问创建它的对象的实现-包括那些私有数据;
2) 内部类能够隐藏起来,不为同一包中的其他类所见;
3) 匿名内部类可以方便地定义运行时回调;
4) 所有内部类在编写事件程序时用起来很方便。

11. 静态内部类
答:1) 内部类的最简单形式;
2) 不能和外部类同名;
3) 被编译成一个独立的类文件;
4) 只能访问外部类的静态方法、静态实例变量(包括私有类型);
12. 实例内部类
答:1) 定义在类内部,没有使用static修饰符;
2) 像实例变量;
3) 能访问外部类的所有实例变量;
4) 在一个外部类里创建一个实例内部类实例:this.new Innerclass();
5) 在一个外部类外创建一个实例内部类实例:(new OuterClass()).new Innerclass();
6) 在一个内部类里访问一个实例内部类:Outerclass.this.member;
13. 局部内部类
答:1) 定义在方法里;
2) 最少的一种内部类;
3) 和局部变量类似, 不能被定义为public,protected,private和static;
4) 只能访问final型局部变量。

14. 匿名内部类
答:1) 没有类名;
2) 没有class关键字;
3) 没有继承和声明;
4) 没有构造函数;
15. 封装类
答:原始基本类型包装类
boolean Boolean
byte Byte
short Short
char Character
int Integer
long Long
float Float
double Double
16. 集合接口类层次
答:
Collection

|ˉˉˉˉˉˉ|
Set List Map
↑↑
| |
SortedSet SortedMap
1) Set: 集合类中不允许有重复对象;
2) SortedSet: 和Set接口同,但元素按升序排列;
3) List: 元素加载和移出时按照有顺序,可以保存重复对象。

4) Map: 存储了唯一关键字辨识的对象,不允许有重复关键字。

5) SortedMap: 和Map类同,但对象按他们关键字的升序排列。

17. 包括具体类在内的集合类层次
答:
Collection

|ˉˉˉˉˉˉ|
HashSet LinkedList Hashtable
(Set) Vector, ArrayList Hashmap
(List) (Map)
↑↑
| |
TreeSet TreeMap
(SortedSet) (SortedMap)
18. 五个最常用的集合类之间的区别和联系
答:1) ArrayList: 元素单个,非同步,效率高,多用于查询
2) Vector: 元素单个,同步,线程安全,多用于查询
3) LinkedList:元素单个,多用于插入和删除
4) HashMap: 元素成对,非同步,元素可为空
5) HashTable: 元素成对,同步,元素不可为空。