Java期末考试“大招”

发布时间:2023年12月25日

目录

1.下面三者的区别

2.基本数据类型

3.变量的作用范围,类变量,实例变量。局部变量的区别

4.普通类和抽象类和内部类的区别

5.面向对象编程的三大特征

6.封装实现的过程和实现的必要性

7.子类从父类哪里继承了什么?

8.简述多态的实现过程

9.接口的构成和作用

10.final的用法有哪些

11.static的用法有哪些

12.静态代码块的和构造代码块的作用分别是什么

13.==和equals的区别是什么

14.简述string和stringBuider定义变量的方式和内存模型《应该不考》线程的

15.构造方法的作用是什么?简述构造方法的几种形式

16 数据流,字符流,字节流的概念

17.读写一个文本文件的过程

18.什么是重载

19.什么是重写

19.file类的作用是什么?

20.简述三种集合的特点,并举例有哪些类?

21.异常可以分为哪些类

22.一个类可以有哪些组成成员?

23.访问修饰符有哪些,代表的含义是什么?


1.下面三者的区别

JDK?是 Java 语言的软件开发工具包,JDK是整个Java开发的核心。

JRE是指Java的运行环境,是可以在其上运行、测试和传输应用程序的Java平台。

JVM(Java虚拟机)是一种用于计算设备的规范,它是一个虚构出来的计算机,引入JVM后,Java语言在不同平台上运行时不需要重新编译。JVM是Java跨平台的核心。

2.基本数据类型

3.变量的作用范围,类变量,实例变量。局部变量的区别

作用范围:就是变量的生命周期,在什么时候有效

  • 类变量:独立于方法之外的变量,用 static 修饰。作用域:程序结束
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。作用域:从声明处开始,直到含该变量的块结束
  • 局部变量:类的方法中的变量。作用域:所在的代码快,代码块结束,生命周期结束、
4.普通类和抽象类和内部类的区别
  1. 定义和实例化:
  • 普通类可以直接实例化,而抽象类不能被实例化,只能被继承。
  • 普通类中不包含抽象方法,只有具体的方法实现。
  • 抽象类中可以包含抽象方法,抽象方法没有具体的实现,需要在子类中实现。
  • 2继承:
  • 内部类可以被单继承或多继承。
  • 3.实现接口:
  • 普通类可以实现接口。
  • 抽象类可以实现接口,也可以不实现接口。
  • 内部类可以实现接口。
  • 4实例化对象:
  • 普通类可以直接实例化对象。
  • 抽象类不能直接实例化对象,但可以通过子类实例化对象。
  • 内部类可以通过外部类实例化对象。
  • 5使用场景:
  • 普通类适用于具体的对象实例化。
  • 抽象类适用于具有共同特征的类的抽象和继承。
  • 内部类适用于需要在其他类内部定义和使用的类。
5.面向对象编程的三大特征

继承:子类可以继承父类的内容,实现代码复用。

多态:可以让不同对象调用相同函数实现不同的结果

封装:它通过将数据和操作封装在一个类中,实现了数据的隐藏和保护。封装的过程包括定义类、定义类的成员变量和成员方法,并使用访问修饰符来控制对类的成员的访问权限。

6.封装实现的过程和实现的必要性

封装的实现过程如下:

  1. 定义一个类,用于封装相关的数据和操作。
  2. 使用private访问修饰符来限制类的成员变量的访问权限,使其只能在类的内部访问。
  3. 提供公共的成员方法(getter和setter方法)来访问和修改类的成员变量。

封装的必要性:

  1. 数据隐藏和保护:封装可以隐藏类的内部实现细节,只暴露必要的接口给外部使用,提高了代码的安全性和可维护性。
  2. 简化代码的使用:封装可以将复杂的操作封装在一个方法中,对外部提供简单的接口,方便使用。
  3. 提高代码的可重用性:封装可以将一些通用的操作封装在类中,可以在不同的地方重复使用,提高了代码的复用性。
  4. 降低代码的耦合性:封装可以将类的内部实现和外部的使用分离开来,减少了类之间的依赖关系,降低了代码的耦合性。
7.子类从父类哪里继承了什么?

子类从父类哪里继承了属性和方法

Java底层会创建一个虚方法表,从最顶级的父类开始,把类中的非private,非static,非final的方法都提取到虚方法表中,子代会继承虚方法表,子代中符合条件的方法也会被提取到虚方法表中,在使用这些方法时只需要创建最底层子类的对象即可。

8.简述多态的实现过程

多态产生的必要条件

一、要有继承;二、要有重写;三、父类引用指向子类对象。

实现过程是通过父类的引用指向子类的对象,调用同一方法时可能会产生不同的行为

9.接口的构成和作用

接口由常量和抽象方法组成,作用是定义一些规范,使得类可以实现这些规范,以便统一处理对象

10.final的用法有哪些

1.修饰类?当用final修饰一个类时,表明这个类不能被继承

2.修改方法? 表示该方法不能被重写

3.修饰变量 表示该变量只能被赋值一次

11.static的用法有哪些
  • 修饰成员变量,使其成为类变量,也叫静态变量
  • 修饰成员方法,使其成为类方法
  • 修饰内部类,使其成为静态内部类
  • 静态代码块
  • 静态导包
12.静态代码块的和构造代码块的作用分别是什么

代码块是由一对大括号?{}?包围起来的一段代码

构造代码块:构造代码块在类的构造方法执行之前执行,用于对对象进行初始化操作

静态代码块:静态代码块在类被加载时执行一次,用于对静态成员进行初始化或进行一些静态预处理任务。

13.==和equals的区别是什么

一、对象类型不同

1、equals():是超类Object中的方法。

2、==:是操作符。

二、比较的对象不同

1、equals():用来比较两个字符串内容是否相同。

2、==:用于比较俩个对象的引用是否相等

三、运行速度不同

1、equals():没有==运行速度快。

2、==:运行速度比equals()快,因为==只是比较引用。

14.简述string和stringBuider定义变量的方式和内存模型《应该不考》线程的

String是不可变字符序列。

StringBuilder也是可变的字符序列。

string对象在常量池中,StringBuilder对象在堆上

15.构造方法的作用是什么?简述构造方法的几种形式

作用:

对象的初始化

属性的赋值

实现重载

对象的复制或克隆(拷贝构造)

初始化代码块执行

继承和多态

形式:

无参构造方法和有参构造方法

16 数据流,字符流,字节流的概念

数据流(Stream)就是一系列的数据。

字节流:用于以字节的形式读取和写入数据。

字符流:专门用于字符的形式读取和写入数据。

17.读写一个文本文件的过程

首先创建File对象,在创建reader/writer对象,读取或写入文件,最后关闭流

18.什么是重载

重载是在一个类中,方法名相同但参数类型、个数或顺序不同的方法

19.什么是重写

重写是子类重新定义父类中已有的方法

19.file类的作用是什么?

file类用于文件或目录的路径名,以及对文件和目录进行操作

20.简述三种集合的特点,并举例有哪些类?

List集合类中的元素有序(添加顺序和取出顺序一致),可重复。
List集合中的每个元素有其对应的顺序索引

ArrayList:由数组来实现数据的存储,可以随机访问

Vector:和ArrayList类似,它是线程安全的

LinkedList:双向链表实现,可以快速在链表中间插入和删除元素。
——————————————————————————————————————————

Set 是一个不能包含重复元素的集合。

TreeSet:基于红黑树实现,支持有序性操作。但是查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),TreeSet 则为 O(logN)。

HashSet:基于哈希表实现,支持快速查找,但不支持有序性操作。使用 Iterator 遍历 HashSet 得到的结果是不确定的。

LinkedHashSet:具有 HashSet 的查找效率,并且内部使用双向链表维护元素的插入顺序。
———————————————————————————————————————————

Map是一个将键映射到值的对象。映射不能包含重复的键:每个键最多可以映射到一个值。

TreeMap:基于红黑树实现。

HashMap:基于哈希表实现。

21.异常可以分为哪些类

Java的异常分为可查的异常(是编译器要求必须处置的异常)和不可查的异常(编译器不要求强制处置的异常 包括运行时异常和非运行时异常)。

22.一个类可以有哪些组成成员?

有构造方法,成员变量,成员方法,代码块,内部类等组成成员

23.访问修饰符有哪些,代表的含义是什么?

对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。

对于protected修饰符,它主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。

对于default来说,有点的时候也成为friendly(友员),它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。

对于private来说,它的访问权限仅限于类的内部,是一种封装的体现。

文章来源:https://blog.csdn.net/weixin_55582891/article/details/135202221
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。