java常考知识点_JAVA复习提纲(必考知识点整理)
第三章
1. Java不⽀持⽆条件的调转goto语句。
2. 循环中常⽤的跳转语句:break和continue。
3. Java中提供的循环语句有三种:while,do while,for。
4. Switch(整型/字符)。
5. 接受键盘输⼊的语句:ch=(char)ad();
6. 异常(Exception)⼜称为例外,是特殊的运⾏错误对象,对应着Java语⾔特定的运⾏错误处理机制。
7. 把⽣成异常对象并提交的过程称为抛出(throw)⼀个异常。
8. 运⾏时系统在⽅法的调⽤栈中查,从⽣产异常的⽅法开始进⾏回溯,直到到包含相应异常处理的⽅法为⽌,这⼀个过程称为捕获(catch)。
9. 根据错误的严重性,分为错误(致命的)和异常(⾮致命的)。
10. Exception类是所有异常的⽗类,Error类是所有错误的⽗类,这两个类都是Throwable的⼦类。
11. Exception⼜分为:检查型异常和⾮检查型异常。
12. ⾮检查型异常(因错误导致或者不希望程序捕获),继承来⾃RuntimeException的异常,不需要进⾏声明,并且编译器对其不做检查。
13. 检查型异常:
(1)ArithmeticException:整数除法中,除数为0。
(2)NullPointerException:⼀个对象还没有实例化。
(3)NegativeArraySizeException:创建数组时数组元素是负数。
(4)ArrayIndexOutOfException:下标越界。
(5)ArrayStoreException:程序试图存取数组中错误的数据类型。
14. ⾮检查型异常:
(1)FileNotFoundException:试图存取⼀个并不存在的⽂件。
(2)IOException:通常的I/O错误。
15. 处理异常的办法:声明抛出异常(throws),捕获异常(try{}catch(){}finally{}))。
16. Finally块的作⽤通常⽤于释放资源,Finally不是必需部分,如果有finally部分,不论是否捕获到异常,总要执⾏finally后⾯的语句。
17. 在catch块的内部,可⽤下⾯的⽅法处理异常对象:
(1)getMessage():返回⼀个字符串对发⽣的异常进⾏描述。
(2)PrintStackTrace():给出⽅法的调⽤序列,⼀直到异常的产⽣位置。
第四章
1. 继承是⼀种由已有的类创建新类的机制,是⾯向对象程序设计的基⽯之⼀。⼀个新类可⽤从现有的类中派⽣,这个过程称为类继承。派⽣出的新类称为已有类的⼦类,已有类称为超类(⽗类)。
2. Java可以通过实现接⼝来实现多继承功能。
3. Java只⽀持单继承,即每个⼦类只能有⼀个直接⽗类,类的层次结构为树状结构,Object类为树的
根节点。
4. Java要求声明的每个类都有⽗类,当没有显⽰⽗类的时候,⽗类隐藏为java.lang包中的Object类。
5. 关键字extends:说明要声明的类需要继承⽗类的属性和⾏为。
6. ⼦类不能直接访问从⽗类中继承的私有属性及⽅法,但可以使⽤公有(及保护)⽅法进⾏访问。
Eg:public class B
{
Public int a=10;
Private int b=20;
Protected int c=30;
Public int getB()
{
Return b;
}
}
Public class A extends B
{
Public int d;
Public void tryVariables()
{
System.out.println(a);//允许
System.out.println(b);//不允许
System.out.println(getB());//允许
System.out.println(c);//允许
}
}
所有,b是从类B继承⽽来的,由于b是私有属性,不能在A中直接存取,但可以使⽤继承类的共有⽅法getB()取得。
7. 隐藏和覆盖是指⼦类对从⽗类继承来的属性变量及⽅法可以重新定义。
8. 属性的隐藏:⼦类对⽗类继承来的属性变量重新加以定义,则⽗类继承来的属性将被隐藏。
9. 隐藏:是指⼦类拥有两个相同名字的变量,⼀个继承⽗类,⼀个由⾃⼰声明。
10. 当⼦类执⾏继承⾃⽗类的操作时,处理的是继承⾃⽗类的变量,⽽当⼦类执⾏它⾃⼰声明的⽅法时,所操作的就是它⾃⼰声明的变量,⽽把继承⾃⽗类的变量“隐藏”起来。
11. 访问被隐藏的⽗类域:调⽤从⽗类继承的⽅法(则操作的是从⽗类继承的域),使⽤super.域名。
12. ⼦类不能继承⽗类中的静态变量,但是可以对⽗类中的静态变量进⾏操作。
13. 调⽤⾃⼰的构造⽅法⽤this,调⽤⽗类⽤super,final终结。
14. 在⽅法的覆盖中,由于同名⽅法⾪属于不同的类,所以要解决调⽤时如何区分它们:只需在⽅法名前⾯使⽤不同的类名或不同的对象名即可。
15. 构造⽅法是类的⼀种特殊⽅法,它可以重载,但不能从⽗类那⾥继承。它的名字必须与它所在的类的名字完全相同,并且不返回任何数据类型,也不能是void类型。
16. ⼦类不能从⽗类继承构造⽅法。
17. 如果在⼦类的构造⽅法的声明中没有明确调⽤⽗类的构造⽅法,则系统在执⾏⼦类构造⽅法时会⾃动调⽤⽗类的默认构造⽅法(即⽆参的构造⽅法)。
18. 如果在⼦类的构造⽅法的声明中调⽤⽗类的构造⽅法,则调⽤的语句必须放在⼦类构造⽅法的第⼀⾏。
19. Object类是Java程序中所有类的直接或间接⽗类,也就是类库中所有类的⽗类,处在类层次最⾼点。所有其他的类都是从Object类派⽣出来的,所以Object类包含所有Java类的公共属性。
20. Object类中的⽅法有clone(),equals(),getClass(),toString(),hashCode()。
21. Equals:两个对象是否具有相同的类型及相同的属性值;
==:两个引⽤变量指向的是同⼀个对象
Eg:BankAccount a =new BankAccount(“Bob,123456,100.00f);
BankAccount b =new BankAccount(“Bob,123456,100.00f);
BankAccount c=a;
a==b;//NO a==c;//Yes
a.equals(b);//Yes a.equals(c);//Yes
22. Object是类层次结构中的树根节点,所有的其他类都是Object类的⼦类。
23. @Override:重载⽗类
24. Final的四“不”:
(1)Final不可能有派⽣类(即final只可能是这棵树上的叶⼦节点);
(2)Final不能被继承;
(3)Final⼀旦定义初始化便不能进⾏修改;
(4)Final不能被当前的⼦类重载
25. 被声明为final的类通常是⼀些有固定作⽤,⽤来完成某种标准功能的类,不能被继承以达到修改的⽬的。
26. 所谓的抽象类就是不能使⽤new⽅法进⾏实例化的类,即没有具体实例对象的类。
27. 抽象类⽤的关键字是abstract。
28. 抽象类也可以包括抽象⽅法,但是没有⽅法的实现。
29. 抽象类也可以包含⾮抽象⽅法,但不能在⾮抽象的类中声明抽象⽅法。
30. 只有抽象类才能有具体的抽象⽅法。
31. abstract声明了⼀种没有具体对象的,声明⼀种仅有⽅法头,⽽没有具体的⽅法体和操作实现的抽象⽅法,为该类的⼦类声明⼀个⽅法的接⼝标准。
32. 抽象类可以包括被它的所有⼦类共享的公共属性。在抽象类中可以包括被它的所有⼦类共享的公共⾏为。
33. 泛型类的定义是在类名后⾯加上“”,泛型⽅法的定义就是在⽅法名前加上“”。
34. 当要获取函数的返回值并且使⽤时,必须将其返回值强制转换为原类型或接⼝,然后才可以调⽤原类型的⽅法。(p123)
Eg:GeneralType i=new GeneralType(2);
GeneralType d=new GeneralType(0.33);
i.object=(Obj();//i.object=2
d.object=(Obj();//double类型不能转成int型
35. (p124)
gm.printClassName(“hello”);//java.lang.String
gm.printClassName(3);//java.lang.Integer
gm.printClassName(3.0f);//java.lang.Float
gm.printClassName(3.0);//java.lang.Double
36. 通⽤符泛型:GeneralType
语法:eg:GeneralType i;
37. 不能将General 类型的变量当做参数传递给General 。
38. 在java中“?”表⽰⼀种通配符。
39. “属于”关系是⽤继承来表达的,⽽“包含”关系是⽤合成来表达的。
第五章
java接口有没有构造方法1. 接⼝关键词:interface。
2. 接⼝(interface)可以说成是抽象类的特例。接⼝中的所有⽅法都必须是抽象的,接⼝中的⽅法定义默认为public abstract 。接⼝中的变量是全局常量,即public static final修饰的。
3. 接⼝和抽象类的区别:
(1)抽象类⾥可以有构造⽅法,⽽接⼝内不能有构造⽅法。
(2)抽象类中可以有普通成员变量,⽽接⼝中不能有普通成员变量。
(3)抽象类中可以包含⾮抽象的普通⽅法,⽽接⼝中所有的⽅法必须是抽象的,不能有⾮抽象的普通⽅法。
(4)抽象类中的抽象⽅法的访问类型可以是public ,protected和默认类型,但接⼝中的抽象⽅法只能是public类型的,并且默认即为public abstract类型。
(5)抽象类中可以包含静态⽅法,接⼝内不能包含静态⽅法。
(6)抽象类和接⼝中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接⼝中定义的变量只能是public static类型,并且默认为public static类型。
(7)⼀个类可以实现多个接⼝,但只能继承⼀个抽象类。
4. 接⼝不规定⽅法体,但也包含了数据成员,但它们都默认为static和final。
5. Java接⼝中只声明原型,⽽没有直接定义⽅法的内容,接⼝声明的⽅法都是抽象⽅法,只提供⼀种形式,并不实现具体的细节。
6. 在接⼝的声明中,Java允许省略声明数组成员的final关键字,⽅法的public及abstract关键字。
7. 接⼝⾥只有抽象⽅法,它只要声明⽽不需要定义处理⽅式。所以接⼝也没有可能像⼀般类⼀样,使⽤new运算符就可以直接产⽣对象。
8. 为了⽣存与⼀个特定的接⼝(或⼀组接⼝)相符的类,要使⽤implements(实现)关键字。注意在实现⼀个接⼝的时候,来⾃接⼝的⽅法必须声明成public。
9. Java不允许⼀个类有多个⽗类,但允许⼀个类可以实现多个接⼝,(⽤implements实现)通过这种⽅式实现多重继承。
10. 接⼝的扩展⽤关键字extends。
11. 类型转换也称为塑型。
12. 对象只能被塑型为:
(1)任何⼀个⽗类类型。即任何⼀个⼦类的引⽤(或对象)都可以被当成⼀个⽗类引⽤变量(或对象)来对待,因为⼦类继承了⽗类的属性及⾏为;但反过来却不成⽴。
(2)对象所属的类实现的⼀个接⼝。
(3)或者回到它⾃⼰所在的类。
13. 隐式(⾃动)的类型转换:
对于基本数据类型,相容类型之间存储类型低的会⾃动向存储类型⾼的类型转换;对于引⽤类型,当⼀个类需要被塑型成更⼀般的类(⽗类)或接⼝时,系统将会⾃动进⾏塑型。
Eg:Employee emp;
Emp=new Manager();
对象也可以被塑型为对象所属类实现的接⼝。
Eg:Car jetta=new Car();
Insurable item=jetta;
14. 强制类型转换:
当隐式类型转换不可以时,需要进⾏显⽰的类型转换。
Eg:(int)871.3456
对于引⽤变量,通过强制塑型,将其还原为本来的类型。
Eg:Employee emp;
Manager man;
Emp=new Manager();
Man=(Manager)emp;
15. 塑型主要⽤于的场合:赋值转换,⽅法调⽤转换,算数表达式转换,字符串转换。
16. 在⽅法的内部中,只有Object类中声明的⽅法才能发送给形参变量。
17. ⽅法的查:
(1)实例的查
Eg:Manager man =new Manager();
Employee emp1=new Employee;
Employee emp2=Employee(man);
emp1putePay();//调⽤Employee类中的computePay()⽅法
manputePay();//调⽤Manager类中的computePay()⽅法
emp2putePay();//调⽤Manager类中的computePay()⽅法
(2)类查
Eg:Manager man =new Manager();
Employee emp1=new Employee;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论