埃森哲应届毕业生面试题
埃森哲是全球领先的管理咨询、技术服务和外包公司。因此,我们整理了一份应届毕业生最常被问到的埃森哲面试题。
区分Java提供的数组和ArrayList
数组创建后,不能修改数组的长度。而在ArrayList中,可以更改长度。数组可以保存对象和基本数据类型,而ArrayList只能保存对象。数组可以是一维的或多维的,而ArrayList只能是一维的。数组是静态的,而ArrayList是动态的。
什么是Java中的“菱形问题”?
Java不允许多重继承。因此,一个类不能继承多个类的属性。无法继承多个类的这个问题被称为菱形问题。
C语言中的内存分配过程是什么?
将物理或虚拟内存空间分配给计算机程序和服务的称为内存分配。内存分配可以在程序执行之前或期间发生。内存分配可分为两类:
- 编译时或静态内存分配
- 运行时或动态内存分配
C++中的友元函数是什么意思?
C++中的友元函数定义为可以访问类的私有、受保护和公共成员的函数。
我们在需要访问私有和受保护数据的类的主体内部声明友元函数,以`friend`关键字开头来访问数据。当我们需要同时操作两个不同的类时,可以使用它们。
C++中的访问说明符是什么?
访问说明符定义如何访问类的成员(属性和方法)。C++中有3个访问说明符:公共、私有和受保护。
解释方法重载和方法覆盖的基本区别。
方法重载实现编译时多态性,而方法覆盖实现运行时多态性。方法重载有助于提高代码的可读性,而覆盖用于为其超类已提供的方法授予特定的实现。
解释动态内存和静态内存分配
在编译时分配内存,这种类型的内存分配称为静态内存分配。相反,在运行时分配内存,这称为动态内存分配。静态内存分配在数组中优先使用,动态内存分配在链表中优先使用。静态内存分配节省时间,因为它比动态内存分配更快。
什么是数据库中的规范化?它有哪些类型?
规范化是一种数据库设计技术,通过它可以减少数据冗余并消除插入、更新和删除异常等不良特性。使用关系,规范化规则将大型表分解成较小的表。在SQL中,规范化确保数据以逻辑方式存储并消除冗余数据。
以下是一些规范化类型:
- 第一范式 (1NF)
- 第二范式 (2NF)
- 第三范式 (3NF)
- Boyce-Codd范式 (BCNF)
你能解释SQL中主键和唯一键的区别吗?
主键充当表中每一行的唯一标识符。唯一键唯一地确定不是主键的行。主键不能接受NULL值,而唯一键可以接受NULL值。数据库中只有一个主键,而可以有多个唯一键。
什么是DBMS中的DML命令?
DML代表数据操作语言。结构化查询语言中的DML命令更改SQL数据库中的数据。DML命令简化了我们访问、存储、修改、更新和删除现有数据库记录的操作。
区分SQL中的DELETE和TRUNCATE命令?
DELETE命令用于从表中删除特定行,而TRUNCATE命令删除表中的所有行。DELETE命令比TRUNCATE命令慢。DELETE命令比TRUNCATE命令占用更多事务空间。DELETE命令可以与索引视图一起使用,而TRUNCATE命令不能与索引视图一起使用。
区分数据库中的“热备份”和“冷备份”。
热备份是在用户仍然登录到系统时执行的,而冷备份是在所有用户脱机时执行的。
当必须将停机时间保持在最小限度时,应使用热备份;当不需要用户访问系统时,应使用冷备份。
什么是XML?
XML代表可扩展标记语言。XML是一种与软件和硬件无关的用于存储和传输数据的工具。XML的设计目的是自描述的。
BRD和SRS有什么区别?
BRD通常称为业务需求规格说明书。SRS也称为系统需求规格说明书。它侧重于业务需求和利益相关者需求。它侧重于功能性和非功能性需求。BRD用于启动阶段,而SRS用于规划阶段。
微服务的优点是什么?
可以独立管理的服务是微服务。根据需要,它可以启用越来越多的服务。它对当前服务的影响最小。您可以单独升级或更改每个服务,而不是升级应用程序。它依赖性较小,易于测试,具有动态扩展性,发布周期更快。
什么是Shell?有哪些不同类型的Shell?
Shell是一个将用户连接到操作系统 (OS) 内核的程序。当用户登录或打开终端或控制台窗口时,操作系统会为此用户启动一个Shell。
以下是一些不同类型的Shell:
- Bourne Shell (sh)
- C Shell (csh)
- Korn Shell (ksh)
- Bourne Again Shell (bash)
- Z Shell (zsh)