2019年网易运维笔试题和面试题答案

2019年网易运维笔试题和面试题答案,第1张

第一部分:计算机科学基础

1,(2分)对于多关键字而言,那种文件组织方便而又高效()

A、顺序文件 B、倒排文件 C、散列文件 D、B+树索引文件

2,(2分)以下哪些算法可用于遍历网络图()

A、广度优先搜索 B、深度优先搜索 C、线性规划策略 D、决策树

3,(2分)我们使用一个6元组来表示6个节点的无向图的顶点数,请问以下哪些6元组是可能的组合()

A、<1,2,3,4,5,6>

B、<2,4,4,2,3,5>

C、<1,3,4,2,2,1>

D、<1,2,2,4,5,2>

4、(2分)以下关于可计算性的说法正确的是()

A、所有问题最终都可以抽象为一个计算模型,图灵机可以在一个有限的时间(虽然可能会占用非常久的时间)内完成计算:现代计算机的设计正是基于该理论。

B、存在部分问题,我们无法在有限时间内,给出解答:但是,所有问题都可以在有限时间内验证其解答的正确性。

C、Godel(哥德尔)第一定律指明不存在完备且相容的公理系统。

D、以上说法都不正确。

5、(2分)16进制数值C396和8进制数值64474的异或结果值(10进制)为()

A、43690 B、16660 C、60350 D、20375

6、(2分)以下经典的问题哪些属于NP问题()

A、图灵停机问题 B、排序 C、0,1背包问题 D、枚举有限集合的所有子集

7、(2分)存在以下字母串:AGDCCDDDGFBBFFGGDDDGGGEFFDDCCCDDDFGAAA现在需要对该串进行Huffman编码,那么字母F对应bit值(二进制格式为)()

A、10 B、11 C、110 D、101

9、(2分)进程管理如果设计不当将会导致“死锁”的产生,对待死锁,典型的银行家算法属于(1),而剥夺资源属于(2)的方法。

A、(1)=死锁预防,(2)=死锁避免

B、(1)=死锁预防,(2)=死锁解除

C、(1)=死锁避免,(2)=死锁预防

D、(1)=死锁避免,(2)=死锁解除

10、(2分)关于数据库索引,以下说法正确的是()

A、针对某些字段建立索引,能够有小减少相关数据库表的磁盘空间占用;

B、针对某些字段建立索引,能够有效的提升相关字段的读与写的效率;

C、常见数据库管理系统,通常使用hash表来存储索引;

D、数据库索引的存在,可能导致相关字段删除的效率降低; 1 2

最近正在找工作,面试了很多运维相关的岗位,基本都要求有k8s经验,虽然目前k8s基本趋于成熟化,但对于传统运维工作人员和刚毕业的学生来讲,这确实太过于复杂;但在面试中,面试官往往最喜欢问就是k8s相关技术问题,然而因为各种原因,我有近3年的运维工作空档期,于是乎我掌握的技术都太过时了;在面试碰壁中总结了关于k8s的面试问题,所以在这里提前为1000万要毕业的大学生做点力所能及的。

从业有11年多,也为公司招过不少人。现在的面试官与年龄无关,在选人上太注重这个人的面试成绩或者这个人的匹配度。其实往往忽略了人本身,技术是靠人做出来的,人本身才是最重要的。你有再光鲜华丽的履历,有再多的荣誉都不能改变本性,江山易改本性难移。技术差一点这个没什么,可以给时间,可以培养,但是态度、人品不行,再好的技术都没用,只会是团队中的绊脚石。在面试时,多用心观察对方的行为,思维,态度。

1人品 2态度 3技术思维

1核心组件或者说是基础组件,需要弄清有哪些,都是有什么作用。

2会挑一两个问其如何工作,如何实现。

核心组件:etcd、api、controller、scheduler、docker

核心组件:kubelet、docker、kube-proxy

1TCP三次握手的原理
2tcpdump的使用
3上一个运维项目的基本网络架构
4linux或者其他小型机系统(aix hp-ux)的网络配置
5基本网络命令ping nslookup telnet ssh scp等等的使用
基本上就上面这些吧,太深入的网络不太会问了,又不是网络运维。

面试 的目的是确定面试者如何处理他们所选择的研究领域的问题,以及他们如何批判性地思考问题。下面我给大家带来2021面试网络工程师的题目参考,希望能帮助到大家!

Java多线程 面试题 目

1、什么是线程

线程是 *** 作系统 能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。

2、线程和进程有什么区别

线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。每个线程都拥有单独的栈内存用来存储本地数据。

3、如何在Java中实现线程

两种方式:javalangThread 类的实例就是一个线程但是它需要调用javalangRunnable接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承javalangThread 类或者直接调用Runnable接口来重写run() 方法 实现线程。

4、Java 关键字volatile 与 synchronized 作用与区别

Volatile:

它所修饰的变量不保留拷贝,直接访问主内存中的。

在Java内存模型中,有main memory,每个线程也有自己的memory (例如寄存器)。为了性能,一个线程会在自己的memory中保持要访问的变量的副本。这样就会出现同一个变量在某个瞬间,在一个线程的memory中的值可能与另外一个线程memory中的值,或者main memory中的值不一致的情况。 一个变量声明为volatile,就意味着这个变量是随时会被其他线程修改的,因此不能将它cache在线程memory中。

synchronized:

当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。

一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。

二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。

三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有 其它 synchronized(this)同步代码块的访问将被阻塞。

四、当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。

五、以上规则对其它对象锁同样适用。

5、有哪些不同的线程生命周期

当我们在Java程序中新建一个线程时,它的状态是New。当我们调用线程的start()方法时,状态被改变为Runnable。线程调度器会为Runnable线程池中的线程分配CPU时间并且讲它们的状态改变为Running。其他的线程状态还有Waiting,Blocked 和Dead。

6、你对线程优先级的理解是什么

每一个线程都是有优先级的,一般来说,高优先级的线程在运行时会具有优先权,但这依赖于线程调度的实现,这个实现是和 *** 作系统相关的(OS dependent)。

我们可以定义线程的优先级,但是这并不能保证高优先级的线程会在低优先级的线程前执行。线程优先级是一个int变量(从1-10),1代表最低优先级,10代表最高优先级。

7、什么是死锁(Deadlock)如何分析和避免死锁

死锁是指两个以上的线程永远阻塞的情况,这种情况产生至少需要两个以上的线程和两个以上的资源。

分析死锁,我们需要查看Java应用程序的线程转储。我们需要找出那些状态为BLOCKED的线程和他们等待的资源。每个资源都有一个唯一的id,用这个id我们可以找出哪些线程已经拥有了它的对象锁。

避免嵌套锁,只在需要的地方使用锁和避免无限期等待是避免死锁的通常办法。

8、什么是线程安全Vector是一个线程安全类吗

如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。

一个线程安全的计数器类的同一个实例对象在被多个线程使用的情况下也不会出现计算失误。很显然你可以将集合类分成两组,线程安全和非线程安全的。Vector 是用同步方法来实现线程安全的, 而和它相似的ArrayList不是线程安全的。

9、Java中如何停止一个线程

Java提供了很丰富的API但没有为停止线程提供API。JDK 10本来有一些像stop(), suspend()和resume()的控制方法但是由于潜在的死锁威胁因此在后续的JDK版本中他们被弃用了,之后Java API的设计者就没有提供一个兼容且线程安全的方法来停止一个线程。

当run()或者 call()方法执行完的时候线程会自动结束,如果要手动结束一个线程,你可以用volatile 布尔变量来退出run()方法的循环或者是取消任务来中断线程。

10、什么是ThreadLocal

ThreadLocal用于创建线程的本地变量,我们知道一个对象的所有线程会共享它的全局变量,所以这些变量不是线程安全的,我们可以使用同步技术。但是当我们不想使用同步的时候,我们可以选择ThreadLocal变量。

每个线程都会拥有他们自己的Thread变量,它们可以使用get()set()方法去获取他们的默认值或者在线程内部改变他们的值。ThreadLocal实例通常是希望它们同线程状态关联起来是private static属性。

Kubernetes面试题汇总

1、什么是Kubernetes

Kubernetes是一个开源容器管理工具,负责容器部署,容器扩缩容以及负载平衡。作为Google的创意之作,它提供了出色的社区,并与所有云提供商合作。因此,我们可以说Kubernetes不是一个容器化平台,而是一个多容器管理解决方案。

2、Kubernetes与Docker有什么关系

众所周知,Docker提供容器的生命周期管理,Docker镜像构建运行时容器。但是,由于这些单独的容器必须通信,因此使用Kubernetes。因此,我们说Docker构建容器,这些容器通过Kubernetes相互通信。因此,可以使用Kubernetes手动关联和编排在多个主机上运行的容器。

3、什么是Container Orchestration

考虑一个应用程序有5-6个微服务的场景。现在,这些微服务被放在单独的容器中,但如果没有容器编排就无法进行通信。因此,由于编排意味着所有乐器在音乐中和谐共处,所以类似的容器编排意味着各个容器中的所有服务协同工作以满足单个服务器的需求。

4、Kubernetes如何简化容器化部署

由于典型应用程序将具有跨多个主机运行的容器集群,因此所有这些容器都需要相互通信。因此,要做到这一点,你需要一些能够负载平衡,扩展和监控容器的东西。由于Kubernetes与云无关并且可以在任何公共/私有提供商上运行,因此必须是您简化容器化部署的选择。

5、您对Kubernetes的集群了解多少

Kubernetes背后的基础是我们可以实施所需的状态管理,我的意思是我们可以提供特定配置的集群服务,并且集群服务将在基础架构中运行并运行该配置。

因此,正如您所看到的,部署文件将具有提供给集群服务所需的所有配置。现在,部署文件将被提供给API,然后由集群服务决定如何在环境中安排这些pod,并确保正确运行的pod数量。

因此,位于服务前面的API,工作节点和节点运行的Kubelet进程,共同构成了Kubernetes集群。

6、Kubernetes Architecture的不同组件有哪些

Kubernetes Architecture主要有两个组件 - 主节点和工作节点。如下图所示,master和worker节点中包含许多内置组件。主节点具有kube-controller-manager,kube-apiserver,kube-scheduler等。而工作节点具有在每个节点上运行的kubelet和kube-proxy。

7、您能否介绍一下Kubernetes中主节点的工作情况

Kubernetes master控制容器存在的节点和节点内部。现在,这些单独的容器包含在容器内部和每个容器内部,您可以根据配置和要求拥有不同数量的容器。

因此,如果必须部署pod,则可以使用用户界面或命令行界面部署它们。然后,在节点上调度这些pod,并根据资源需求,将pod分配给这些节点。kube-apiserver确保在Kubernetes节点和主组件之间建立通信。

8、kube-apiserver和kube-scheduler的作用是什么

kube -apiserver遵循横向扩展架构,是主节点控制面板的前端。这将公开Kubernetes主节点组件的所有API,并负责在Kubernetes节点和Kubernetes主组件之间建立通信。

kube-scheduler负责工作节点上工作负载的分配和管理。因此,它根据资源需求选择最合适的节点来运行未调度的pod,并跟踪资源利用率。它确保不在已满的节点上调度工作负载。

9、你对Kubernetes的负载均衡器有什么了解

负载均衡器是暴露服务的最常见和标准方式之一。根据工作环境使用两种类型的负载均衡器,即内部负载均衡器或外部负载均衡器。内部负载均衡器自动平衡负载并使用所需配置分配容器,而外部负载均衡器将流量从外部负载引导至后端容器。

10、Replica Set 和 Replication Controller之间有什么区别

Replica Set 和 Replication Controller几乎完全相同。它们都确保在任何给定时间运行指定数量的pod副本。不同之处在于复制pod使用的选择器。Replica Set使用基于集合的选择器,而Replication Controller使用基于权限的选择器。

Equity-Based选择器:这种类型的选择器允许按标签键和值进行过滤。因此,在外行术语中,基于Equity的选择器将仅查找与标签具有完全相同 短语 的pod。

示例:假设您的标签键表示app = nginx,那么,使用此选择器,您只能查找标签应用程序等于nginx的那些pod。

Selector-Based选择器:此类型的选择器允许根据一组值过滤键。因此,换句话说,基于Selector的选择器将查找已在集合中提及其标签的pod。

示例:假设您的标签键在(nginx,NPS,Apache)中显示应用程序。然后,使用此选择器,如果您的应用程序等于任何nginx,NPS或Apache,则选择器将其视为真实结果。

渗透攻击的测试步骤

1如果原始值为2,我们使用(1+1)或(3-1),程序作出相同回应,表明易受攻击

2如果单引号被过滤掉,我们可以用ASCII命令,使它返回字符的数字化代码,如51-ASCII(1)

3在URL编码中,&和=用于链接名称/值对,建立查询字符串应当分别使用%26和%3d进行编码

4如查询字符串不允许使用空格,使用+或%20编码

5分号被用于分割cookie自读,使用%3d编码


2021面试网络工程师的题目相关 文章 :

★ 关于网络工程师的面试题有哪些

★ 网络管理员面试题及答案大全

★ 最新的运维工程师面试题目整理

★ 网络测试工程师面试题及答案

★ 计算机网络面试题及参考答案

★ 网络工程师面试自我介绍范文五篇

★ 面试网络技术工程师的有哪些提问

★ 最新的it运维工程师面试题整理

公司会给你什么福利待遇,你在公司能学到什么,你在工作环境中能不能快乐?
从这几点:
首先,你的待遇问题,五险一金怎么上,有没有相应的补助,有没有年终奖,有没有加班,如果有,要怎么算;
如果你进了公司,负责什么职位,每天主要做什么工作,你的工作伙伴是谁,你的直属上司是谁;
既然让你提问了,一定要问些问题,问属于你自己利益的问题,这样面试你的人会觉的你对自己负责任,只有先对自己负责任,才可能对其他的工作或事情负责。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13402249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存