加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 运营中心 > 交互 > 正文

知名互联网公司校招 Java 开发岗面试知识点解析

发布时间:2021-01-01 10:20:31 所属栏目:交互 来源:网络整理
导读:天之道,损有余而补不足,是故虚胜实,不足胜有余。 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向。在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点。 主要包括以下几个部分: Java 基础知识点 Java 常见集合 高并发编程(JU

关于 MyBatis 主要考察占位符#和 $ 的区别,区别如下:

  1. 符号将传入的数据都当做一个字符串,会对自动传入的数据加一个双引号;
  2. $ 符号将传入的数据直接显示生成 SQL 中;
  3. 符号存在预编译的过程,,对问号赋值,防止 SQL 注入;
  4. $ 符号是直译的方式,一般用在 order by ${列名}语句中;
  5. 能用#号就不要用 $ 符号。
小结:限于作者水平,MVC 框架方面了解不是太多,实战能力欠缺。面试官偶尔问框架底层实现原理等都知之甚少,有能力的小伙伴可以多加学习。

(九)大数据相关知识点

大数据相关是因为我的简历上写了 KafKa 相关项目,所以面试官会进行提问 KafKa 相关知识点,我也进行了一些简单概念总结,深层次的实现原理因为并没有特别多的实战经验,所以并不了解。

以下概念总结供小伙伴参考。

1)KafKa 基本特性:

答:快速持久化、支持批量读写消息、支持消息分区,提高了并发能力、支持在线增加分区、支持为每个分区创建多个副本。

扩展:为什么可以实现快速持久化?

答:KafKa 将消息保存在磁盘中,并且读写磁盘的方式是顺序读写,避免了随机读写磁盘(寻道时间过长)导致的性能瓶颈;磁盘的顺序读写速度超过内存随机读写。

2)核心概念:

答:

  • 生产者(Producer): 生产消息,并且按照一定的规则推送到 Topic 的分区中。
  • 消费者(Consumer): 从 Topic 中拉去消息,并且进行消费。
  • 主题(Topic): 用于存储消息的逻辑概念,是一个消息集合。
  • 分区(partition):
  1. 每个 Topic 可以划分为多个分区,每个消息在分区中都会有一个唯一编号 offset
  2. kafka 通过 offset 保证消息在分区中的顺序
  3. 同一 Topic 的不同分区可以分配在不同的 Broker 上
  4. partition 以文件的形式存储在文件系统中。

副本(replica):

  1. KafKa 对消息进行了冗余备份,每个分区有多个副本,每个副本中包含的消息是 “一样” 的。
  2. 每个副本中都会选举出一个 Leader 副本,其余为 Follower 副本,Follower 副本仅仅将数据从 Leader 副本拉去到本地,然后同步到自己的 Log 中。

消费者组(Consumer Group): 每个 consumer 都属于一个 consumer group,每条消息只能被 consumer group 中的一个 Consumer 消费,但可以被多个 consumer group 消费。

Broker:

  1. 一个单独的 server 就是一个 Broker;
  2. 主要工作:接收生产者发过来的消息,分配 offset,并且保存到磁盘中;

Cluster&Controller:

  1. 多个 Broker 可以组成一个 Cluster,每个集群选举一个 Broker 来作为 Controller,充当指挥中心
  2. Controller 负责管理分区的状态,管理每个分区的副本状态,监听 ZooKeeper 中数据的变化等工作

保留策略和日志压缩:

  1. 不管消费者是否已经消费了消息,KafKa 都会一直保存这些消息(持久化到磁盘);
  2. 通过保留策略,定时删除陈旧的消息;
  3. 日志压缩,只保留最新的 Key-Value 对。

关于副本机制:(加分点)

ISR 集合 :表示当前 “可用” 且消息量与 Leader 相差不多的副本集合。满足条件如下:

  1. 副本所在节点必须维持着与 ZooKeeper 的连接;
  2. 副本最后一条信息的 offset 与 Leader 副本的最后一条消息的 offset 之间的差值不能超过指定的阈值。

HW&LEO:

  1. HW 标记了一个特殊的 offset,当消费者处理消息的时候,只能拉取到 HW 之前的消息;
  2. HW 也是由 Leader 副本管理的;
  3. LEO(Log End Offset)是所有副本都会有的一个 offset 标记。

ISR、HW 和 LEO 的工作配合:

  1. producer 向此分区中推送消息;
  2. Leader 副本将消息追加到 Log 中,并且递增其 LEO;
  3. Follower 副本从 Leader 副本中拉取消息进行同步;
  4. Follower 副本将消息更新到本地 Log 中,并且递增其 LEO;
  5. 当 ISR 集合中的所有副本都完成了对 offset 的消息同步,Leader 副本会递增其 HW

KafKa 的容灾机制: 通过分区的副本 Leader 副本和 Follower 副本来提高容灾能力。

小结:请小伙伴根据自己的简历自行准备学习大数据相关知识点。

(十)Linux 常见命令

作者对这一方面不是很精通,知识点来源于网络总结以及面试官的提问,仅供小伙伴参考。

1)grep、sed 以及 awk 命令

解析:awk 命令如果可以掌握,是面试中的一个 加分点。

2)文件和目录:

pwd 显示当前目录

ls 显示当前目录下的文件和目录:

  1. ls -F 可以区分文件和目录;
  2. ls -a 可以把隐藏文件和普通文件一起显示出来;
  3. ls -R 可以递归显示子目录中的文件和目录;
  4. ls -l 显示长列表;
  5. ls -l test 过滤器,查看某个特定文件信息。可以只查看 test 文件的信息。

3)处理文件方面的命令有:touch、cp、 In、mv、rm、

4)处理目录方面的命令:mkdir

5)查看文件内容:file、cat、more、less、tail、head

6)监测程序命令:ps、top

eg. 找出进程名中包括 java 的所有进程:ps -ef | grep java

top 命令 实时监测进程

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读