考研JAVA复试题目整理

JAVA复试题目自整理

大家觉得有用点点赞啊可以升级升到3级我就可以自定义标签了谢谢~

说复试题目过于牵强,只是自己整理的一些知识点而已,为了便于理解和背诵,有些部分定义和说明尽量简明扼要,如有错误请多多指教!(不可转载)

1.面向对象的三个基本特征

封装:通常认为封装是把数据和方法隐藏起来,对数据和方法的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口
继承:在现有类的基础上扩展新的类的过程,子类可以共享原有类的属性和方法,还可以添加新的特征。可提高代码的可重用性;
多态:不同的对象对同一信息会产生不同的结果;所谓消息是指对类的成员函数的调用,不同的行为是指不同的实现,也就调用不同的函数。换言之,多态指的就是用同样的接口访问功能不同的函数,从而实现“一个接口,多种方法”。
抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么;

1.Java的内存划分

Java内存划分:栈,堆,代码区,数据区
栈:主要存储变量(局部变量或基本数据类型的变量),内容使用完毕立即清除(不会对内容赋初值)
堆:主要存储对象,使用完毕后在某个时间进行回收(对存储的内容进行赋初值)
代码区:存放类和方法
数据区:常量池和静态变量

2.面向对象与面向过程的比较

面向过程:面向过程就是分析出解决问题所需要的步骤,然后用函数将这些步骤一步步实现。
优点:简单
缺点:代码量大时维护性非常差
面向对象:面向对象是把问题分解成各个对象,每个对象忽略其内部实现细节只提供简单的对外接口,在实现时调用即可。
优点:可扩展性强,维护成本低

3.Java中的数据类型

Java中数据类型:
1.基本数据类型;
6种数字类型 -> 4种整数类型: byte, short, int, long
-> 2种浮点类型: float, double
1种布尔类型: boolean
1种字符类型: char
2.引用数据类型(String 以及自己定义的所有类等等)

4.This关键字的作用(this是指向当前对象的指针)

1.当需要给类中的数据进行初始化时,可以通过this来进行赋值,而不用随便定义一个变量来进行赋值,更有利于代码的阅读与理解
2.当成员变量与局部变量同名时,用来区分成员变量和局部变量;
3. 在构造函数中调用构造函数。 构造函数只能在对象创建的时候调用仅调用一次,但是利用this关键字可以在构造函数中调用构造函数,调用构造函数的语句一定要写在第一行。

5.Super关键字的作用

1.Super可以获取到父类中的内容
2.可以调用父类中的构造方法,必须写在子类构造方法的第一行,如果父类的构造方法是无参的,可以不写,如果父类没有无参数的构造,必须要写super。

6.包及包的作用

在开发过程中,会定义很多类,为了避免相同类名而发生覆盖的情况,把所有java程序保存在各自的目录里面,而该目录就是包。包的本质实际上就是一个文件夹。
Action,dao,util
包的作用:
Java包用于对类和接口进行分类,以便更好地维护它们。
Java包提供访问保护。
Java包消除命名冲突。

7.访问权限

1.public 公共的,所有人都可访问
2.Private 私有的,只能通过类中成员函数访问,类外不允许访问。
3.Protect 保护的,这种权限是为继承而设计的,保护所修饰的成员,对所有子类是可访问的,但只对同包的类是可访问的,对外包的非子类是不可以访问。
4.Default 包访问权限,在自己包内可以随意访问。

8.Getter和setter方法

成员变量一般是私有的,保护成员变量不被胡乱的赋值。
Getter用于从成员变量中获取数据
Setter用于给成员变量赋值,做一定的保护。

9.方法的重写

子类对父类中提供的方法进行重新定义,子类和父类中的方法的声明完全一致,重写又被称为方法的覆盖。

10.Java中的多态

多态的前提条件有三个:
子类继承父类
子类覆盖父类的方法
父类引用指向子类对象
new谁就调用谁的方法,引用是谁,就用谁的成员和静态。
多态性:父类引用子类对象时,调用子类中重写后的方法,Java 在运行时能根据对象的不同产生不同的结果。

11.向上转型与向下转型

向上转型:把子类的对象赋值给父类的变量。(屏蔽掉子类中特有的方法)
向下转型:把父类的变量转换回子类的变量。(向下转型可能有风险,java要求必须要写强制类型转换)

12.final关键字及其作用

1.被final修饰的变量不可以被改变,又被称为常量(修饰字符时,自负的地址不能改变)
2.被final修饰的方法不可以被重写
3.被final修饰的类不可以被继承
总结就是不可变

13.Java中的抽象类和抽象方法

抽象方法:使用abstract来修饰,不能有方法体,直接用分号结束即可。(只声明不实现)
抽象类:如果一个类中有抽象方法,这个类必须是一个抽象类。
特点:
抽象类不可以创建对象
抽象类的子类,必须重写父类中的抽象方法,否则子类也是抽象类。抽象类中可以有正常的方法。

14.什么是接口?作用?

使用interface来声明,接口实际上是一种特殊的抽象类,接口中的方法都是抽象方法,接口中的所有变量都是全局静态常量。
Java类只能单继承,通过接口可以多实现(implement)。
接口的作用:(优点)
1.可以实现多态性
2.可以把很多不相关的内容进行整合
3.有利于代码的规范和维护
4.能够保证代码的安全和严密

15.什么是object类,作用是啥?

万事万物皆为对象,在Java中所有的类都要继承object,是所有类的根,我们写的类即使不写继承关系,也都默认会继承object。

16.“==”与equals比较

“= =”:默认判断的是两个对象的内存地址是否一致,常用于基本数据类型的判断。(字符串,对于==而言,则比较的是所指向的对象的地址(即是否是同一个对象)
Equals:如果没有对equals方法进行重写,则比较两者是否指向同一个对象;不能用作基本数据类型的比较;
可以对equals进行重写,比如String类对equals方法进行了重写,用来比较指向的字符串内容是否相等。

17.参数传递

值传递:把变量的值作为参数进行传递
引用传递:直接把变量作为参数进行传递

18.异常

异常分为:
编译时异常:在程序编译时就能发现异常。
运行时异常:编译能够通过,在程序运行时发现异常。
JVM:java虚拟机

19.异常的分类

1.runtimexception:运行时异常,一般不手动处理,出问题了再处理
2.其他exception:必须要经过手动处理
3.Error:一般指的是系统级错误

20.异常的处理

1.try…catch(try中写尝试执行的代码。Catch中写处理异常的代码)
2.throws:表示方法准备要扔出来一个异常
3.throw:表示向外抛出异常

21.自定义异常

直接继承Exception或runtimeException来实现自定义异常。

22.包装类:

Java是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类。

23.深拷贝和浅拷贝:

浅拷贝只是对指针的拷贝,拷贝后两个指针指向同一个内存空间,深拷贝不仅对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针。

24.类与结构体有什么区别?

答:(1)结构体存储在栈中,类的实例化可以存储在栈中,也可以存储在堆中;(2)结构体的执行效 率比类要高;(3)结构体没有析构函数,类有析构函数;(4)结构体不可以继承,类可以继承。

整理不易,请多点点关注和收藏谢谢啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章