超详细!腾讯NLP算法岗面经(已offer)

2023-11-16

作者 | ZipZou

整理 | NewBeeNLP

面试锦囊之面经分享系列,持续更新中 

可以后台回复"面试"加入交流讨论组噢

写在前面

首先来段简单的自我介绍:2021届硕士,硕士期间未有实习经历,本科大三有过一次实习,小公司,可以忽略。本人投递的是腾讯暑期实习:技术研究-自然语言处理方向

腾讯校招开启的比较早,提前批在3.5号就已经开启了,我算是赶上了最早的那一批。本次的算法岗竞争同往年一样,也蛮激烈的,我亲眼看着,从投递最初NLP岗的投录比为3:1,面试时升到了4:1,最后完成流程后变为了5:1,NLP方向相对好些,CV、机器学习等竞争更大,CV 9:1,ML 10:1,听师兄描述,算法岗到后面会到20:1都可能,所以还是要趁早准备。

本人的面试流程大概如下,3月1日找的内推,收到完善简历的链接,在官网投了简历,当时选择的意向BG是WXG,3月2日上午收到HR小姐姐电话,说她们是PCG部门,问我面不面,我大概询问了PCG的主要业务,得知是社交类的业务居多,然后就拒绝了,说还是优先考虑面WXG那边,于是HR小姐姐便说帮我转投。

这点很诡异,官网的显示是,校招从3.5日开始提前批,但是实际上在这之前应该就开始筛简历并且面试了。

在腾讯,据说简历如果被捞了,如果同意面试简历就会被锁定,从简历池中提到面试的部门,这样其他的BG就看不到你的简历了,然后走官方流程,当时不知道,主要是考虑WXG当时更符合我的预期吧。

3月4日,再次收到HR电话,官网当时状态是未发起面试,这次是直接约面试时间,问我啥时候有空,约了3月6日(在此之前大致准备了下算法题,但是没有仔细准备,所以隔了两天,再充分准备下)。3月6日下午,参加了电话面试,3.9,查公众号状态进入复试。期间等待了一段时间,3.15日收到二面电话,并且是当天面试,于是当天晚上8点面试,到9点左右结束。第二天,官网流程变为HR面,17日下午收到面试邀请链接,约20.40的视频面试,20日状态更新为已完成。

一面(技术面)

一面个人感觉面的不是很好,虽然大部分问题答出来了,但是还是有不清晰的地方,而且有些问题没有答出来,甚至以为会挂,一面时间持续了大概有1小时2分钟。面试形式:电话面试。

  1. 简要的自我介绍。

自我介绍之前大致准备了下,就主要介绍个人情况,我主要是按照简历上的内容,大概介绍了下,时间在3分钟左右,但是个人感觉亮点不够突出,这点大家可以再发挥。

  1. 研究生阶段最有挑战的项目是什么?

我觉得这是我的一面面试官比较关注的点,这点聊了很久。因为我们组的主要方向是智能化软件测试,或者说智能软件工程,然后介绍了最近研究的一个项目。大概介绍了这个项目的动机,然后传统的一些研究方法,以及我们准备采用的一些方法(NLP相关)。

  1. 对于这个项目,传统的方法是怎么样的?

介绍了在软件测试领域大致的做法,主要是机器学习相关的内容了,即人工抽取的一些特征,已经使用的方法。

  1. 列举下这个任务在传统用法的一些典型特征。

我大概列举了几个,感觉这里的案例说的不是很清楚,因为那些工作主要不是我在做,我只是对这些工作有过一些了解。

  1. 看你简历里有QA相关的论文,大概介绍下里面用的方法。

主要介绍了这篇论文用的模型,以及方法,细节面试官没有深究。

  1. 你在这篇论文里用到的是GloVe,为何不用word2vec,或者说word2vec与GloVe有什么区别?

我大致说了下他们的区别:word2vec是NNLM的一个较为典型的代表,其利用了DNN的方法来训练获取到词向量,而且词向量是中间产物,这个思路最早是Bengio提出,Google Brain提出的word2vec让词向量火了起来。而GloVe是采用词频统计信息,利用一些数学方法逐步优化得来,它没有神经网络的结构,所以词向量训练的速度相对更快。(这里当时不记得具体的公式推导了,原论文我倒是看过,但是当时记得不清了,实际上GloVe是词共现矩阵+类SVD的方法)

  1. 你清楚word2vec吗,大致描述下word2vec的结构以及训练方法。

清楚(好刚的我,面完发现答的有瑕疵),从宏观上描述了DNN的一个结构,从输入(大致带过分词,词表构建,one-hot等过程),到隐层,到输出层。然后详细讲了两种训练结构,即CBoW和Skip-Gram,但是当时这两种方法被我说反了。(当时并无觉察)讲完两种训练方法后,大致介绍了下训练时候词表大小过大,输出层过大的优化方法,即:hierarchical softmax和negative sampling。

  1. 现阶段NLP的研究相对CV发展还是很缓慢,你认为是什么原因?

自然语言存在变化性,和不确定性,即语义的抽取对神经网络来说是很难的,在英文,人脑可以通过词形来建立词与词之间的关系,但是语义不确定性很强,比如歧义,一词多义,词序等等都会影响语义。而CV的特征相对固定,如图像处理,filter提取的特征一般是某种轮廓或边缘特征,这些特征对于特定的物体都是固定的,所以效果会更好。(说了很多废话,不清楚,其实总结就是感知智能和认知智能,感知智能很容易实现,即CV,而认知智能有很多挑战,即NLP)

  1. 你知道隐马尔可夫模型吗,大概介绍下。

当时HMM的具体理论在准备阶段就大致地看了下,面试官很nice,没有很为难,理论的不记得那来实践的,就接着这个问题,问了HMM的几个要素,即:初始概率,状态转移矩阵,发射矩阵,这三个要素,然后我主要讲了下这三个要素的运算过程,提及了一下维特比算法。(这里当时准备的不充分,说的不是特别清楚,后来我去恶补了一下)

  1. 维特比算法其实是一种动态规划算法,动态规划算法通常用来解决什么问题,在HMM里是怎么使用的?

大致描述了下动态规划的最优解问题,然后结合HMM的迭代过程说了一些。(后来仔细看了下,感觉面试官应该还是想听到HMM的理论,因为HMM推导会用到它里面的假设,然后得到递推关系,就可以分解为子问题,利用维特比算法求解)

  1. 快结束时,来道算法题吧,在一个敏感词过滤的场景下,要怎么在一个字符串里找出敏感词的位置?

当时懵了,没想出来,只说了一个暴力解。(面试官应该是想听到KMP一类的算法)

  1. 算法复杂度是多少?

大概算了下,面试官和蔼的说,没想到也没关系。他还曾循循善诱,从多个敏感词的词表简化到一个词,我对不起他。

  1. 你实习的时间实验室有没有什么要求,能实习吗?

没要求,当然能。(就这意思)

  1. 你还有什么问题要问我的吗?

咱们部门对实习生的预期目标是啥?面试官很和蔼地介绍了面试的BG是TEG,部门是AI产品部。大致介绍了下实习生的培养方式和考核方式。

工作期间的考核情况如何,比如周报、月报、日报这些频繁吗?面试官大概介绍了周会情况、周报情况,并说明疫情期间,线上工作,可能会要求写日报,方便查看工作进度之类,我表示理解。

时长:1h2min,结束,表示感谢,感谢不杀之恩!

二面(技术面)

二面也是技术,但是和初面不同的是,二面没有那么关注项目了(但是也是从项目开始问),比较注重理论层面。自初面结束之后,有一周时间的空档,我恶补了基础理论知识,首先是对初面的知识查漏补缺,再刷了剑指offer,捡起了李航《统计学习方法》,基本的机器学习算法以及推导。面试形式:电话面试。

个人发现,NLP岗位,很多面试官喜欢问:HMM、CRF、LDA这些知识。

  1. 看你的简历上,在做一个相似性评估的项目,大致介绍下。

介绍了下我的这个项目的模型,以及用的一些方法。

2. 了解,那么获取的词向量你是怎么获取的?

从word2vec中获取,然后作为模型的输入(讲了一些实验操作)。

  1. 你的词向量自己训练过吗?

我讲了很多废话。

  1. 你的词向量自己训练过吗?

没有。(面试官心态:早说不就完了)

  1. 你知道几种词向量的方法?

这里说的很详细,我带了一下传统的,如IDF、词袋、LDA,GloVe等偏统计方法,然后具体描述了NNLM下的模型:word2vec(和一面一样,介绍的比较详细),character level CNN Model(英文适用,中文不太适用);转向RNN结构:传统RNN将序列压缩至向量的过程,LSTM解决RNN长依赖模型,双向语言模型(BiLSTM);根据双向语言模型,导出了ELMo以及内部细节;主流热门的Transformer系列:Transformer内部细节详细讲了一下,然后转向GPT(Transformer Decoder,单向模型,和之前的双向模型做了个区分),详细说了一下,然后是BERT(Transformer Encoder,双向语言模型,和GPT的对比和ELMo的相同点,以及区别)详解。

安利本人译的一篇综述:综述:神经网络语言模型(译)[1] 如果觉得翻译不好的话,建议论文阅读原文[????????]。

  1. n元模型了解吗,如果共现频率为零怎么解决?

大致讲了下ngram与n阶马尔可夫。共现为0的解决方案有点忘记了,但是提了一下在GloVe中有提及这个情况的解决方案,但是我也忘记了。

  1. 你认为为什么BERT能达到这么好的效果?

我认为BERT的效果很大程度上取决于Transformer的一个Attention机制,即Self-Attention,正如原文标题《Attention is all you need》,注意力机制很好地找出了文本序列的语义相关度,在语义层面上,能够提取到更关键的特征,比如理解序列中的指示代词。其次是Transformer的结构优势,没有RNN的梯度消失问题,理论上支持任意长度的文本,用了position embedding(区别说明了下Transformer的三角函数和BERT的position embedding的不同)。

  1. 注意力机制你了解多少,或者说你了解哪几种?

注意力机制最初是在CV领域用的比较多,其次被应用到了NLP领域,并且取得了较好的效果。我主要研究NLP比较多,CV了解不深,所以只了解NLP的两种attention。最早的Attention是在seq2seq中提出(或者说Encoder-Decoder模型),讲了下这个模型注意力机制的细节,以及注意力获取的方式,文献名我忘记了,原始的论文应该是NMT相关场景。然后讲了BERT的Self-Attention细节,比如Q、K、V这些。

这里到BERT想要继续向后拓展的时候,被面试官打断了。

  1. LSTM你了解吗,它的大致结构是怎么样的?

大概描述了下它的三个门。

  1. 假设输入是 维,LSTM的参数量为多少?当时着急了,没怎么算出来,事后算了下,还挺简单的。

面试官:你下去可以再确认下。

  1. 正则化你用过吗,有哪些正则化方法?

用过,我了解的有L1、L2正则化,讲了很多废话。。。尝试讲L1、L2的细节的时候,被打断了。

  1. 还有其他的吗?

有,比如Dropout、Batch Normalization不知道算不算,但是它能达到正则化的效果。

  1. 文本相似性一般有哪几种度量方法?

之前项目里有过这个相似性的问题,我不知道面试官具体想要的点在哪,就先说了下VSM的基础知识,他又再次深入地问了下,可以用什么模型。

然后我大致说了下常用的方法,比如最简单的word2vec加权,然后用VSM,RNN得到固定维度的向量后,用VSM,以及这一系列的方法。然后补充说了,利用深度学习转化为二分类的问题的思路和方法,以及BERT中的使用,因为BERT是有做文本相似性任务的。深度学习之外,还有很多方法,比如主题模型、LDA之类的,我当时没想到,面试完后想到了。

  1. 序列标注做过吗?

没有。

  1. HMM和CRF有什么区别?

之前恶补了HMM的理论,详细讲了HMM,但是CRF只有大概了解,就没仔细说。HMM的2个假设,正向反向算法(递推式推导),EM算法,维特比算法。CRF打破了两个假设,所以效果更好。(说的比较大概,也和面试官说了这部分不是很了解,只知道个大概)

  1. 传统机器学习算法了解吗,比如XGBoost和SVM这些?

了解。

  1. 那你讲一下SVM吧。

讲了下SVM的推导:hard margin, soft margin, 几何距离、函数距离,最优化,拉格朗日乘子法,对偶问题,KKT条件,损失函数,惩罚系数等。

  1. 为什么SVM求解要求解他的对偶问题?

为了使原问题更好求解,因为原问题不好求解,引入对偶问题之后就更好求解了。面试官:哈哈哈,就是因为这个?好吧。其实,是因为对偶问题可以降低原问题的计算复杂度。

好了,结束,没让我问问题,当时是晚上8点开始面,面试官也忙,我表示感谢,他就匆匆挂电话了,时长:50 min。

三面(HR面)

HR面就不涉及技术了,主要是和HR各种聊,在这之前,看网上很多面经,都说HR面还是很多坑的,即有套路,但是好在面我的HR小哥哥比较真实,没有过分的套路我。面试形式:视频面试(腾讯会议)。

学校的基本情况,导师是谁,组里的研究方向是啥?根据我的研究方向,问了下我们的工作。有没有了解行业内你这个领域的一些工作,即你们组的研究方向的落地情况如何?聊基本情况,实习时间,毕业要求。家庭情况,籍贯、家里成员、父母工作。实习地点有没有什么规划?HR小哥哥开始介绍他们部门的业务情况,业务方向等等。你有没有什么问题?那么我这边也没有问题了,整个面试就算通过了,大概一周左右会有通知。(大概意思,算是口头offer) 致谢,结束,时长:20-30 min。

恕我直言,17号面完HR,忐忑无比,开始日常刷流程,直到20日晚才刷到已完成。开始牛客找组织,看有没有已完成,但是没收到offer的同学(没办法,太恐怖了,眼看着3:1到我结束面试,已经5:1了,慌张)。然后开始关注内部状态,⾮非常感谢⽜牛客⽹网的腾讯⼤大⽜牛们帮忙。经历5个⼯工作⽇日 后,内部状态变更更为:实习已录⽤。

小建议

技术岗,刷算法题!时间来不及就先剑指offer 66道,相对简单,多刷几遍,然后做leetcode。

算法岗,基础机器学习算法:SVM、Bayes、DT、Clustering、boosting(Adaboost、GBDT)、bagging(RF)、LR。

项目,一定要熟悉,不熟悉的就别往简历上写。说不清楚的会被喷的很惨,一定会被diss,甚至会质疑简历真实性。简历上写了的就要再次复盘,要了然于胸,不要忘记了然后讲不明白。

论文,要熟悉所在领域的一些经典论文模型,里面的细节也要清楚,最好读原文。

NLP的经典:HMM、CRF、LDA,我在很多次面试都碰到这些,重点圈出,个人遭遇,视情况准备吧。

HR套路,虽然面我的HR没怎么套路我,但是HR毕竟还是要尽量选择稳定的人,所以HR面还是要长心眼,对某些敏感问题的态度要坚决,宗旨:我爱XX公司,我一定去,工作地点不挑,实习时间能满足。

预祝各位能够斩获理想offer,加油!

本文参考资料

[1]

综述:神经网络语言模型(译): https://zhuanlan.zhihu.com/p/109564205

END -


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

超详细!腾讯NLP算法岗面经(已offer) 的相关文章

  • Bash 序列表达式(范围)

    在本文中 我们将介绍 Bash 中序列表达式的基础知识 Bash 序列表达式通过定义范围的起点和终点来生成整数或字符范围 一般与以下组合使用for loops Bash 序列表达式 序列表达式采用以下形式 START END INCREME
  • 如何使用 psql 列出 PostgreSQL 数据库和表

    给药时PostgreSQL在数据库服务器中 您可能执行的最常见任务之一是列出数据库及其表 PostgreSQL 附带了一个交互式工具 称为psql 它允许您连接到服务器并对其运行查询 使用时psql您还可以利用它的元命令 这些命令对于脚本编
  • Linux 中的 Gunzip 命令

    Gunzip 是一个用于解压缩 Gzip 文件的命令行工具 Gzip 是最流行的压缩算法之一 它可以减小文件大小并保留原始文件模式 所有权和时间戳 按照惯例 使用 Gzip 压缩的文件要么是 gz or z扩大 在本教程中 我们将解释如何使
  • 如何在 CentOS 7 上安装和配置 Squid 代理

    Squid 是一个功能齐全的缓存代理 支持流行的网络协议 如 HTTP HTTPS FTP 等 将 Squid 放置在 Web 服务器前面可以通过缓存重复请求 过滤 Web 流量和访问地理限制内容来极大地提高服务器性能 本教程介绍如何在 C
  • 如何在 Ubuntu 18.04 上安装 Gitea

    Gitea 是一个用 Go 编写的自托管开源 git 服务器 它是一个叉子Gogs Gitea 包括存储库文件编辑器 项目问题跟踪 用户管理 通知 内置 wiki 等等 Gitea是一个轻量级应用程序 可以安装在低功耗系统上 如果您正在寻找
  • 如何在 Ubuntu 20.04 上添加和删除用户

    配置新 Ubuntu 系统时的首要任务之一是添加和删除用户 每个用户可以对各种命令行和 GUI 应用程序拥有不同的权限级别和特定设置 本文介绍如何在 Ubuntu 18 04 上添加和删除用户帐户 在你开始之前 仅 root 或具有 sud
  • 如何在 Raspberry Pi 上安装 Plex 媒体服务器

    Raspberry Pi 可用于许多不同的项目 Raspberry Pi 最受欢迎的用例之一是将 Raspberry Pi 变成家庭媒体中心 Plex 是一款流行的流媒体服务器 可让您组织视频 音乐和照片收藏 并将它们随时随地流式传输到您的
  • 如何在 Ubuntu 18.04 上安装 Node.js 和 npm

    Node js 是一个开源跨平台 JavaScript 运行时环境 允许服务器端执行 JavaScript 代码 这意味着您可以在计算机上将 JavaScript 代码作为独立应用程序运行 无需使用任何 Web 浏览器 Node js 主要
  • 如何在 CentOS 7 上部署 Mattermost

    Mattermost 是一个开源即时通讯平台 是一个自托管的 Slack 替代品 它是用 Golang 和 React 编写的 可以使用 MySQL 或 PostgreSQL 作为数据库后端 Mattermost 将您的所有团队沟通集中到一
  • 如何在 CentOS 7 上安装 Plex 媒体服务器

    Plex 是一款流媒体服务器 可将您所有的视频 音乐和照片收藏集中在一起 并随时随地将它们流式传输到您的设备 在本教程中 我们将向您展示如何安装和配置Plex 媒体服务器在 CentOS 7 上 先决条件 在继续本教程之前 请确保您以以下身
  • Linux 中的 df 命令(检查磁盘空间)

    我的硬盘还剩多少空间 是否有足够的可用磁盘空间来下载大文件或安装新应用程序 在 Linux 和 Unix 操作系统上 您可以使用df命令获取有关系统磁盘空间使用情况的详细报告 使用 df 命令 的一般语法为df命令如下 df OPTIONS
  • 如何在 CentOS 8 上安装 Node.js 和 npm

    Node js 是一个基于 Chrome JavaScript 构建的跨平台 JavaScript 运行时环境 旨在在服务器端执行 JavaScript 代码 使用 Node js 您可以构建可扩展的网络应用程序 npm 是 Node Pa
  • 如何在 Debian 9 上安装 Webmin

    Webmin是一个用于管理 Linux 服务器的开源 Web 控制面板 使用 Webmin 您可以管理系统用户 组 磁盘配额以及配置最流行的服务 包括 Web ssh ftp 电子邮件和数据库服务器 本教程介绍如何在 Debian Linu
  • 如何在 Debian 11 上为专用连接设置 Squid 代理

    介绍 代理服务器是一种服务器应用程序 充当最终用户和互联网资源之间的网关 通过代理服务器 最终用户能够出于多种目的控制和监视其 Web 流量 包括隐私 安全和缓存 例如 您可以使用代理服务器从与您自己的 IP 地址不同的 IP 地址发出 W
  • 如何在 Ubuntu 16.04 上安装 MySQL

    介绍 MySQL是一个开源数据库管理系统 通常作为流行的一部分安装LAMP Linux Apache MySQL PHP Python Perl 堆栈 它使用关系数据库和 SQL 结构化查询语言 来管理其数据 简短版本的安装很简单 更新您的
  • Java IO 教程

    Java提供了几个类java io用于处理文本 流数据和文件系统的包 我最近提供了几个有关 Java 文件和 Java IO 的示例 这篇文章是所有 Java IO 文章的索引 Java IO 如何在 Java 中创建新文件在这篇文章中 您
  • Java Stream Collect() 方法示例

    Java Streamcollect 对流的元素执行可变归约操作 这是终端操作 什么是可变约简操作 可变归约操作处理流元素 然后将其累积到可变结果容器中 处理元素后 组合函数将合并所有结果容器以创建结果 Java Stream Collec
  • 快速初始化()

    在本 Swift 教程中 我们将讨论一个重要的概念 即 Swift init 或 Swift 初始化 初始化是当我们创建某种类型的实例时发生的事情 快速初始化 初始化是准备类 结构或枚举的实例以供使用的过程 此过程涉及为该实例上的每个存储属
  • 如何在 Debian Wheezy 上使用 Postfix 安装和配置 DKIM

    介绍 对于大多数邮件服务器管理员来说 被错误地标记为垃圾邮件发送者所带来的挫败感并不奇怪 通过排除服务器受损的可能性 错误标记通常是由以下原因之一引起的 该服务器是一个开放的邮件中继 发件人或服务器的 IP 地址已列入黑名单 服务器没有完全
  • Linux/Unix 中的 AWK 命令

    AWK 适用于模式搜索和处理 该脚本运行以搜索一个或多个文件以识别匹配模式以及所述模式是否执行特定任务 在本指南中 我们将了解 AWK Linux 命令并了解它的功能 AWK 可以执行哪些操作 逐行扫描文件 将每个输入行拆分为字段 将输入行

随机推荐

  • 如何在 Python 中将字符串转换为日期时间或时间对象

    介绍 蟒蛇datetime and time模块均包括strptime 将字符串转换为对象的类方法 在本文中 您将使用strptime 将字符串转换为datetime and struct time 对象 将字符串转换为datetime对象
  • 如何在 Ubuntu 18.04 上使用 Python 3 设置 Jupyter Notebook

    介绍 Jupyter笔记本是一个开源 Web 应用程序 可让您创建和共享交互式代码 可视化等 该工具可与多种编程语言一起使用 包括 Python Julia R Haskell 和 Ruby 它通常用于处理数据 统计建模和机器学习 本教程将
  • 了解 Vue.js 生命周期挂钩

    介绍 生命周期挂钩是了解您正在使用的库如何在幕后工作的窗口 生命周期钩子允许您知道组件何时被创建 添加到 DOM 更新或销毁 本文将向您介绍 Vue js 中的创建 安装 更新和销毁钩子 先决条件 要完成本教程 您需要 熟悉 Vue js
  • Java 单例类中的线程安全

    Singleton 是最广泛使用的创建型设计模式之一 用于限制应用程序创建的对象 如果是在多线程环境中使用 那么单例类的线程安全性就非常重要 在现实应用程序中 数据库连接或企业信息系统 EIS 等资源是有限的 应明智地使用以避免任何资源紧缩
  • Fail2Ban 如何保护 Linux 服务器上的服务

    介绍 SSH 是连接云服务器的事实上的方法 它耐用且可扩展 随着新的加密标准的开发 它们可用于生成新的 SSH 密钥 确保核心协议保持安全 然而 没有任何协议或软件堆栈是完全万无一失的 SSH 在互联网上如此广泛的部署意味着它代表了一种非常
  • 如何在运行 Ubuntu 的 VPS 上安装和使用 Composer

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • 如何在 Rocky Linux 9 上安装 Node.js

    介绍 Node js是用于服务器端编程的 JavaScript 运行时 它允许开发人员使用 JavaScript 创建可扩展的后端功能 这是许多人在基于浏览器的 Web 开发中已经熟悉的语言 在本指南中 您将了解在 Rocky Linux
  • Java 堆空间与堆栈 - Java 中的内存分配

    不久前我写了几篇关于Java 垃圾收集 and Java 是按值传递 之后我收到了很多电子邮件来解释Java堆空间 Java堆栈内存 Java中的内存分配它们之间有什么区别 您会在 Java Java EE 书籍和教程中看到很多对堆和堆栈内
  • Spring WebFlux - Spring 响应式编程

    Spring WebFlux是Spring 5中引入的新模块 Spring WebFlux是Spring框架中向反应式编程模型迈出的第一步 Spring 响应式编程 如果您是反应式编程模型的新手 那么我强烈建议您阅读以下文章来了解反应式编程
  • 如何在 Ubuntu 16.04 上设置 Apache 虚拟主机

    介绍 Apache Web 服务器是在互联网上提供 Web 内容的最流行的方式 它占互联网上所有活跃网站的一半以上 并且非常强大和灵活 Apache 将其功能和组件分解为可以独立定制和配置的单独单元 描述单个站点或域的基本单位称为virtu
  • Android 倒计时器示例

    在这个 android 倒数计时器示例中 我们将实现一个计时器对象来显示进度进度条 我们将在本教程中构建的应用程序是测验应用程序中的一个有用组件 其中以图形方式显示完成该级别的剩余时间 以增强用户体验 Android 倒计时器 Androi
  • 如何在 Ubuntu 18.04 上设置私有 Docker 注册表

    作者选择了阿帕奇软件基金会接受捐赠作为为捐款而写程序 介绍 Docker 注册表是一个管理存储和交付 Docker 容器镜像的应用程序 注册表集中容器映像并减少开发人员的构建时间 Docker 镜像通过虚拟化保证相同的运行时环境 但构建镜像
  • C 编程中的 fgets() 和 gets()

    介绍 我们都熟悉scanf 功能 它是适用于获取基本用户输入的主要功能 虽然scanf 在接受诸如以下输入时效果很好整数 字符 浮点数等等 在获取包含空格的字符串输入时 它肯定会落后 让我们看一个例子 include
  • Spring Bean 范围

    Spring Bean Scopes 允许我们更精细地控制 bean 实例的创建 有时我们希望将 bean 实例创建为单例 但在其他一些情况下 我们可能希望在每次请求时或在会话中创建一次 Spring Bean 范围 有五种类型春豆 sco
  • 如何在 Ubuntu 20.04 上安装和使用 Docker

    介绍 Docker是一个应用程序 可简化管理应用程序进程的过程容器 容器允许您在资源隔离的进程中运行应用程序 它们与虚拟机类似 但容器更便携 更资源友好 并且更依赖于主机操作系统 有关 Docker 容器的不同组件的详细介绍 请查看Dock
  • 针对Spring/Gradle启动失败的一些通用解决方案

    文章目录 0 前言 1 更改Gradle JVM的Java JDK 1 1 执行JUnit测试时 Gradle报错 0 前言 当你对Spring Gradle启动失败的错误信息一筹莫展时 不妨试试以下这些通用的解决方案 1 更改Gradle
  • SpringBoot在普通类获取Service或者DAO

    1手动创建工具类 package com lhw locktest util import org springframework beans BeansException import org springframework contex
  • 编程每日一题_C程序设计_零钱兑换

    描述 来源 MOOC C语言程序设计 浙江大学 翁老师 有改编 给定人民币整元数值 如1元 5元 10元 100元 将该币值的钱全部兑换为零钱 一角 两角 五角 且每次兑换每种面值的零钱均出现 请给出兑换方案 输出一种兑换方案 代码1 in
  • 设计模式---抽象工厂(AbstractFactory)模式

    1 名词解释 产品等级 指产品的类型一样 品牌不一样 例如空调是一种产品类型 美的空调与格力空调是不同的品牌 产品族 同一个品牌的不同产品 例如美的的空调 电饭锅 热水器属于同一产品族 这里引用一个图片来具体说明这两个名词解释 来自引用2
  • 超详细!腾讯NLP算法岗面经(已offer)

    作者 ZipZou 整理 NewBeeNLP 面试锦囊之面经分享系列 持续更新中 可以后台回复 面试 加入交流讨论组噢 写在前面 首先来段简单的自我介绍 2021届硕士 硕士期间未有实习经历 本科大三有过一次实习 小公司 可以忽略 本人投递