第一章 java发展史与开发环境
1、java语言特点
(1)面向对象 (2)跨平台性 (3)可移植性 (4)安全性 (5)并发性 (6)分布式 (7)简单易用
2、java程序执行过程
(1)源文件由编译器编译成字节码(ByteCode)
(2)字节码由java虚拟机解释执行
第四章 java的继承性与多态性
1、如果有两个类A,B(注意不是接口),你想同时使用这两个类的功能,你会如何编写这个C类呢
class A extends B;
class C extends A
2、接口有什么优点:
java中不支持类的多继承,即不能同时继承多个直接父类。但接口中没有具体的实施细节,也就没有和存储空间的关联,所以可以将多个接口合并在一起,间接实现类间多重继承的功能。
3、在java中如果声明一个类为final,表示什么意思?
final修饰的类被称为终极类,它不能被继承
more:final修饰的方法被称为终极方法,如果父类中的某个方法用final修饰,则子类不能再重写该方法了,子类只能继承该方法的功能,注意:final不能被用来修饰构造函数。终极类中的方法默认是终极方法
4、请简述重载和重写的区别
重载:
(1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载是一个类中多态性的一种表现。
(2)java的方法重载,就是在类中可以创建多个方法,他们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给他们的不同参数个数和参数类型来决定具体使用哪个方法,这就是多态性。
(3)重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回类型作为重载函数的区分标准。
重写:
(1)父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
(2)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键 字引用了当前类的父类。
(3)子类函数的访问修饰权限不能少于父类的。
5、什么是继承
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
1、编写Animal接口,接口中声明run()方法
interface Animal{
abstract void run();
}
2、定义bird类和Fish类实现Animal接口
class Bird implements Animal{
}
class Fish implements Animal{
}
3、编写Bird类和Fish类的测试程序,并调用其中的run方法
class Bird implements Animal{
public void run(){
System.out.println("测试成功");
}
}
class Fish implements Animal{
public void run(){
System.out.println("测试成功");
}
}
public class Animaljiekou{
public static void main(String[] args){
Animal p1;
p1 = new Bird();
p1.run();
p1 = new Fish();
p1.run();
}
}
第五章 java异常处理机制
1、简述java中的异常处理机制的简单原理和应用
原理:每当产生异常时,如果没有程序进行相应的处理,则程序会中断的现象,那么此时实际上产生一个异常后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句进行补货的话,则可以进行异常处理,如果没有的话,则交给了JVM进行处理,当try语句补货到了一场之后,会与catch中的异常类型进行匹配,如果匹配成功,则使用此catch语句进行处理。
应用:简单的应用,就是在所有throws关键字的地方加入try…catch
2、简述java中异常处理的机制
java异常处理机制可以从两个方面来描述,当一个java程序违反了java语义的时候,JVM就会抛出一个异常,除此之外还可以自定义异常,去拓展这种语义的检查,并在合适的时机,通过throw关键字抛出异常
第六章 数组、字符串和集合类
1、
int array[];
array = new int[5];
3、声明数组变量会为数组分配内存空间吗,为什么?
数组声明以后在内存中没有分配具体的存储空间,也没有设定数组的长度
5、有一个整数数组,其中存放着1,2,3,4,5,6,7,8,9,将该数组倒序存放并输出
public class ReverseArray {
public static void main(String[] args) {
int arr[] = new int[] { 1,2,3,4,5,6,7,8,9 };
for(int i = 0; i < arr.length / 2; i++){
int temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
for (int i = 0; i < arr.length; i++) {
//System.out.println(arr[i]); //每个一行
System.out.print(" "+arr[i]); //全部一行
}
System.out.println();
}
}
6、在一个数组元素值递增的数组中插入一个元素值,要求按原来的规律将它插入数组中合适的位置(使用折半查找)
public static int arrayIndexOf(int[] array,int key) {
int min,max,mid;
min = 0;
max = array.length - 1;
while(min <= max) {
mid = (min + max) >> 1;
if (key > array[mid]) {
min = mid + 1;
} else if (key < array[mid]) {
max = mid - 1;
} else {
return mid;
}
}
return min;
}