




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA 复习材料复习材料 第一章第一章 1 java 的可移植性 的可移植性 Java 源程序可在不同的操作系统不同的操作系统上运行 2 未用 未用 javac 编译直接运行编译直接运行 java 文件 会出现文件 会出现 找不到类找不到类 的异常的异常 第二章第二章 1 Java 的数据类型的数据类型 2 length 的使用的使用 所有的数组都有一个属性 length 数组名 length 表示系统为数组所分配的连续内存空间的长度 例如 double number new double 15 number length 的值是 15 int xx new int 3 4 xx length 3 xx 0 length 4 3 数组的引用 数组的引用 数组属于引用数据类型 因此两个相同类型的数组如果具有相同的引用 它们就有 完全相同的元素 例如 int a 1 2 3 b 4 5 数组变量 a 和 b 分别存放着不同的引用 但是 如果使用了赋值语句 a b 那么 a 中存放的引用就和 b 的相同 这时系统将释放最初分配给数组 a 的元素 使得 a 的元素和 b 的元素相同 即 a 0 a 1 就是 b 0 b 1 而最初分配给数组 a 的三个元素已不复存在 4 数组的初始化 数组的初始化 动态初始化 动态初始化 程序员指定数组长度 但不直接为数组元素分配初值 例 float boy new float 5 上述语句相当于 float boy new float 5 boy 0 21 3f boy 1 23 89f 静态初始化 静态初始化 程序员显式指定每个元素的初值 由系统决定数组长度 例 float boy 21 3f 23 89f 2 0f 23f 778 98f 注 声明数组的不能指明数组的大小 例 int 3 a 1 2 3 错误 5 动态初始化和静态初始化 动态初始化和静态初始化不能不能同时进行 同时进行 例 float boy new float 5 21 3f 23 89f 2 0f 23f 778 98f 是错误的 6 命令行参数 命令行参数 每一个 Java Application 程序都有一个含有 String args 参数的 main 方法 该方法的说明如 下 public static void main String args 参数 String args 表示 main 方法接收了一个字符串数组 该字符串数组就是从命令行上传 递过来的参数 由于 Java Application 程序可以用命令行来启动 所以命令行参数就成为向 Java Application 程序传递参数数据的常用而且有效的手段 例 int i Integer parseInt args 0 int j Integer parseInt args 1 运行 java 程序时键盘键入的实参至于字符串数组 arg 的 arg 0 和 arg 1 里 通过拆箱后将 值分别赋值给 i 和 j 运行格式为 例 java A 5 6 A 为 java 文件名 5 和 6 为传入的实参 第三章第三章 1 int 型的整数运算结果为型的整数运算结果为 int 型 精度比型 精度比 int 小的数 小的数 byte short 运算结果都为整型 运算结果都为整型 补充 补充 char 字符型与字符型与 int 整型运算结果为整型运算结果为 int 整型 整型 2 单精度和双精度的浮点型 单精度后面加 单精度和双精度的浮点型 单精度后面加 f 例如 例如 3 1f 为单精度 为单精度 3 1 为双精度为双精度 3 switch 开关语句开关语句 switch 语句是多分支的开关语句 它的一般格式定义如下 switch 表达式 case 常量值 1 若干个语句 break case 常量值 2 若干个语句 break case 常量值 n 若干个语句 break default 若干语句 default 语句是可选的 它接受除上面接受值的其他值 case 后面可以跟多个语句 这些语句可以不用大括号括起来 switch 后面括号中表达式的值必须是符合 byte char short int enum String 类型 Java 7 才支持 的常量表达式常量表达式 而不能用浮点类型或不能用浮点类型或 long 类型类型 每个每个 case 语句后的值必须是与表达式类型兼容的特定的一个常量语句后的值必须是与表达式类型兼容的特定的一个常量 它必须为一个常量 而 不是变量 重复的重复的 case 值是不允许的 值是不允许的 4 case 语句后面加不加语句后面加不加 break 的区别的区别 例 switch op case result a b break case result a b case result a b case result a b break default result 0 若 op 为 加 break 时程序执行完 result a b 后会跳出 switch 若没加 break 程序会继 续执行下面的 case 语句 直到遇到 break 就跳出 switch 语句或当没遇到 break 语句时就执 行完 switch 语句再跳出 switch 语句 若例子中 op 为 的话 程序就会顺序执行 result a b result a b result a b 后遇到 break 语句就跳出 switch 语句 5 break 和和 continue 的区别的区别 如果在某次循环体的执行中执行了 break 语句 那么强行跳出整个循环强行跳出整个循环 如果在某次循环 体的执行中执行了 continue 语句 那么结束本次循环结束本次循环 即不再执行本次循环中循环体中 continue 后面的语句 而转入进行下一次循环 例 public class ContinueOp public static void main String args int n for n 1 n 是带符号右移 负数高位补 1 正数补 0 例 1001 1 1100 左移不管负数还是正数 在低位永远补 0 例 1001 是不带符号右移 不论负数还是正数 高位补 0 例 1001 1 0100 第四章第四章 1 用关键字用关键字 static 修饰修饰的成员变量称作的成员变量称作静态变量静态变量或或类变量类变量 而 而没有使用没有使用 static 修饰修饰的成员的成员 变量称作变量称作实例变量实例变量 例如 下述例如 下述 A 类中 类中 x 是实例变量 而是实例变量 而 y 是类变量 是类变量 class A float x static int y 类变量是与类相关联的数据变量 也就是说 类变量是和该类所创建的所有对象所有对象相关联的变量 改变其 中一个对象的这个类变量就同时改变了其它对象的这个类变量 无论是否产生了对象或无论产生了多少对 象的情况下 类变量在内存空间里只有一份一份 2 实例变量 实例方法和静态成员变量 静态方法的调用 实例变量 实例方法和静态成员变量 静态方法的调用 1 实例变量和实例方法必须通过对象来调用 例 例 Chinese ch1 new Chinese 创建一个对象 ch1 name1 name1 为 Chinese 类里的实例变量 ch1 singOurCountry1 singOurCountry1 为 Chinese 类里的实例方法 2 静态成员变量和静态方法既可以通过对象也可以通过类名调用 例 例 通过类名调用 Chinese name2 name2 为 Chinese 类里的实例变量 Chinese singOurCountry singOurCountry2 为 Chinese 类里的静态方法 通过创建对象调用 Chinese ch1 new Chinese 创建一个对象 ch1 name1 ch1 singOurCountry1 3 在 在静态方法静态方法里里只能直接调用只能直接调用同类中其它的同类中其它的静态成员 包括变量和方法 静态成员 包括变量和方法 而 而不能直接访不能直接访 问类中的问类中的非静态成员非静态成员 这是因为 对于非静态的方法和变量 需要先创建类的实例对象后 这是因为 对于非静态的方法和变量 需要先创建类的实例对象后 才可使用 而静态方法在使用前不用创建任何对象 才可使用 而静态方法在使用前不用创建任何对象 例 例 public class Person int arr new int 10 public static void main String args System out println arr 1 例子会无法编译 因为 main 是静态方法 在方法体中要调用 arr 1 而 arr 数组是实例变 量 创建类的时候 main 方法跟类同时创建 arr 并未创建即 arr 并不存在 4 静态代码块是使用 静态代码块是使用 static 声明的代码块声明的代码块 当类被载入时 静态代码块被执行 即使产生 当类被载入时 静态代码块被执行 即使产生 了多个实例对象 了多个实例对象 静态代码块都只被执行一次静态代码块都只被执行一次 在类中定义的 在类中定义的静态代码块会优先于构造块 静态代码块会优先于构造块 构造块优先于构造方法构造块优先于构造方法被执行 被执行 每次实例化对象时构造块都会执行 可执行多次每次实例化对象时构造块都会执行 可执行多次 例 考运行结果 例 考运行结果 执行结果 执行结果 5 单态设计模式 背下来 单态设计模式 背下来 6 方法重载 方法重载 方法重载是静态多态静态多态 编译时的多态 是指一个类中可以有多个方法具有相同的名字相同的名字 但这些方法的参数必须不同参数必须不同 参数的个数不同 或者参数的类型不同 注意 不能单靠注意 不能单靠 返回值判断重载返回值判断重载 例 例 public void info String name double count public void info String name int count 7 this 1 区分成员变量和局部变量 区分成员变量和局部变量 成员变量在整个类内有效 局部变量仅在方法内有效 在方法体中声明的变量以及方法的 参数称作局部变量 方法的参数在整个方法内有效 方法内定义的局部变量从它定义的位 置之后开始有效 如果局部变量的名字与成员变量的名字相同 则成员变量被隐藏 即这个成员变量在这个 方法内暂时失效 这时如果想在该方法内使用成员变量 成员变量前面的 this 就不可以 省略 2 在一个构造方法里调用其他重载的构造方法 在一个构造方法里调用其他重载的构造方法 此外 若要在一个构造方法里调用其他重载的构造方法 不是用构造方法名 而是用 this 参数列表 的形式 而且必须是第一条语句 例如 例如 public class Person String name int age Person String name this name name 方法内使用成员变量方法内使用成员变量 name Person String name int age this name 构造方法里调用其他重载的构造方法构造方法里调用其他重载的构造方法 Person String name this age age 方法内使用成员变量方法内使用成员变量 age 8 包 包 1 javac 可以使用参数可以使用参数 d 指定生成的字节码文件所在的目录指定生成的字节码文件所在的目录 如果不使用参数 如果不使用参数 d javac 在当前目录生成字节码文件 在当前目录生成字节码文件 例如 javac d F tsinghua 1000 MyFile java 将源文件 MyFile java 生成的全部字节码文件存放到 F tsinghua 1000 2 通过关键字 通过关键字 package 声明包语句 声明包语句 package 语句作为语句作为 Java 源文件的源文件的第一条语句第一条语句 指明 指明 该源文件定义的类所在的包 该源文件定义的类所在的包 每个源文件只能声明一个包每个源文件只能声明一个包 package 语句的一般格式为 语句的一般格式为 package 包名包名 如 package sunrise package sun 包名可以是一个合法的标识符 也可以是若干个标识符加 分割而成 3 使用 使用 import 语句可以语句可以引入包中的类引入包中的类 java lang 不需要用不需要用 import 语句导入 因为它自语句导入 因为它自 动导入 动导入 9 访问权限 访问权限 假设对象 a 是类 A 创建的 现将对象对成员的访问权限 总结如下表 背 例 背 例 10 基本数据类型的包装类 基本数据类型的包装类 会举例子 会举例子 装箱 装箱 将一个基本数据类型变为包装类 这样的过程称为装箱操作 拆箱 拆箱 将一个包装类变为基本数据类型这样的过程称为拆箱操作 例 例 Integer i 30 自动装箱成 Integer Float f 30 3f 自动装箱成 Float int x i 自动拆箱为 int float y f 自动拆箱为 float 第五章第五章 1 JAVA 是是单继承单继承即只可以继承一个父类 补充 但可以在继承的同时实现多个接口 接即只可以继承一个父类 补充 但可以在继承的同时实现多个接口 接 口类之间用逗号隔开 例 口类之间用逗号隔开 例 class A extends B implements C D 继承继承 B 类 实现类 实现 C D 两两 个接口 子类的成员不一定比父类的多 因为父类内部可能有私有成员 子类不能继承 个接口 子类的成员不一定比父类的多 因为父类内部可能有私有成员 子类不能继承 继承语句为继承语句为 extends 2 方法重写 方法重写 方法名 返回类型 参数类型与个数也一样方法名 返回类型 参数类型与个数也一样 重写后的方法 重写后的方法不能降低不能降低原来访原来访 问权限 只能变高或保持不变 原来的访问权限为问权限 只能变高或保持不变 原来的访问权限为 public 的 重写后仍然为的 重写后仍然为 public 权权 限由高到低 限由高到低 public protected friendly private 方法重写和方法重载 会举例子 方法重写和方法重载 会举例子 1 方法重写方法重写 若父类中有一个方法如下 public void breathe System out println LandAnimal is breathing 子类对该方法重写 public void breathe System out println fish is breathing 可见 除了方法体不一样 其他一样 访问权限可以与原来的一样 也可以提高该方法的可见 除了方法体不一样 其他一样 访问权限可以与原来的一样 也可以提高该方法的 访问权限访问权限 2 方法重载方法重载 是指一个类中可以有多个方法具有相同的名字 但这些方法的参数必须不同 参数的个数 不同 或者参数的类型不同 public void breathe 方法体 public void breathe int x 方法体 上面的两个方法体一不一样都可以上面的两个方法体一不一样都可以 3 super 的使用的使用 1 调用父类中被重写的方法 调用父类中被重写的方法 super method 参数表 method 为在子类中被重写的父类中的方法 public void shout super quack quack 为在子类中被重写的父类中的方法 2 访问父类被隐藏的成员变量 访问父类被隐藏的成员变量 super 变量名 变量名 如 如 super y y 为在子类中被隐藏的父类中的成员变量 3 调用父类的构造方法 调用父类的构造方法 super 参数列表参数列表 注意 注意 必须是子类构造方法中的头一条语句必须是子类构造方法中的头一条语句 补充 补充 1 如果在子类的构造方法中 没有显式地使用 super 关键字调用父类的某个构造方法 那 么默认地有 super 语句 即调用父类的不带参数的构造方法 public class B extends A public B super 2 如果类中定义了一个或多个构造方法 那么 Java 不提供默认无参的构造方法 因此 当我们在父类中定义多个构造方法时 应当包括一个不带参数的构造方法 以防子类省略 super 时出现错误 4 子类构造过程 先构造子类中父类的部分 再顺序构造子类自身的部分 子类构造过程 先构造子类中父类的部分 再顺序构造子类自身的部分 具体例子看期具体例子看期 中考卷子程序分析题的第三小题中考卷子程序分析题的第三小题 5 上转型对象 上转型对象 会举例子会举例子 上转型对象是由子类创建的 例例 1 A a A 为父类 a new B B 为子类 或写成 A a new B 例例 2 若 a 为父类 A 创建的对象 b 为子类 B 创建的对象 则 a b 写法正确 b a 写法错误因为下转型要强制转换要写成 b B a 才行 书本书本 P83 例题 目测出程序分析 例题 目测出程序分析 运行结果 运行结果 6 抽象类和抽象方法 抽象类和抽象方法 用 abstract 关键字来修饰一个类时 这个类叫做抽象类 用 abstract 来修饰一个方法时 该方法叫做抽象方法 与 final 类和方法相反 abstract 类必须被继承 类必须被继承 abstract 方法必须方法必须 被重写被重写 抽象类和抽象方法不能用抽象类和抽象方法不能用 final 修饰修饰 抽象没有方法体 在方法名后直接跟上分号 例 例 abstract class A abstract int aa int x int y 用分号来代替方法体的定义 抽象类中可以有实现某种功能的具体方法 例 例 public abstract class Drawing public abstract void drawDot int x int y public void drawLine int x1 int y1 int x2 int y2 但一个类中只要有抽象方法就一定是抽象类但一个类中只要有抽象方法就一定是抽象类 抽象类不能被实例化不能被实例化 7 接口 接口 接口中只有常量和抽象方法接口中只有常量和抽象方法 可以定义一个抽象类抽象类用 implements 关键字去实现一个接口中 定义的部分方法部分方法 也可以定义一个具体类具体类用 implements 关键字去实现一个接口中的所有方所有方 法法 接口中的方法被默认是 public 所以类在实现接口方法时 一定要用 public 来修饰 如果接口的方法的返回类型如果不是 void 的 那么在类中实现该接口方法时 方法体至少 要有一个 return 语句 如果是 void 型 类体除了两个大括号外 也可以没有任何语句 常量默认用 public static final 修饰 修饰 8 态内部类 态内部类 1 内部类可以拥有自己的成员 内部类可以拥有自己的成员 2 内部类可以直接引用外部类的成员 如下面例子中红字部分 外部类只能通过创建内部 内部类可以直接引用外部类的成员 如下面例子中红字部分 外部类只能通过创建内部 类对象来访问内部类的成员 如下面例子中的蓝字 内部类可以是抽象的 类对象来访问内部类的成员 如下面例子中的蓝字 内部类可以是抽象的 9 匿名 内部 类 匿名 内部 类 当使用类创建对象时 程序允许把类体与对象的创建组合在一起 也就是说 类创建对象当使用类创建对象时 程序允许把类体与对象的创建组合在一起 也就是说 类创建对象 时 除了构造方法还有类体 此类体被认为是该类的一个子类去掉类声明后的类体 称作时 除了构造方法还有类体 此类体被认为是该类的一个子类去掉类声明后的类体 称作 匿名类 匿名类不能声明对象 但可以直接用匿名类创建一个对象 匿名类 匿名类不能声明对象 但可以直接用匿名类创建一个对象 假设 Hello 是类 已存在 那么下列代码就是用 Hello 的一个子类 匿名类 创建对象 new Hello 匿名类的类体 具体例子 具体例子 10 异常 异常 理解代码流程理解代码流程 1 捕获异常 try catch finally 捕获异常的第一步是用 try 选定捕获异常的范围 由 try 所 限定的代码块中的语句在执行过程中可能会生成异常对象 Try 语句不能单独存在 必须 有后面的 catch 或 finally 语句 每个 try 代码块可以伴随一个或多个 catch 语句 用于处理 try 代码块中所生成的异常事件 catch 语句只需要一个形式参数来指明它所能够捕获的异 常类型 这个类必须是 Throwable 的子类 运行时系统通过参数值把被抛出的异常对象传递给 catch 块 虽然 finally 作为 try catch finally 结构的一部分 但在程序中是可选的 也就是说 可以没有 finally 语句 如果存在 finally 语句 不论 try 块中是否发生了异常 是否执行过 catch 语句 是否包含有 break continue return 或者 throw 语句 都必须执行 finally 块中 所包含的语句 除非遇到 System exit 0 语句 例子 要知道输出结果 例子 要知道输出结果 结果 结果 2 异常的抛出是通过 异常的抛出是通过 throws 语句来实现的 语句来实现的 11 受限型类 受限型类 设置上限 设置上限 声明对象 类名称 对象名称 定义类 访问权限 类名称 设置下限 设置下限 声明对象 类名称 对象名称 定义类 访问权限 类名称 注 只要知道设置上限是用注 只要知道设置上限是用 extends 关键字和设置下限是用关键字和设置下限是用 super 关键字就行 关键字就行 第六章第六章 1 创建字符串对象 创建字符串对象 使用使用 StringString 类的构造方法创建字符串对象 类的构造方法创建字符串对象 例如 例如 String s s new String we are students 声明和创建可用一步完成 声明和创建可用一步完成 String s new String we are students 也可以用一个已创建的字符串创建另一个字符串 如 也可以用一个已创建的字符串创建另一个字符串 如 String tom String s 用一个字符数组用一个字符数组 a 创建一个字符串对象 如 创建一个字符串对象 如 char a b o y String s new String a 若 String a new String 20 A tom 写法是错误错误的 2 与与 equals 的区别的区别 比较实体的地址是否一样 Equals 比较实体里的内容是否一样 例例 1 结果为结果为 str1 str2 str1 str3 例例 2 结果为结果为 str1 equal str2 str1 equal str3 3 public String substring int startpoint 字符串对象调用该方法获得一个当前字符串的子串 该子串是从当前字符串的 startpoint 处 截取到最后所得到的字符串 public String substring int start int end 方法获得一个当前字符串的子串 该子串是从当前字符串的 start 处截取到 end 处所得到的 字符串 但不包括 end 处所对应的字符 例 例 String tom I love tom String s tom substring 2 5 则 s 为 lov 4 重写 重写 toString 方法 方法 要会写出程序结果要会写出程序结果 例 书例 书 P109 运行结果 运行结果 第八章第八章 1 两种创建线程的方法 继承法和接口法 用 两种创建线程的方法 继承法和接口法 用 start 方法使线程处于就绪态 方法使线程处于就绪态 1 继承法 继承法 创建一个子类继承 Thread 类 并重写 Thread 里的 run 方法 例 例 2 接口法 接口法 通常使用的构造方法是 Thread Runnable target 与 与 Thread Runnable target String name 该构造方法中的参数是一个 Runnable 类型的接口类型的接口 因此 在创建线 程对象时必须向构造方法的参数传递一个实现 Runnable 接口类的实例接口类的实例 实现 Runnable 接 口的类要对 Runnable 接口里的 run 方法 例 例 2 Tread 类实现了类实现了 Runnable 接口 接口 选择题选择题 3 线程优先级 线程优先级 调度器把线程的优先级分为 1010 个级别 分别用 Thread 类中的类常量类常量表示 默认优先级为默认优先级为 5 5 线程的优先级可以通过 setPrioritysetPriority
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030温室种植技术突破与碳中和目标下的可持续发展前景分析报告
- 2025-2030沉浸式武术体验产品设计理念与场景化营销实践
- 2025-2030武术培训行业KOL合作价值分析报告
- 2025年学历类自考当代中国政治制度-学前儿童美术教育参考题库含答案解析(5卷)
- 品牌形象合作协议文档
- 农业社区发展协议书
- 工程勘察与测量服务合作合同
- 仲裁法重点知识梳理与考试指导
- 建筑企业合作伙伴的战略合作合同年
- 八年级数学期末检测试题卷集合
- 第1课 社会主义在中国的确立与探索【中职专用】高一思想政治《中国特色社会主义》(高教版2023基础模块)
- 班级管理中的心理学(合集7篇)
- 社区工作-徐永祥-高教出版社-全要点课件
- 哮病(支气管哮喘急性发作)中医护理方案
- 传统建筑元素在现代建筑中应用
- 王道勇保障和改善民生
- 医疗法律法规知识培训
- 血友病课件完整版
- 临床职业素养
- 种子学-种子的化学成分课件
- 手术室无菌技术 课件
评论
0/150
提交评论