Java复习大纲
1. Java特点
- 跨平台:Java代码编写后可以在任何支持Java的操作系统上运行,遵循“编写一次,运行到处”原则。
- 面向对象:一切皆对象,Java支持封装、继承和多态。
- 强类型:Java是一种强类型语言,类型安全,编译时会检查类型。
- 自动垃圾回收:Java有内置的垃圾回收机制来自动管理内存。
- 多线程支持:Java内置对多线程的支持,简化并发编程。
- 安全性:Java的安全模型使得Java应用程序能够在不受信任的环境中安全运行。
- 丰富的API:Java提供了丰富的标准库(API),涵盖网络编程、I/O操作、数据结构等。
2. Java程序开发步骤、源文件编写与保存、编译、运行
- 编写源文件:使用文本编辑器或IDE编写Java源代码,文件扩展名为
.java
。public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
- 保存文件:将源文件保存为
HelloWorld.java
。 - 编译:使用
javac
编译器将源文件编译为字节码文件.class
。javac HelloWorld.java
- 运行:使用
java
命令运行编译后的字节码文件。java HelloWorld
3. 访问控制权限修饰符的作用,可见范围的区分
public
:对所有类可见。protected
:对同一包中的类以及子类可见。- 默认(无修饰符):对同一包中的类可见。
private
:仅对定义它的类可见。
4. 基本数据类型与引用数据类型的区分
- 基本数据类型(Primitive Types):
int
,boolean
,char
,double
,float
,long
,short
,byte
。这些类型直接存储数据值。 - 引用数据类型(Reference Types):如
String
,Array
,Class
。这些类型存储对象的引用,即内存地址。
5. 数据的声明、定义与使用
- 声明:指定变量的类型和名称。
int age;
- 定义:声明并初始化变量。
int age = 30;
- 使用:在程序中读取或修改变量的值。
System.out.println(age);
6. 类、抽象类、接口,概念与特性,联系与区别
- 类:包含属性和方法的基本单位。支持对象的创建。
public class Animal { String name; void speak() { System.out.println("Animal speaks"); } }
- 抽象类:不能实例化的类,可能包含抽象方法(无实现的方法)。
abstract class Shape { abstract void draw(); }
- 接口:只定义方法的签名(从Java 8开始,也可以有默认实现),不能包含实例变量。
interface Drawable { void draw(); }
7. this
、super
、static
关键字的作用
this
:指代当前对象实例,通常用于区分实例变量和局部变量。this.name = name;
super
:指代当前对象的父类实例,访问父类的构造方法和方法。super(name);
static
:表示类级别的成员,属于类而不是对象。用于定义静态变量和静态方法。static int count = 0;
8. 继承、重载、覆盖与多态,概念与用法
- 继承:子类继承父类的属性和方法。
class Dog extends Animal { void bark() { System.out.println("Dog barks"); } }
- 重载(Overloading):同一类中多个方法具有相同的名字但参数不同。
void add(int a, int b) { ... } void add(double a, double b) { ... }
- 覆盖(Overriding):子类重写父类的方法,方法名、参数列表都要一致。
@Override void speak() { System.out.println("Dog barks"); }
- 多态:通过父类引用调用子类的方法。
Animal myDog = new Dog(); myDog.speak(); // 调用的是Dog类的speak方法
9. 面向对象的编码原则与应用
- SOLID原则:
- S: 单一职责原则(Single Responsibility Principle)
- O: 开放封闭原则(Open/Closed Principle)
- L: 里氏替换原则(Liskov Substitution Principle)
- I: 接口隔离原则(Interface Segregation Principle)
- D: 依赖倒置原则(Dependency Inversion Principle)
10. 面向过程和面向对象有什么特点
- 面向过程:以过程(函数)为中心,注重算法和数据的操作。
- 面向对象:以对象为中心,注重数据和操作数据的行为,通过封装、继承和多态实现。
11. 集合基本概念与用法
- 集合框架:用于存储和操作一组对象的类的集合。
- List:有序集合,如
ArrayList
、LinkedList
。 - Set:不允许重复元素,如
HashSet
、TreeSet
。 - Map:键值对集合,如
HashMap
、TreeMap
。
- List:有序集合,如
12. 泛型
- 泛型:允许在类、接口和方法中定义类型参数,使得代码更加灵活和类型安全。
class Box<T> { private T value; void set(T value) { this.value = value; } T get() { return value; } }
13. 参数传递
- 值传递:Java中的所有参数传递都是按值传递,即传递的是变量的值副本。对于基本数据类型,传递的是数据的值;对于引用类型,传递的是对象的引用的值。
14. 堆与栈的理解及其作用
- 堆:存储对象实例,动态分配内存,垃圾回收机制管理。
- 栈:存储方法调用和局部变量,使用栈帧(stack frame)来管理。
15. 位运算符、逻辑运算符的区别与应用
- 位运算符:对整数的二进制位进行操作,如
&
,|
,^
,~
,<<
,>>
,>>>
。 - 逻辑运算符:对布尔值进行操作,如
&&
(逻辑与)、||
(逻辑或)、!
(逻辑非)。
16. 经典运算符的使用
- 算术运算符:
+
,-
,*
,/
,%
- 关系运算符:
==
,!=
,<
,>
,<=
,>=
- 赋值运算符:
=
,+=
,-=
,*=
,/=
,%=
17. 类图的表示
- 类图:UML图的一种,展示类及其关系。主要包括类的名称、属性、方法以及类之间的关系(如继承、实现、关联等)。
18. 垃圾收集方法
- 垃圾收集:Java的垃圾收集器自动管理内存,回收不再使用的对象。常见算法包括标记-清除、复制算法、标记-整理算法。
19. final
、finally
、finalize
的区别
final
:用于修饰类(不可继承)、方法(不可重写)、变量(常量)。final int MAX = 100;
finally
:用于在try-catch
语句块后,确保一定会执行的代码块。try { // code }finally { // cleanup code }
finalize
: 对象的终结方法,在垃圾回收器准备回收对象之前调用(不推荐使用)。protected void finalize() throws Throwable { // cleanup code }
20. error
和exception
的概念,他们之间的联系与区别
error
:通常表示 JVM 的内部错误或资源耗尽,例如OutOfMemoryError
。exception
:表示程序运行时的错误,需由程序处理。分为检查异常(checked exception
)和运行时异常(unchecked exception
)。try { // code } catch (IOException e) { // handle exception }
21. 典型设计模式的定义、原理与作用
- 单例模式:确保一个类只有一个实例,并提供全局访问点。
- 工厂模式:定义一个创建对象的接口,让子类决定实例化哪个类。
- 观察者模式:定义对象之间的一对多依赖,让多个观察者同时监听某一主题。
- 策略模式:定义一系列算法,将每一个算法封装起来,使得它们可以互换。
22. 多线程的机制、实现方法与应用
- 机制:Java通过
Thread
类和Runnable
接口来实现多线程。
或class MyThread extends Thread { public void run() { // code } }
class MyRunnable implements Runnable { public void run() { // code } } Thread t = new Thread(new MyRunnable()); t.start();
- 应用:多线程用于并发任务处理、异步操作等场景。
23. AWT、Swing和事件处理模型概念与应用
- AWT(Abstract Window Toolkit):Java的原始图形用户界面工具包。
- Swing:建立在AWT之上的GUI工具包,提供了更丰富的组件和更好的可定制性。
- 事件处理模型:事件源(触发事件的对象)和事件监听器(处理事件的对象)。使用
ActionListener
、MouseListener
等接口处理事件。
24. 关系的种类、表示及其含义
- 继承(Inheritance):表示类与类之间的父子关系。
- 实现(Implementation):表示类与接口之间的关系。
- 关联(Association):表示类与类之间的关系,通常是成员变量的形式。
- 依赖(Dependency):表示一个类依赖于另一个类的功能。