2022年java复习笔记.docx
名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -1.-Java SE Java EE Java ME优秀教案欢迎下载指什么?Java SE=Java Standard Edition Java EE=Java Enterprise Edition Java ME=Java Mobile Edition SE 主要用于桌面程序 ,掌握台开发 JFC EE 企业级开发 JSP,EJB ME 嵌入式开发 手机 ,小家电 2.java 优点?Java 语言在安全性、平台无关性、支持多线程、内存治理等很多方面具有杰出的优点;3.基本数据类型的种类和长度一个字节等于8 位 第 1 页,共 17 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载4.强制转换在 Java 中由于继承和向上转型,子类可以特别自然地转换成父类,但是父类转换成子类就需要强制转换;由于子类拥有比父类更多的属性、更强的功能, 所以父类转换为子类需要强制; 那么, 是不是只要是父类转换为子类就会胜利呢?其实不然,他们之间的强制类型转换是有条件的;当我们用一个类型的构造器构造出一个对象时,这个对象的类型就已经确定的,也就说它的本质是不会再发生变化了;在Java 中我们可以通过继承、向上转型的关系使用父类类型来引用它, 这个时候我们是使用功能较弱的类型引用功能较强的对象,这是可行的; 但是将功能较弱的类型强制转功能较强的对象时,就不肯定可以行了;基本数据类型之间的强制类型转换:java 规范剧烈的不建议布尔型和整型或者浮点型的进行转化,很简单出错细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 17 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载5.关于 static static 方法属于整个类,它不能操纵和处理属于某个对象的成 员变量,只能处理属于整个类的成员变量,即 static 方法只能 处理本类中的 static 变量或调用 static 方法;6.调用权限public 是公共方法, 在你的这个项目里面你全部的类都能拜访这个方法,不加的话就是默认的 default 这个是只能在你当前包里才能调用这个方法1. private: Java 语言中对拜访权限限制的最窄的修饰符,一般称之为“ 私有的” ;被其修饰的属性以及方法只能被该类的对象 拜访,其子类不能拜访,更不能答应跨包拜访;2. default :即不加任何拜访修饰符,通常称为“ 默认拜访权限“ 或者“ 包拜访权限” ;该模式下,只答应在同一个包中进行拜访;3. protected: 介于 public 和 private 之间的一种拜访修饰符,一般称之为“ 爱护拜访权限” ;被其修饰的属性以及方法只能被类本身的方法及子类拜访,即使子类在不同的包中也可以拜访;4. public : Java 语言中拜访限制最宽的修饰符,一般称之为“ 公共的” ;被其修饰的类、属性以及方法不仅可以跨类拜访,而且答应跨包拜访7.数据初始化不管程序有没有显示的初始化,Java 虚拟机都会先自动给它初始化为默认值;对于数组:细心整理归纳 精选学习资料 1、整数类型( byte 、short 、int、long )的基本类型变量的默认值为0; 第 3 页,共 17 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -2、单精度浮点型(优秀教案欢迎下载0.0f ;float )的基本类型变量的默认值为3、双精度浮点型(double )的基本类型变量的默认值为 0.0d ;4、字符型( char )的基本类型变量的默认为“/u0000 ”;5、布尔性的基本类型变量的默认值为 false ;6、引用类型的变量是默认值为 null ;7、数组引用类型的变量的默认值为null ;当数组变量的实例后,假如没有没有显示的为每个元素赋值,Java 就会把该数组的全部元素初始化为其相应类型的默认值;留意:对于单个数据,假如不进行初始化不能对其进行操作,编译时报错8.数组遍历的三种方法 1.for 循环 2.for-each 语句遍历, fordatatype x: arrayname 3.迭代器 Iterator 遍历 List list = new ArrayList; Iterator iterator = list.iterator; while iterator.hasNext int i = Integer.parseIntiterator.next.toString; System.out.printlni; 9.方法重载和重写细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 17 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案欢迎下载但是参数列表不同;方法重载:所谓方法重载是指在一个类中,多个方法的方法名相同,参数列表不同指的是参数个数、参数类型或者参数的次序不同;1.在使用重载时只能通过不同的参数列表,必需具有不同的参数列表;例如,不同的参类型,不同的参数个数,不同的参数次序;2.不能通过拜访权限、返回类型、抛出的反常进行重载;3.方法的反常类型和数目不会对重载造成影响;. 4.可以有不同的返回类型,只要参数列表不同就可以了;5.可以有不同的拜访修饰符;方法重写: 当子类需要修改父类的一些方法进行扩展,增大功能, 程序设计者经常把这样的一种操作方法称为重写,也叫称为覆写或掩盖;所谓方法的重写是指子类中的方法与父类中继承的方法有完全相同的返回值类型、方法名、参数个数以及参数类型;留意,重写方法时,可以增大父类中的方法权限,但是不能缩小父类的方法权限;当父类方法为 private子类不能将其重写;细心整理归纳 精选学习资料 super 关键字可以从子类拜访父类中的内容,假如要拜访被重写过的方法,使用“super. 第 5 页,共 17 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载方法名 参数列表 ” 的形式调用;10.反常处理(1)Java 把反常当作对象来处理,并定义一个基类 java.lang.Throwable 作为全部异常的超类;在 Java API 中已经定义了很多反常类,这些反常类分为两大类,错误 Error 和反常 Exception ;Error 和 Exception的区分: Error 通常是灾难性的致命的错误,是程序无法掌握和处理的, 当显现这些反常时,Java 虚拟机(JVM )一般会挑选终止线程;Exception通常情形下是可以被程序处理的,并且在程序中应当尽可能的去处理这些反常;(2)层次结构(3)处理方法Try-catch 方法细心整理归纳 精选学习资料 try 块:用于捕捉反常;其后可接零个或多个catch 块,假如没有catch 块,就必 第 6 页,共 17 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载须跟一个 finally 块;catch 块:用于处理try 捕捉到的反常;finally 块里的语句都会被执行;当在try 块finally 块:无论是否捕捉或处理反常,或 catch 块中遇到 return 语句时, finally 语句块将在方法返回之前被执行;编写多重 catch 语句块留意次序问题:先小后大,即先子类后父类;throws 方法声明抛出反常,只是抛出反常,并没有去处理它(4)自定义反常创建自定义反常类;在方法中通过 throw 关键字抛出反常对象;假如在当前抛出反常的方法中处理反常,可以使用 try-catch 语句捕捉并处理;否 throws 关键字指明要抛出给方法调用者的反常,连续进行下 就在方法的声明处通过 一步操作;在显现反常方法的调用者中捕捉并处理反常;class MyException extends Exception private int detail; MyException int a detail = a; public String toString return "MyException "+ detail + "" public class TestMyException static void compute int a throws MyException System.out.println"Called compute" + a + "" if a > 10 throw new MyExceptiona; System.out.println"Normal exit." 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 17 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载 publicstaticvoid mainString args try compute1; compute20; catch MyException me System.out.println"Caught " + me; 11. 类的继承继承的限制 1.java 只能显示单继承,即一个类只能有一个父类 2. 不答应多重继承(多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特点,Java 为了保证数据安全,它只答应单继承;子类只能继承一个父类,也就是说只能存在单一 继承,但是却可以实现多个接口,间接实现了多重集成)3. 继承只能继承非私有的属性和方法 4. 构造方法不能被继承构造方法假如子类需要继承父类的含参构造函数就需要使用 参构造函数就依据参数使用 super 命令)super 命令(假如父类包含多个含假如父类建立了构造函数且都含有参数,就子类必需使用 super 命令12.Object 类Object 类储备在 java.lang 包中,是全部 java 类Object 类除外 的终极父类; 当然,数组也继承了 Object 类;然而,接口是不继承 Object 类的;一般来说,我们所建立的类都会有如下方法:protected Object clone boolean equalsObject obj protected void finalize Class< > getClass int hashCode void notify 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 17 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载void notifyAll String toString void wait void waitlong timeout void waitlong timeout, int nanos 这是由于全部其他java类都继承了Object类;13. 抽象类用关键字 abstract 修饰的类就是抽象类,它是全部子类的公共属性数据 和行为方法的集合,抽象类没有详细对象,是处于组织概念的层次关系而存在的类;用关键字 abstract 修饰的方法就是抽象方法没有抽象变量 ,抽象方法只有方法头,后面跟一个分号 ;,没有方法体,抽象方法的方法体可在其子类中依据子类的详细情形来实现,抽象方法只存在抽象类或接口中;14.final 类声明为 final 的类不能是父类,即 final 不再派生子类,final 可以用来修饰变量和方法;final 类是处在类的最底层的类,假如没必要再派生子类,通常用 final 关键字来修饰,说明它是最终类,被 final 修饰的类通常是有固定作用,完成肯定标准功能的类,例如 java库中的数学类 Math 等;abstract 和 final 不能同时使用,关键字 abstract 不能修饰实例变量,也不能与 private 、static 、final 等同时修饰一个成员方法,并且 abstract 类必需在 abstract 类中; 关键字 static修饰的方法只能修饰 static 成员变量,同时 static 修饰的成员变量和方法不能 this 引用 .;15. 接口接口( Interface ),在 JAVA 编程语言中是一个抽象类型,是抽象方法的集合;接口通细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 17 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载常以 interface 来声明;一个类通过继承接口的方式,从而来继承接口的抽象方法;假如一个类只由抽象方法和全局常量组成,那么这种情形下不会将其定义为一个抽象类;只会定义为一个接口,所以接口严格的来讲属于一个特别的类,而这个类里面只有抽象方法和全局常量,就连构造方法也没有;由于接口里面存在抽象方法,所以接口对象不能直接使用关键字 new 进行实例化;接口的使用原就如下:(1)接口可以多继承,如 interface C extends A, B / 使用的是 extends(2)接口必需要有子类,但此时一个子类可以使用 implements 关键字实现多个接口;(3)接口的子类(假如不是抽象类),那么必需要覆写接口中的全部抽象方法;(4)接口的对象可以利用子类对象的向上转型进行实例化;留意:,接口中的拜访权限只有一种:public ,即:定义接口方法和全局常量的时候就算没有写上public ,那么最终的拜访权限也是public ,留意不是 default ;如子类中没用public 第 10 页,共 17 页 - - - - - - - - - 修饰, 就拜访权限变严格了,给子类安排的是更低的拜访权限;所以,在定义接口的时候强烈建议在抽象方法前加上public ;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - -名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载15. 塑型塑型type-casting 又称为类型转换方式;将对象临时当成更一般的对象来对待,并不转变其类型只能被塑型为父类类型;当一个类对象被塑型为其父类后,它供应的方法会削减;方法的查找总是在变量声明时所属的类中进行查找;16. 多态多态的定义: 指答应不同类的对象对同一消息做出响应;即同一消息可以依据发送对象 第 11 页,共 17 页 的不同而采纳多种不同的行为方式;(发送消息就是函数调用);细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载多态存在的三个必要条件一、要有继承;二、要有重写;三、父类引用指向子类对象;多态性有两种 : 1)编译时多态性对于多个同名方法,假如在编译时能够确定执行同名方法中的哪一个,就称为编译时多态性. 2)运行时多态性假如在编译时不能确定,只能在运行时才能确定执行多个同名方法中的哪一个,就称为运行时多态性具有继承关系的多态调用在 继 承 链 中 对 象 方 法的调 用 存 在 一 个 优 先 级: this.showO、 super.showO、this.showsuperO、super.showsuperO;17. 虚方法调用Java虚方法你可以懂得为java里全部被overriding的方法都是virtual的, 全部重写override的;的方法都是虚方法和抽象方法并不是同一个概念;18.I/O 流Java 中的流,可以从不同的角度进行分类;依据数:输入流和输出流;依据处理数据细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 17 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载单位不同可以分为:字节流和字符流;依据实现功能不同可以分为:节点流和处理流;输出流:从程序输出到文件输入流:从文件输入到程序字节流:一次读入或读出是 8 位二进制;字符流:一次读入或读出是 16 位二进制;Jdk 供应的流继承了四大类:InputStream 字节输入流 ,OutputStream (字节输出流) ,Reader (字符输入流) ,Writer (字符输出流) ;常用的类和方法 : FileWriter writer = new FileWriterfileName; writer.close; FileWriter writer = new FileWriterfilename,true;/ 追加重复内容BufferWriter out = new BufferWriternew FileWriterfileName;/ 缓冲器流,高效BufferReader in = new BufferReadernew FileWriterfileName; DataOutputStream out = new DataOutputStream new FileOutputStreamfileName;/ 写DataInputStream out = new DataInputStream new FileInputStreamfileName;/ 读仍可以嵌套一个 BufferedInputStream, 提高效率细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 17 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载对象序列化写对象:ObjectOutputStream ofs1 =new ObjectOutputStreamnew FileOutputStreamofs; 从 文 件 中 读 对 象 :ObjectInputStream ifs1=new ObjectInputStreamnew FileInputStreamifs; 迭代遍历: Iterator<Student> whilei.hasNext i = students.values.iterator; ofs1.writeObjecti.next; 19. 集合Collection 是最基本的集合接口 List 接口和 Set 接口的父接口,一个 Collection代表一组 Object ,即 Collection 的元素( Elements );Set 接口同样是 Collection 接口的一个子接口, 它表示数学意义上的集合概念;Set中不包含重复的元素,即 Set 中不存两个这样的元素 e1 和 e2,使得 e1.equalse2 为true ;Map :key-value 的键值对, key 不答应重复, value 可以1、严格来说Map 并不是一个集合,而是两个集合之间的映射关系; 2 、这两个集合没每一条数据通过映射关系,我们可以看成是一条数据;即细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 14 页,共 17 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -Entrykey,value优秀教案欢迎下载);Map 可以看成是由多个Entry 组成; 3、由于Map 集合即没有实现于Collection 接口,也没有实现Iterable 接口,所以不能对Map 集合进行for-each 遍历;20. 多线程两种实现方式:新建一个继承 Thread 类的线程类,其中有一个重写的 run 方法新建一个实现 Runnable 接口的类,这个类在新线程中运行;New Threadt.start 线程中的数据共享:只用一个 Runnable 对象为参数创建多个线程,线程的同步掌握 : 锁旗标 synchronized 对象 代码段 ,可以放在 源类中作为一个方法 public synchronized type name 21. 泛型new Thread 对象名,“ 线程名”.start run 方法里,也可以放在共享的资细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 15 页,共 17 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载泛型,即“ 参数化类型” ; 一提到参数,最熟识的就是定义方法时有形参,然后调用此方法时传递实参; 那么参数化类型怎么懂得呢?顾名思义,就是将类型由原先的详细的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用 /调用时传入详细的类型(类型实参);把类重新设计, 使用泛型, 强制转换的错误将被编译器捕捉,程序崩溃 public class Box<T> private T t; / T stands for "Type" public void addTt this.t= t; public Tget return t; 22.参数传递 Java 中只存在值传递;而不是在运行时出错导致假如参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参 第 16 页,共 17 页 - - - - - - - - - 数的值,这个跟之前所谈的传值是一样的;假如在函数中转变了副本的值不会转变原始的值;假如参数类型是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的是参数的地址; 假如在函数中没有转变这个副本的地址,而是转变了地址中的值,那么在函数细心整理归纳 精选学习资料 - - - - - - - - - - - - - - -名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -优秀教案 欢迎下载内的转变会影响到传入的参数;假如在函数中转变了副本的地址,如 new 一个,那么副本就指向了一个新的地址,此时传入的参数仍是指向原先的地址,所以不会转变参数的值;分以下四种情形进行争论:假如传原始类型,且不期望转变值,那么就直接传递即可假如传原始类型,且期望转变值, 那么必需将其变成引用类型,建一个类生成两个对象使其成员变量等于原始数据,操作这两个对象即可,过程变得比较纷杂;假如传引用类型,且不期望转变其值,就必需行操作;new 一个新的对象,用该对象的引用进假如传引用类型,且期望转变其值,直接传入对象的引用即可;23.关于父子类构造函数父类的构造函数不能被子类继承、重写,使用 super 调用父类构造器的语句必需是子类构造器的第一条语句 .假如子类构造器没有显式地调用父类的构造器 ,就将自动调用父类的默认(没有参数)的构造器 .假如父类没有不带参数的构造器 ,并且在子类的构造器中又没有显式地调用父类的构造器 ,就 java 编译器将报告错误对于父类的私有化属性,在子类中只能通过调用父类的构造器对其进行赋值,不能通过父类的对象调用父类的私有化属性;这就是为什么要用super 对父类私有化属性进行赋值;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 17 页,共 17 页 - - - - - - - - -