java复习笔记期末考试复习_第1页
java复习笔记期末考试复习_第2页
java复习笔记期末考试复习_第3页
java复习笔记期末考试复习_第4页
java复习笔记期末考试复习_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

l.-JavaSEJavaEEJavaME指什么?

JavaSE=JavaStandardEdition

JavaEE=JavaEnterpriseEdition

JavaME=JavaMobileEdition

SE主要用于桌面程序控制台开发(JFC)

EE企业级开发。SP,EJ3)

ME嵌入式开发(手机,小家电)

2.java优点?

Java语言在安全性、平台无关性、支持多线程、内存

管理等许多方面具有卓越灼优点。

3.基本数据类型的种类和长度

一个字节等于8位

基本型别大小最小值最大值

boolean—--—・・——

char16-bitUnicode0Unicode2Al6-1

byte8-bit-128+127

short16-bit-2A15+275-1

int32-brt-2A31+2A31-1

long64-bit-2A63+2A63-1

float32-bitIEEE754IEEE754

double64-bitIEEE754IEEE754

void

4.强制转换

在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子

类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需

要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型

转换是有条件的。

当我们用一个类型的构造器构造出一个对象时,这人对象的类型就已经确定的,也就说

它的本质是不会再发生变化了。在Java中我们可以通过继承、向上转型的关系使用父类类

型来引用它,这个时候我们是使用功能较弱的类型引用功能较强的对象,这是可行的。但是

将功能较弱的类型强制转功能较强的对象时,就不一定可以行了。

基本数据类型之间的强制类型转换:

java规范强烈的不建议布尔型和整型或者浮点型的进行转化,很容易出错

5.关于static

sialic方法属于整个类,它不能操纵和处理属于某个对象的成员变量,只能处理属于整个类

的成员变量,即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。

2、单精度浮点型(float)的基本类型变量的默认值为O.Of。

3、双精度浮点型(double)的基本类型变量的默认值为O.Od。

4、字符型(char)的基本类型变量的默认为7u0000-0

5、布尔性的基本类型变量的默认值为false0

6、引用类型的变量是默认值为nulL

7、数组引用类型的变量的默认值为nulL当数组变量的实例后,如果没有没有显示的

为每个元素赋值,Java就会把该数组的所有元素初始化为其相应类型的默认值。

注意:对于单个数据,如果不进行初始化不能对其进行操作,编译时报错

8.数组遍历的三种方法

l.for循环

2.for-each语句遍历,for(datatypex:arrayname)

3.迭代器Iterator遍历Listlist=newArrayList();

Iteratoriterator=list.iterator();

while(iterator.hasNext()){

inti=lnteger.parselnt(iterator.next().toString());

System.out.println(i);

)

9.方法重载和重写

区别重载重写(徵写)

英文OverloadingOveriding

定义方法名称相同,参数的类型或个方法名称、参数类型、返回值类型

数不同全部相同

对权限没有要求被重写的方法不能拥有更严格的权

范围发生在中发生在继承类中

方法重载所谓方法重载是指在一个类中,多个方法的方法名相同,但是参数列表不同。

参数列表不同指的是参数个数、参数类型或者参数的顺序不同。

1.在使用重载时只能通过不同的参数列表,必须具有不同的参数列表。例如,不同的参

类型,不同的参数个数,不同的参数顺序。

2.不能通过访问权限、返回类型、抛出的异常进行重载。

3.方法的异常类型和数目不会对重载造成影响。..

4.可以有不同的返回类型,只要参数列表不同就可以了。

5.可以有不同的访问修饰符。

方法重写:当子类需要修改父类的一些方法进行扩展,增大功能,程序设计者常常把这

样的一种操作方法称为重写,也叫称为覆写或覆盖。所谓方法的重写是指子类中的方法与父

类中继承的方法有完全相同的返回值类型、方法名、参数个数以及参数类型。注意,重写方

法时,可以增大父类中的方法权限,但是不能缩小父类的方法权限。当父类方法为private

子类不能将其重写。

super•关键字可以从二类访问父类中的内容,如果要访问被重写过的方法,使用"super.

方法名(参数列表)"的形式调用。

10.异常处理

(1)Java把异常当作对象来处理,并定义一个基类java.Iang.Throwable作为所有异常

的超类。在JavaAPI中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常

ExceptionoError和Exception的区别:Error通常是灾难性的致命的错误,是程序无法控制

和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;Exception通常情

况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。

(2)层次结构

(3)处理方法

Try-catch方法

try块:用于捕获异常。其后可接零个或多个catch块,如果没有catch块,见必须

跟一个finally块。

catch块:用于处理try捕获到的异常。

finally块:无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块

或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。

编写多重catch语句块注意顺序问题:先小后大,即先子类后父类。

throws方法声明抛出异常,只是抛出异常,并没有去处理它

(4)自定义异常

•创建自定义异常类。

•在方法中通过throw关键字抛出异常对象。

•如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否

则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下

一步操作。

•在出现异常方法的调用者中捕获并处理异常。

classMyExceptionextendsException{

privateintdetail;

MyException(inta){

detai1=a;

pub1icStringtoStringO{

return^MyExceptiai[*+detail+*]*:

)

)

publicclassTestMyException{

staticvoidcompute(inta)throwsMyException{

System,out.println(*Calledcompute(*+a+")”);

if(a>10){

thrownewMyException(a):

)

System,out.printInt^Normalexit!*);

)

publicstaticvoidmain(String[]args){

try(

computed);

compute(20);

)catch(MyExceptionme){

System,out.println(*Caught*।me);

)

)

)

11.类的继承

继承的限制

1.java只能显示单继承,即一个类只能有一个父类

2.不允许多重继承(多重继承指的是一个类可以I可时从多于一个的父类那里继承行为和特

征,Java为了保证数据安全,它只允许单继承。子类只能继承一个父类,也就是说只能存在

单一继承,但是却可以实现多个接口,间接实现了多重集成)

3.继承只能继承非私有的属性和方法

4.构造方法不能被继承

构造方法

如果子类需要继承父类的含参构造函数则需要使用super命令(如果父类包含多个含

参构造函数则依据参数使用super命令)

如果父类建立了构造函数且都含有参数,则子类必须使用super命令

12.Object类

Object类存储在java.lang包中,是所有java类(Object类除外)的终极父类。当

然,数组也继承了Object类。然而,接口是不继承Object类的。一般来说,我们所

建立的类都会有如下方法:

•protectedObjectclone()

•booleanequals(Objectobj)

•protectedvoidfinalize()

•Class<>getClass()

•inthashCode()

•voidnotify()

•voidnotifyAII()

•StringtoString()

•voidwait()

•voidwait(longtimeout)

•voidwait(longtimeout,intnanos)

这是因为所有其他java类都继承了Object类。

13.抽象类

用关键字abstract修饰的类就是抽象类,它是所有子类的公共属性(数据)和行为方法的

集合,抽象类没有具体对象,是处于组织概念的层次关系而存在的类。

用关键字abstract修饰的方法就是抽象方法(没有抽象变量),抽象方法只有方法头,后

面跟一个分号(;),没有方法体,抽象方法的方法体可在其子类中根据子类的具体情况来实

现,抽象方法只存在抽象类或接口中。

14.finals

声明为final的类不能是父类,即final不再派生子类,final可以用来修饰变量和方法。

final类是处在类的最底层的类,如果没必要再派生子类,通常用final关键字来修饰,

表明它是最终类,被final修饰的类通常是有固定作用,完成一定标准功能的类,例如java

库中的数学类Math等。

abstract和final不能同时使用,关键字abstract不能修饰实例变量,也不能与private、

static、final等同时修饰一个成员方法,并且abstract类必须在abstract类中。关键字static

修饰的方法只能修饰static成员变量,同时static修饰的成员变量和方法不能this引用

15.接口

接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常

以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类。

只会定义为一个接口,所以接口严格的来讲属于一个特殊的类,而这个类里面只有抽象方法

和全局常量,就连构造方法也没有。

由于接口里面存在抽象方法,所以接口对象不能直接使用关键字new进行实例化。接

口的使用原则如下:

(1)接口可以多继承,如interfaceCextendsA,B{...}//使用的是extends

(2)接口必须要有子类,但此时一个子类可以使用implements关键字实现多个接口;

(3)接口的子类(如果不是抽象类),那么必须要覆写凄口中的全部抽象方法;

(4)接口的对象可以利用子类对象的向上转型进行实例化。

注意:,接口中的访问权限只有一种:public,即:定义接口方法和全局常量的时候就算

没有写上public,那么最终的访问权限也是public,注意不是default。若子类中没用public

修饰,则访问权限变严格了,给子类分配的是更低的访问权限。所以,在定义接口的时候强

烈建议在抽象方法前加上public0

参数抽象类接口

接口完全是抽象的。它根本

默认的方法实现它可以有默认的方法实现

不诙方却勺实现

子类使用extends关键字来继承抽象子类使用关键字

类。如果子类不是抽象类的话,它需implements来实现接口。

实现

要提例由象类中所有声明的方法的实它需要提供接口中所有声明

现。的方;去的实现

构造器抽象类可以有构造器接口不能有构造器

除了你不能实例化抽象类之外,它和

与正常Java类的区别接口是完全不同E勺类型

普通Java类没有任何区别

接口方法默认修饰符是

抽象方法可以有public、protected

访问修饰符public。你不可以使用其它

和defaul盛些修福5

修饰符。

抽象方法可以有main方法并且我们可接口没有main方法,因此我

main方法

傩行它们不能国亍它。

抽象方法可以继承一个类和实现多个接口只可1溜承一个或多个

多继承

接口其它接口

接口是稍微有点慢的,因为

它比接口速度要快它需喇司去寻切类中实

现的方法。

如果你往抽象类中添力嗡的方法,你如果你往接口中添加方法,

添加新方法可以给它提供默认的实现。因此你不那么你必须改变实现该接口

需要改变你现在的代码。幅

15.塑型

塑型(type-casting)又称为类型转换方式。

将对象暂时当成更一般的对象来对待,并不改变其类型只能被塑型为父类类型。

当一个类对象被塑型为其父类后,它提供的方法会减少。

方法的查找一总是在变量声明时所属的类中进行查找。

16.多态

多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象

的不同而采用多种不同的行为方式。(发送消息就是函数调用)。

多态存在的三个必要条件

一、要有继承;

二、要有重写;

三、父类引用指向子类对象。

多态性有两种:

1)编译时多态性

对于多个同名方法,如果在编译时能够确定执行同名方法中的哪一个,则称为编译时多态

性.

2)运行时多态性

如果在编译时不能确定,只能在运行时才能确定执行多个同名方法中的哪一个,则称为运

行时多态性

具有继承关系的多态调用

在继承链中对象方法的调用存在一个优先级:this.show(O)xsuper.show(O)x

this.show((super)0)ssuper.show((super)O)。

17.虚方法调用

Java虚方法你可以理解为java里所有被overriding的方法都是virtual的,所有重写

的方法都是override的。

虚方法和抽象方法并不是同一个概念。

18.1/0流

Java中的流,可以从不同的角度进行分类。按照数:输入流和输出流。按照处理数据

单位不同可以分为:字节流和字符流。按照实现功能不同可以分为:节点流和处理流。

输出流:从程序输出到文件

输入流:从文件输入到程序

字节流:一次读入或读出是8位二进制。

字符流:一次读入或读出是16位二进制。

•Jdk提供的流继承了四大类:Inputstream(字节输入流),Outputstream(字节输出流),

Reader(字符输入流),Writer(字符输出流).

常用的类和方法:

Filewriterwriter=newFileWriter(fileName);

writer.close();

FileWriterwriter=newFileWriter(filename,true);〃追加重复内容

BufferWriterout=newBufferWriter(newFileWriter(fileName));〃缓冲器流,高效

BufferReaderin二newBufferReader(newFileWriter(lleName));

DataOutputStreamout=newDataOutputStream(newFileOutputStream((fileName)));//

DatalnputStreamout=newDatalnputStream(newFilelnputStream((fileName)));//-iS

还可以嵌套一个BufferedlnputStream,提高效率

对象序列化

写对象:ObjectOulputStreamofsl=newObjectOutputStream(new

FileOutputStream(ofs));

从文件中读对象:Objectinputstreamifsl=newObjectlnputStream(new

FilelnputStream(ifs));

迭代遍历:lterator<Student>i=students.values(;.iterator();

while(i.hasNext())

(

ofsl.wrteObject(i.next());

)

19.集合

Collection是最基本的集合接口List接口和Set接口的父接口,一个Collection代

表一组Object,即Collection的元素(Elements)o

Set接口同样是Collection接口的一个子接口,它表示数学意义上的集合概念,Set

中不包含重复的元素,即Set中不存两个这样的元素el和e2,使得el.equals(e2)为

true。

Map:key-value的键值对,key不允许重复,value可以

1、严格来说Map并不是一个集合,而是两个集合之间的映射关系。

2、这两个集合没每一条数据通过映射关系,我们可以看成是一条数据。即

Entry(key,value)oMcp可以看成是由多个Entry组成。

3、因为Map集合即没有实现于Collection接口,也没有实现Iterable接口,所

以不能对Map集合进行for-each遍历。

接口实现历史集合类

SetHashSet

TreeSet

ListArrayListVector

LinkedListStack

MapHashMapHashtable

TreeMapProperties

20.多线程

两种实现方式:

新建一个继承Thread类的线程类,其中有一个重写的run方法

新建一个实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论