《java 面向对象编程考试大纲》由会员分享,可在线阅读,更多相关《java 面向对象编程考试大纲(9页珍藏版)》请在金锄头文库上搜索。
1、JAVA 面向对象编程考试大纲一、 java 基本概念1. 对象是类的实例,类是对象的模板。2. Java 编程语言的主要特点:a、面向对象 b、可移植性,跨平台 c、支持分布式网络应用 d、安全性和健壮性。3. Java 语言提供的 4 中的访问控制符的权限大小:Public 访问级别最高,任何类都可以访问;protected 允许同一个包中的类和子类访问;默认,对同一个包中的类公开;private,只允许在类的内部使用。4. 封装:隐藏对象的属性和实现细节,仅仅对外公开接口。封装的两个原则:a.把尽可能多的东西隐藏起来,对外提供简捷的接口。B.把所有的属性隐藏起来。5. 封装的优点:a、便
2、于使用者正确、方便的理解和使用系统 b、有助于简历各个系统之间松散的耦合关系,提高系统的独立性 c、提供软件的可重用性 d、降低构建大型系统的风险6. Java 虚拟机的功能: a、提供运行时环境 b、提供垃圾回收功能7. JDK 提供:a、java 虚拟机 b、JDK 类库 c、开发工具8. 安装 JDK 需要设置 JAVA_HOME 路径,为了在命令行直接使用 JDK 提供的工具,需要把/bin 路径设置到操作系统的环境变量 PATH 中。9. Javadoc 命令只处理源文件中在类、接口定义、方法、变量、构造器之前的以/*开头,以*/结尾的注释.10. 基本类型a、 逻辑类 boolea
3、n 1 个字节b、 字符类 char 2 个字节c、 整数类 byte 1 个字节, short 2 个字节, int 4 个字节, long 8 个字节d、 浮点类 float 4 个字节、double 8 个字节引用类型e、 对象引用类型f、 数组引用类型11. 使用 new 关键字创建对象:a第一步:分配内存空间b第二步:初始化为其变量类型的默认值c第三步:调用构造方法d第四步:返回对象实例的引用12. 数组的特性 索引从 0 开始,以 length-1 结束。13. 变量的作用域:成员变量的作用域是整个类;局部变量的作用域是方法或者代码块的内部;方法参数的作用域是方法内部。14. 静态
4、变量和实例变量的区别静态变量在装载类的时候被分配内存并初始化,类只能被装载一次,所以静态变量在内存中只有一个拷贝实例变量在创建实例时被分配内存并初始化,所以每个实例都有各自的实例变量同一个类的实例之间共享静态变量15. This 关键字的使用。this 关键字引用当前实例在 static 方法中不能使用 this 关键16. 短路操作符和非短路操作符的区别对于短路操作符,如果能根据操作符左边的布尔表达式就能推算出整个表达式的布尔值,将不执行操作符右边的布尔表达式。对于非短路操作符,始终会执行操作符两边的布尔表达式。17. =与 equals()方法的区别。当操作符=两边都是引用类型变量时,这两
5、个引用变量必须都引用同一个对象,结果才为 trueequals()方法是在 Object 类中定义的方法,它的声明格式如下:public boolean equals(Object obj)Object 类的 equals()方法的比较规则为:当参数 obj 引用的对象与当前对象为同一个对象,就返回 true,否则返回 false:18. 字符串操作符“+”与,操作符19. 节本类型转换原则:目标数据类型的位数不小于被转换的数据的数据类的位数。基本数据类型 目标类型byte short char intlongfloat double 高位转化为低位,必须进行强制类型转化 short 和 ch
6、ar 之间的赋值总需要一个强制类型转化 20. 引用类型的转换原则:子类赋值给父类,会自动进行类型转换。父类赋值给子类,需要进行强制类型转换a、 如果参数是基本数据类型,参数传递是将参数的数值传递给方法。b、 如果参数是对象或数组,参数传递是将对象或数组的引用传递给方法。21. 流程控制语句:a 分支语句a) if-else 语句b) switch 语句b 循环语句c) for 语句d) while 语句e) do-while 语句c 特殊循环流程控制f) continueg) break二、 OO 面向对象的思想1. 一个新对象的初始化的最终步骤是去调用对象的构造方法。构造方法必须满足以下条
7、件:a、方法名必须与类名称完全相匹配;b、不要声明返回类型;c、 不能被 static、final、synchronized、abstract、native 修饰。2. 默认构造方法的特点:a、默认构造方法是没有参数的构造方法,你可以显式定义类的默认构造方法。b、 为了保证每个类至少有一个构造方法,如果定义的类中一个构造方法也没有写,Java 将自动提供一个默认构造方法。该构造方法没有参数,用 public 修饰,而且方法体为空。格式如下:public ClassName()c、 只要类中显式定义了一个或多个构造方法,而且所有显式定义的构造方法都带参数,那么将失去默认构造方法。3. 子类调用父
8、类构造方法:A、在构造子类对象时,JVM 会先调用父类的构造方法B、子类构造方法中通过 super 语句调用父类构造方法C、如果子类构造方法中没有通过 super 语句调用父类构造方法,那么JVM 会调用父类的默认构造方法,如果不存在默认构造方法,将导致编译错误4. 访问控制符:修饰符 同类 同包 子类 不同包 public 是 是 是 是protected 是 是 是默认 是 是private 是 5. 静态变量和实例变量静态变量在装载类的时候被分配内存并初始化,类只能被装载一次,所以静态变量在内存中只有一个拷贝实例变量在创建实例时被分配内存并初始化,所以每个实例都有各自的实例变量同一个类的
9、实例之间共享静态变量6. 静态方法和实例方法成员方法分为类方法和实例方法。用 static 修饰的方法叫类方法,或静态方法。静态方法也和静态变量一样,不需创建类的实例,可以直接通过类名被访问。static 方法不能被修饰成 protected 和 abstract7. this 关键字this 关键字引用当前实例在 static 方法中不能使用 this 关键字8. 静态代码块 的作用类中可以包含静态代码块,它不存在于任何方法体中。当类被装载时,静态代码块只被执行一次。类中不同的静态块按它们在类中出现的顺序被依次执行9. Final 关键字的作用final 类:不能被继承final 方法: 不
10、能被子类覆盖final 变量( 类变量,实例变量,局部变量):必须被显式的初始化, 并且只能初始化一次(即常量)10. Native 关键字的作用native 只用来修饰方法。native 方法用其它语言(如 C 语言 )实现,所以没有程序代码块。11. Extends 关键字的作用12. Abstract 关键字的作用abstract 修饰符可用来修饰类和成员方法:a) 用 abstract 修饰的类表示抽象类,抽象类位于继承树的抽象层,抽象类不能被实例化,即不允许创建抽象类本身的实例。没有用abstract 修饰的类称为具体类,具体类可以被实例化。b) 用 abstract 修饰的方法表示
11、抽象方法,抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现。没有用abstract 修饰的方法称为具体方法,具体方法具有方法体。13. Interface 关键字的作用A、接口的特点:接口中只能包含 public、static、final 类型的成员变量和public、abstract 类型的成员方法。 B、接口中不能有非抽象方法14. Implements 关键字15. Overload 关键字的作用:方法名相同。方法的参数类型、个数、顺序至少有一项不相同。方法的返回类型可以不相同。方法的修饰符可以不相同。16. Override 关键字子类方法的名称、参数签名和返回
12、类型必须与父类方法的名称、参数签名和返回类型一致。子类方法不能缩小父类方法的访问权限,但可以扩大访问权限子类方法不能抛出比父类方法更多的异常17. Java 的多态性:Java 语言允许某个类型的引用变量引用子类的实例,而且可以对这个引用变量进行类型转换如果把引用变量转换为子类类型,称为向下转型,如果把引用变量转换为父类类型,称为向上转型。对于一个引用类型的变量,编译器按照它声明的类型处理对于一个引用类型的变量,运行时按照它实际引用的对象处理。编译时允许向上和向下转型,但是运行时只允许向上转型。成员变量、类变量、静态方法按照引用变量声明的类型静态绑定;实例方法按照引用变量引用的实例动态绑定18
13、. 内部类的理解。 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用 protected 和 private修饰(而外部类只能使用 public 和缺省的包访问权限) 。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类 为什么需要内部类? 典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象。所以你可以认为内部类提供了某种进入其外围类的窗口。使用内部类最吸引人的原因是: 每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都
14、没有影响。如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个角度看,内部类使得多重继承的解决方案变得完 涌诮饩隽瞬糠治侍猓 诓坷嘤行 厥迪至“多重继承”。19. Instanceof 关键字的作用三、 Java 异常处理1. 理解 java 异常处理机制: trycatch()finally2. 运行时异常 RuntimeException 类及其子类,当程序中可能出现这类异常,即使没有用 try-catch 语句捕获它,也没有用 throws 子句声明抛出它,也会编译通过。3. 运行时异常与受检查异常:运行时异常表示无法让程序恢复运行的异常,导致这种
15、异常的原因通常是由于执行了错误操作。一旦出现了错误操作,建议终止程序,因此 Java 编译器不检查这种异常。 受检查异常表示程序可以处理的异常,如果抛出异常的方法本身不能处理它,那么方法调用者应该去处理它,从而使程序恢复运行,不至于终止程序。 如果一个方法可能出现受检查异常,要么用 try-catch 语句捕获,要么用 throws子句声明将它抛出,否则会导致编译错误。4. 用户定义异常是通过扩展 Exception 类或 RuntimeException 来创建的。四、 java 线程1. 进程与线程A、进程是指运行中的应用程序,每一个进程都有自己独立的内存空间。对一个应用程序可以同时启动多
16、个进程。例如每次执行 JDK 的 java.exe 程序,就启动了一个独立的 Java 虚拟机进程,该进程的任务是解析并执行 Java 程序代码。B、线程是指进程中的一个执行流程,有时也称为执行情景。一个进程可以由多个线程组成,即在一个进程中可以同时运行多个不同的线程,它们分别执行不同的任务。当进程内的多个线程同时运行,这种运行方式称为并发运行。 2 Java 主线程的入口是 main()方法。3. 创建线程的方法:a.定义一个 Thread 类的子类,覆盖 Thread 类的 run()方法,然后创建该子类的实例。b.定义一个实现 Runnable 接口的类,实现它的 run()方法,然后将这个类的实例作为 Thread 的构造方法的参数,创建 Th