杰弗里·辛顿:深度学习教父

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》
创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)

杰弗里·辛顿:当坚持遇见突破,AI迎来新纪元

一、人物简介

杰弗里·埃弗雷斯特·辛顿Geoffrey Everest Hinton),1947年12月6日出生于英国伦敦,是一位享誉世界的英国-加拿大双重国籍的认知心理学家和计算机科学家,被誉为"深度学习之父"或"人工智能教父"。

作为人工神经网络和深度学习领域的开创性人物,辛顿的研究成果彻底改变了人工智能领域,推动了语音识别、图像分类和自然语言处理等技术的革命性发展。

在这里插入图片描述
图片:杰弗里·辛顿

辛顿出生于一个学术氛围浓厚的家庭,他的父亲霍华德·埃弗雷斯特·辛顿(Howard Everest Hinton)是一位杰出的昆虫学家,他的三个兄弟姐妹也都从事学术研究工作。这样的家庭背景为他后来的学术生涯奠定了坚实基础。

辛顿性格坚毅,学术道路上充满曲折但从不放弃自己的信念。他曾表示自己在研究生阶段经历了"风暴般的职业生涯",每周都会与导师发生激烈争论。他常常以"再给我六个月时间来证明神经网络的有效性"为由,坚持自己的研究方向。这种坚持不懈的精神使他最终取得了突破性的成就,尽管在早期他的研究被学术界广泛质疑。

二、学术背景

1. 早期教育与学术探索

辛顿的学术道路充满了变数和探索。他在剑桥大学期间曾多次转换学习领域,先后学习过自然科学、艺术史和哲学,最终在1970年获得了实验心理学学士学位。这种跨学科的学习经历为他后来的跨界研究奠定了基础。辛顿在本科阶段就对大脑神经网络的运作方式产生了浓厚的兴趣,这种兴趣后来塑造了他在人工智能领域的开创性工作。他的本科论文专注于视觉感知,为他日后在神经网络和深度学习方面的研究奠定了基础。

辛顿曾表示:"我一直深信,让人工智能工作的唯一方法是以类似人脑的方式进行计算。这是我一直追求的目标。我们正在取得进展,尽管我们仍然需要了解更多关于大脑实际工作原理的知识。"这种信念贯穿了他的整个研究生涯。

2. 学术历程

辛顿的学术经历可以概括为以下几个重要阶段:

  • 1970年:在剑桥大学获得实验心理学学士学位
  • 1978年:在爱丁堡大学获得人工智能博士学位,导师是克里斯托弗·朗格-希金斯(Christopher Longuet-Higgins)
  • 之后:曾在苏塞克斯大学、加州大学圣地亚哥分校和卡内基梅隆大学工作
  • 1987年:加入加拿大多伦多大学,并成为加拿大高级研究院(CIFAR)的研究员
  • 1998-2001年:在伦敦大学学院创建并领导了盖茨比计算神经科学部门
  • 2001年:回到多伦多大学继续进行神经网络模型的研究
  • 2004-2013年:担任加拿大高级研究院"神经计算与适应性感知"项目负责人
  • 2012年:在教育平台Coursera上提供免费的神经网络在线课程
  • 2013-2023年:在谷歌大脑团队担任副总裁和工程研究员,同时在多伦多大学任教
  • 2017年:共同创立并担任多伦多向量研究所(Vector Institute)的首席科学顾问
  • 2023年5月:宣布辞去谷歌职务,以便能够自由地谈论AI的风险

3. 学术挑战与坚持

辛顿的学术道路并非一帆风顺。在他早期的研究生涯中,神经网络研究被学术界广泛质疑。他在英国难以获得研究资金支持,这也是他前往美国工作的原因之一。尽管面临这些挑战,辛顿依然坚持自己的研究方向,最终证明了神经网络和深度学习的巨大价值。

辛顿对学术研究的热情和坚持不懈的精神体现在他的一句名言中:“从长远来看,由好奇心驱动的研究效果更好…真正的突破来自于人们专注于他们感兴趣的事物。

三、重大贡献

1. 反向传播算法(Backpropagation)

辛顿与大卫·鲁梅尔哈特(David E. Rumelhart)和罗纳德·威廉姆斯(Ronald J. Williams)共同推广了反向传播算法在神经网络训练中的应用。这一算法使神经网络能够通过调整内部权重来学习,是深度学习的核心基础之一。

在这里插入图片描述

反向传播算法的工作原理是通过计算网络输出与期望输出之间的误差,然后将这个误差沿着网络反向传播,逐层调整权重,从而不断优化网络性能。

在这里插入图片描述

值得注意的是,尽管辛顿等人的1986年论文广泛推广了这一算法,但他们并不是最早提出这一方法的研究者。实际上,反向传播是自动微分的一个特例,最早由芬兰数学家塞波·林纳因马(Seppo Linnainmaa)在1970年提出,而保罗·韦尔博斯(Paul Werbos)在1974年首次提议将其用于训练神经网络。辛顿自己也承认:“大卫·E·鲁梅尔哈特提出了反向传播的基本思想,所以这是他的发明。”

2. 玻尔兹曼机(Boltzmann Machine)

1985年辛顿与大卫·阿克利(David Ackley)和特里·塞诺夫斯基(Terry Sejnowski)共同发明了玻尔兹曼机,这是一种基于物理学中的玻尔兹曼分布的随机递归神经网络。玻尔兹曼机由一组神经元单元组成,这些单元可以做出随机决策(开或关)。每个单元都与其他单元有双向连接,权重是固定的,且存在对称性(即wij = wji)。

在这里插入图片描述

玻尔兹曼机的主要目标是最大化"共识函数"(Consensus Function),这一函数可以表示为:

C F = ∑ i ∑ j ⩽ i w i j u i u j CF\:=\:\displaystyle\sum\limits_{i} \displaystyle\sum\limits_{j\leqslant i} w_{ij}u_{i}u_{j} CF=ijiwijuiuj

玻尔兹曼机可以学习数据集中的概率分布,适用于降维、分类、回归、协同过滤、特征学习和主题建模等任务。这一发明对图像分类和创建等领域产生了重要影响。这一工作也是他2024年获得诺贝尔物理学奖的主要贡献。

3. 受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)

辛顿对玻尔兹曼机进行了改进,提出了受限玻尔兹曼机(RBM)。在RBM中,神经元被分为可见层和隐藏层,且只有不同层之间的神经元才能相互连接,同一层内的神经元之间没有连接。这一限制使得学习算法更加高效,能够应用于实际问题。RBM被广泛应用于无监督学习和预训练深度神经网络。

4. 深度信念网络(Deep Belief Network)

辛顿在2006年提出的深度信念网络是深度学习领域的重要突破,它解决了深层神经网络训练中的困难问题,为后来的深度学习浪潮铺平了道路。深度信念网络通过堆叠多个RBM并使用一种称为"贪婪逐层预训练"的方法来训练,这使得深层网络的训练变得可行。

在这里插入图片描述

5. AlexNet

2012年,辛顿与他的两位研究生亚历克斯·克里热夫斯基(Alex Krizhevsky)和伊利亚·苏茨科维尔(Ilya Sutskever)开发了一个八层神经网络程序,命名为AlexNet,用于识别ImageNet(一个大型在线图像数据集)上的图像。AlexNet的表现比下一个最准确的程序高出40%以上。这一成就被视为深度学习革命的开端,标志着深度学习从学术研究走向实际应用的重要转折点。

6. 胶囊网络(Capsule Networks)

2017年,辛顿与谷歌大脑的两位同事萨拉·萨布尔(Sara Sabour)和尼古拉斯·弗罗斯特(Nicholas Frosst)发表了论文《胶囊之间的动态路由》(Dynamic Routing Between Capsules),提出了胶囊网络的概念。传统的卷积神经网络在识别不同方向或位置的同一对象时存在困难,而胶囊网络旨在通过编码对象的空间信息来克服这一限制。

辛顿希望通过胶囊网络最终赋予机器与人类相同的三维视角——让它们在只从一个角度学习咖啡杯的样子后,能够从任何角度识别咖啡杯。这代表了辛顿对计算机视觉发展的新思路。

7. 前向-前向算法(Forward-Forward Algorithm)

2022年,辛顿在神经信息处理系统会议(NeurIPS)上介绍了一种新的神经网络学习算法,称为"前向-前向"算法(Forward-Forward Algorithm)。这是他对神经网络训练方法的又一创新尝试。

8. 其他贡献

辛顿对神经网络研究的其他贡献包括分布式表示(Distributed Representations)、时延神经网络(Time Delay Neural Network)、专家混合(Mixtures of Experts)、Helmholtz机(Helmholtz Machines)和专家产品(Product of Experts)等。2007年,他合著了一篇关于无监督学习的论文《图像变换的无监督学习》(Unsupervised learning of image transformations)。2008年,他与劳伦斯·范德马滕(Laurens van der Maaten)共同开发了可视化方法t-SNE,这一方法被广泛应用于高维数据的可视化。这些工作极大地推动了人工智能领域的发展。

四、学术思想与影响

在这里插入图片描述

1. 神经网络与类脑计算的哲学

辛顿的研究哲学始终围绕着一个核心信念:模仿人脑是实现人工智能的唯一途径。他曾明确表示:"我一直深信,让人工智能工作的唯一方法是以类似人脑的方式进行计算。"这一理念贯穿他的整个研究生涯,引导他在神经网络研究中不断探索。

在辛顿看来,人工智能研究有两条主要路线:一条基于逻辑,试图让计算机像人类一样推理;另一条基于生物学,试图让计算机像动物一样感知、行动和适应。辛顿选择了后者,这也是深度学习的基本理念。

辛顿对传统神经网络也持有批判态度,他认为:"卷积神经网络中使用的池化操作是一个巨大的错误,而它工作得如此之好是一场灾难。"这表明他始终在思考如何改进现有技术,而不是固守已有成果。

2. 深度学习革命的启动者

辛顿认为:"大型语言模型、图像生成和蛋白质结构预测方面的惊人进展表明,深度学习革命才刚刚开始。"他的工作奠定了现代人工智能的基础,推动了语音识别、计算机视觉和自然语言处理等多个领域的快速发展。

辛顿的工作彻底改变了AI研究的范式。在他的贡献之前,符号主义和基于规则的系统在AI研究中占主导地位。而他的神经网络和深度学习方法提供了一种全新的思路,让机器能够从数据中学习,而不必显式编程规则。这一转变使得AI能够处理之前被认为难以用传统编程方法解决的问题,如图像和语音识别、自然语言理解等。

3. 学术传承与人才培养

除了直接对人工智能研究的贡献外,辛顿通过教育者和导师的角色对该领域产生了重大影响。他的许多学生和博士后研究员已成为人工智能领域的领军研究人员,进一步扩大了他的影响力。

他在多伦多大学和谷歌的工作培养了一代又一代的AI研究人才。他的两位著名学生亚历克斯·克里热夫斯基(Alex Krizhevsky)和伊利亚·苏茨科维尔(Ilya Sutskever)分别成为了AI领域的重要人物,后者现在是OpenAI的联合创始人和首席科学家。辛顿还在2012年在Coursera平台上提供免费的神经网络在线课程,使得深度学习知识能够惠及全球学习者。

在这里插入图片描述

4. 学术合作与"深度学习三巨头"

辛顿与约书亚·本吉奥(Yoshua Bengio)和扬·勒坤(Yann LeCun)一起被称为"深度学习三巨头"。三人在2018年共同获得图灵奖,这反映了他们在深度学习领域的共同贡献和合作关系。三人都是加拿大高级研究院"机器与大脑学习"项目的成员,共同推动了深度学习的发展。

5. 工业应用与技术转化

辛顿的研究成果已经被广泛应用于工业界,对多个领域产生了革命性影响:

  • 语音识别系统:谷歌的语音识别系统使用了基于辛顿研究的深度学习技术,大幅提高了识别准确率
  • 图像识别技术:辛顿的AlexNet开创了深度学习在计算机视觉中的应用,现在的人脸识别、物体检测等技术都受益于此
  • 自然语言处理:大型语言模型如GPT系列的基础也可以追溯到辛顿的深度学习研究
  • 医疗诊断:辛顿曾表示:“AI在理解医学图像方面已经与放射科医生相当”,这为医疗领域带来了革命性变化
  • 自动驾驶汽车:自动驾驶技术大量使用深度学习算法处理视觉信息和决策
  • 药物设计:AI在药物发现和设计中的应用也得益于深度学习方法

6. 创业与产业化

辛顿不仅是学术研究者,也积极参与技术产业化。2012年,他与两位研究生成立了DNNresearch公司,专注于深度神经网络技术。2013年,谷歌以4400万美元收购了这家公司,辛顿也加入了谷歌大脑团队2017年,他共同创立了多伦多向量研究所(Vector Institute),促进AI技术与产业的结合。

这些努力将学术研究成果转化为实际应用,加速了深度学习在产业界的落地,使得这一技术能够在更广泛的领域产生影响。

五、荣誉与奖项

辛顿因其在人工智能和深度学习领域的开创性贡献,获得了众多国际性奖项和荣誉:

1. 诺贝尔物理学奖(2024年)

2024年,辛顿与约翰·霍普菲尔德(John Hopfield)共同获得诺贝尔物理学奖,以表彰他们 “为使用人工神经网络的机器学习奠定的基础性发现和发明” 。

在这里插入图片描述

2. 图灵奖(2018年)

2018年,辛顿与约书亚·本吉奥(Yoshua Bengio)和 杨立昆(Yann LeCun)共同获得被称为"计算机科学诺贝尔奖"的图灵奖,以表彰他们在深度神经网络领域的概念性和工程性突破,使深度神经网络成为计算的关键组成部分。他们三人被誉为"深度学习三巨头"。

在这里插入图片描述

3. 其他重要奖项

  • 伊丽莎白女王工程奖(2025年)
  • VinFuture大奖(2024年)
  • 皇家学会皇家奖章(2022年)
  • BBVA基金会前沿知识奖(2016年)
  • IEEE/RSE沃尔夫森詹姆斯·克拉克·麦克斯韦奖(2016年)
  • 加拿大工程学会Killam奖(2012年)
  • 赫茨伯格加拿大科学与工程金奖(2010年)
  • IJCAI研究卓越奖(2005年)

六、近期动态与观点

1. 离开谷歌与AI安全担忧

2023年5月,辛顿宣布辞去谷歌的职务,这一决定在科技界引起了轩然大波。他向《纽约时报》表示离职的原因是为了能够"自由地谈论人工智能的风险",而不受谷歌商业利益的约束。在接受MIT技术评论采访时,他说道:“只要我还受雇于谷歌,我就无法做到这一点。”

辛顿的离职标志着他对AI态度的重大转变。他向媒体解释:"我突然改变了我对这些技术是否会比我们更聪明的看法。"导致这一转变的关键因素是ChatGPT等大型语言模型(尤其是GPT-4)的快速发展,这让他意识到机器的智能发展速度远超他的预期。

2. 对人工智能风险的具体担忧

辛顿的担忧主要集中在以下几个方面:

  • 技术性失业:他担心AI可能导致大量人失业,而且新技术可能不会创造足够的替代工作岗位。他甚至建议英国政府考虑实施全民基本收入来应对这一问题。

  • 错误信息传播:AI可能被用来生成和传播虚假信息,对社会秩序稳定造成威胁。

  • 存在性风险:最严重的是,辛顿表示:"我认为人类只是智能进化过程中的一个过渡阶段,这是完全可以想象的。"他担心AI最终可能会超越人类智能并取代人类。

3. AI监管与安全建议

面对这些风险,辛顿认为需要全球合作来制定AI监管框架。他建议建立类似于1997年《化学武器公约》的全球协议,为AI武器化设立国际规则。他强调,现在是进行实验了解AI并通过法律确保技术道德使用的关键时刻。

辛顿还特别关注"对齐问题"(alignment problem)——如何确保AI执行人类期望它做的事情。他认为这是一个特别困难的问题,因为在人类存在恶意行为者的世界中,要确保AI始终有益于人类极其困难。

4. AI的积极前景

尽管有这些担忧,辛顿并不后悔自己的工作,也看到了AI的巨大潜力:

  • 医疗健康:辛顿指出:“AI在医疗领域几乎完全是有益的。它已经能够与放射科医生相媲美地理解医学图像,也将在药物设计方面表现出色。”

  • 科学研究:他认为AI可以加速科学发现和创新,解决人类面临的复杂挑战。

  • 生产效率:他表示:"提高效率应该让每个人都更幸福。"这表明他相信AI有潜力为社会整体创造更多价值。

5. 对未来的思考

辛顿对AI未来的展望既包含希望也充满警惕。他在接受采访时表示:“我们可能会回顾并将这一时刻视为一个转折点,人类必须决定是否进一步发展这些技术,以及如果发展了,如何保护自己。”

他承认在AI发展道路上存在极大的不确定性:“我们正在进入一个巨大不确定性的时期,我们正在处理以前从未处理过的事物。通常,当你第一次处理全新的事物时,你会犯错。而我们不能在这些事情上犯错。”

辛顿的最新观点反映了他作为科学家的诚实和责任感——即使这意味着他必须对自己毕生的工作表达担忧。他的转变提醒我们,科技发展需要同步思考其道德和社会影响。

七、人物特点与名言

1. 挑战权威的学术勇气

辛顿的一生充满了挑战权威的学术勇气。在神经网络研究被学术界广泛质疑的时期,他坚持自己的研究方向。他的父亲是一位相信大陆漂移理论的昆虫学家,而这一理论在20世纪50年代初被视为荒谬。辛顿似乎从父亲那里继承了这种敢于坚持非主流观点的勇气。

辛顿曾谈到自己的研究生涯:"我有一个风暴般的研究生经历,每周我们都会有一场大喊大叫的争论。我不断做交易,说’好的,让我再研究神经网络六个月,我会向你证明它们有效’。六个月结束时,我会说,'是的,但我差不多要成功了。再给我六个月。'"这种坚持不懈的精神最终使他取得了突破性的成就。

2. 知识广度与跨学科思维

辛顿不仅在计算机科学和认知心理学方面有深厚造诣,还从物理学、神经科学等多个学科汲取灵感。他将统计物理学的工具应用到玻尔兹曼机的开发中,将神经科学关于人脑的知识应用到神经网络设计中。这种跨学科的思维方式是他能够做出原创性贡献的关键因素之一。

3. 从学术到产业的实践精神

辛顿不仅是一位卓越的理论研究者,还积极将研究成果转化为现实应用。从成立DNNresearch公司到加入谷歌再到共同创立向量研究所,他始终致力于推动深度学习技术的产业化应用。这种理论与实践相结合的精神,使他的研究成果能够产生更广泛的社会影响。

4. 对AI的责任感

随着AI的快速发展,辛顿展现出了强烈的社会责任感。尽管他是深度学习的先驱,但他仍然勇于发声提醒人们AI可能带来的风险,甚至为此离开了谷歌。这种责任感体现了他作为科学家的良知和对人类福祉的关注。

5. 辛顿的经典名言

辛顿的一些经典名言不仅反映了他对人工智能和神经网络的深刻理解,也展现了他独特的思考方式和人生哲学:

  • 从长远来看,由好奇心驱动的研究效果更好…真正的突破来自于人们专注于他们感兴趣的事物。
  • “我一直深信,让人工智能工作的唯一方法是以类似人脑的方式进行计算。这是我一直追求的目标。”
  • “计算机会在美国人理解讽刺之前理解讽刺。”
  • “在人工智能领域,圣杯是如何生成内部表示。”
  • “放射科医生的角色将从做感知性工作(可能由一只训练有素的鸽子完成)转变为做更多认知性的工作。”
  • “每个人都看着当前的技术,认为’好的,这就是人工神经网络’。他们没有意识到它是多么任意。我们只是把它编出来的!没有理由我们不应该再编出别的东西。”
  • “我主要兴趣是尝试找到完全不同种类的神经网络。”

这些名言展示了辛顿作为科学家的创新精神、对人工智能发展的深刻洞察以及他对未来技术的开放态度。

八、结语

杰弗里·辛顿的学术贡献改变了人工智能的发展轨迹,使深度学习从理论走向实践,并推动了众多技术革新。作为"深度学习之父",他不仅仅是一位杰出的科学家,更是一位有远见的思想家,他既看到了人工智能的巨大潜力,也警惕其可能带来的风险。

辛顿的一生诠释了科学家的坚持与勇气、创新与责任。他在逆境中坚持自己的研究方向,最终证明了神经网络方法的价值;他不断创新,开发出一系列突破性的算法和模型;他敢于面对技术可能带来的风险,即使这意味着要对自己毕生的工作表达担忧。

他的学术精神提醒我们,科学进步不仅需要创新和突破,还需要负责任的态度和对潜在风险的警觉。在辛顿的引领下,人工智能领域正迎来蓬勃发展的新时代,而他的学术精神和科研成果将继续激励后来者在这一领域不断探索和创新。

正如辛顿所说:"我们正在进入一个巨大不确定性的时期,我们正在处理以前从未处理过的事物。"面对这一未知的未来,辛顿的工作和思想将继续指引着我们,帮助人类在探索AI这一强大工具的同时,确保它造福于人类社会。

专栏✅:《计算机名人堂》,欢迎订阅催更,谢谢大家支持!
创作者:Code_流苏(CSDN)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/76107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BladeX单点登录与若依框架集成实现

1. 概述 本文档详细介绍了将BladeX认证系统与若依(RuoYi)框架集成的完整实现过程。集成采用OAuth2.0授权码流程,使用户能够通过BladeX账号直接登录若依系统,实现无缝单点登录体验。 2. 系统架构 2.1 总体架构 #mermaid-svg-YxdmBwBtzGqZHMme {font-fa…

初识Redis · set和zset

目录 前言: set 基本命令 交集并集差集 内部编码和应用场景 zset 基本命令 交集并集差集 内部编码和应用场景 应用场景(AI生成) 排行榜系统 应用背景 设计思路 热榜系统 应用背景 设计思路 热度计算方式 总结对比表 前言&a…

playwright 教程高级篇:掌握网页自动化与验证码处理等关键技术详解

Playwright 教程高级篇:掌握网页自动化与验证码处理等关键技术详解 本教程将带您一步步学习如何使用 Playwright——一个强大的浏览器自动化工具,来完成网页任务,例如提交链接并处理旋转验证码。我们将按照典型的自动化流程顺序,从启动浏览器到关闭浏览器,详细讲解每个步骤…

数据结构(完)

树 二叉树 构建二叉树 int value;Node left;Node right;public Node(int val) {valueval;} 节点的添加 Node rootnull;public void insert(int num) {Node nodenew Node(num);if(rootnull) {rootnode;return;}Node index root;while(true) {//插入的节点值小if(index.value&g…

FastAPI与SQLAlchemy数据库集成与CRUD操作

title: FastAPI与SQLAlchemy数据库集成与CRUD操作 date: 2025/04/16 09:50:57 updated: 2025/04/16 09:50:57 author: cmdragon excerpt: FastAPI与SQLAlchemy集成基础包括环境准备、数据库连接配置和模型定义。CRUD操作通过数据访问层封装和路由层实现,确保线程安全和事务…

一个基于Django的写字楼管理系统实现方案

一个基于Django的写字楼管理系统实现方案 用户现在需要我用Django来编写一个写字楼管理系统的Web版本,要求包括增删改查写字楼的HTML页面,视频管理功能,本地化部署,以及人员权限管理,包含完整的代码结构和功能实现&am…

mongodb在window10中创建副本集的方法,以及node.js连接副本集的方法

创建Mongodb的副本集最好是新建一个文件夹,如D:/data,不要在mongodb安装文件夹里面创建副本集,虽然这样也可以,但是容易造成误操作或路径混乱;在新建文件夹里与现有 MongoDB 数据隔离,避免误操作影响原有数…

Maven 多仓库与镜像配置全攻略:从原理到企业级实践

Maven 多仓库与镜像配置全攻略:从原理到企业级实践 一、核心概念:Repository 与 Mirror 的本质差异 在 Maven 依赖管理体系中,repository与mirror是构建可靠依赖解析链的两大核心组件,其核心区别如下: 1. Repositor…

STM32 四足机器人常见问题汇总

文章不介绍具体参数,有需求可去网上搜索。 特别声明:不论年龄,不看学历。既然你对这个领域的东西感兴趣,就应该不断培养自己提出问题、思考问题、探索答案的能力。 提出问题:提出问题时,应说明是哪款产品&a…

MySQL 中 `${}` 和 `#{}` 占位符详解及面试高频考点

文章目录 一、概述二、#{} 和 ${} 的核心区别1. 底层机制代码示例 2. 核心区别总结 三、为什么表名只能用 ${}?1. 预编译机制的限制2. 动态表名的实现 四、安全性注意事项1. ${} 的风险场景2. 安全实践 五、面试高频考点1. 基础原理类问题**问题 1**:**问…

C语言编译预处理2

#include <XXXX.h>和#include <XXXX.c> #include "XXXX.h" 是 C 语言中一条预处理指令 #include <XXXX.h>&#xff1a;这种形式用于包含系统标准库的头文件。预处理器会在系统默认的头文件搜索路径中查找XXXX.h 文件。例如在 Linux 系统中&#…

Elasticvue-轻量级Elasticsearch可视化管理工具

Elasticvue一个免费且开源的 Elasticsearch 在线可视化客户端&#xff0c;用于管理 Elasticsearch 集群中的数据&#xff0c;完全支持 Elasticsearch 版本 8.x 和 7.x. 功能特色&#xff1a; 集群概览索引和别名管理分片管理搜索和编辑文档REST 查询快照和存储库管理支持国际…

Git提交规范及最佳实践

Git 提交规范通常是为了提高代码提交的可读性、可维护性和自动化效率&#xff08;如生成 ChangeLog&#xff09;。以下是常见的 Conventional Commits 规范&#xff0c;结合社区最佳实践总结而成&#xff1a; 1. 提交格式 每次提交的 commit message 应包含三部分&#xff1a;…

Ubuntu中snap

通过Snap可以安装众多的软件包。需要注意的是&#xff0c;snap是一种全新的软件包管理方式&#xff0c;它类似一个容器拥有一个应用程序所有的文件和库&#xff0c;各个应用程序之间完全独立。所以使用snap包的好处就是它解决了应用程序之间的依赖问题&#xff0c;使应用程序之…

android studio 运行java main报错

运行某个带main函数的java文件报错 Could not create task :app:Test.main(). > SourceSet with name main not found. 解决办法&#xff1a;在工程的.idea/gradle.xml 文件下添加&#xff1a; <option name"delegatedBuild" value"false" /&g…

openssh离线一键升级脚本分享(含安装包)

查看当前的版本 [rootmyoracle ~]#ssh -V相关安装包下载地址 openssh下载地址&#xff1a;http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssl下载地址&#xff1a;https://www.openssl.org/source/zlib下载地址&#xff1a;http://www.zlib.net/今天演示从7.4升级…

Mac M1管理多个Node.js版本

目录 1. 使用 nvm (Node Version Manager) 1.1.安装 nvm 1.2.安装Node.js版本 1.3.查看已安装的node版本列表 1.4.使用特定版本的Node.js 1.5.查看当前使用的版本 2. 使用 fnm (Fast Node Manager) 2.1.安装 fnm 2.2.安装Node.js版本 2.3.查看已安装的版本 2.4.使用…

Unity中国战略调整简讯:Unity6下架 团结引擎接棒

Unity中国战略调整简讯&#xff1a;Unity6下架 团结引擎接棒 免费版 2025年4月9日 —— Unity中国宣布自即日起&#xff0c;中国大陆及港澳地区停止提供Unity 6及后续版本下载与服务&#xff0c;相关功能由国产引擎“团结引擎”承接。国际版2022 LTS及更早版本仍由Unity中国维护…

TestNG 单元测试详解

1、测试环境 jdk1.8.0 121 myeclipse-10.0-offline-installer-windows.exe TestNG 插件 org.testng.eclipse 6.8.6.20130607 0745 2、介绍 套件(suite):由一个 XML 文件表示,通过<suite>标签定义,包含一个或更多测试(test)。测试(test):由<test>定义&#xf…

C复习(主要复习)

指针和数组 指针数组是一个数组&#xff0c;数组的每个元素都是指针。它适用于需要存储多个指针的场景&#xff0c;如字符串数组。数组指针是一个指针&#xff0c;指向一个数组。它适用于需要传递整个数组给函数或处理多维数组的场景。 函数指针&#xff1a;函数指针的定义需要…