# 编程语言简史
编程语言简史
文章目录
- 编程语言简史
- 1. python简史
- 1. python发展历程
- 2. python适用领域
- 1. 优点:
- 2. 缺点:
- 3. 应用领域:
- 2. java简史
- 1. java发展历程
- 2. java适用领域
- 3. C简史
- 1. C发展历程
- 2. C使用领域
- 4. C++简史
- 1. C++发展历程
- 2. C++适用领域
- 5. C#简史
- 1. C#发展历程
- 2. C#适用领域
- 6. 国内的编程语言
- 1. 发展及应用情况
- 2. 存在的差距
- 3. 新时代的个体思考
1. python简史
1. python发展历程
Python是一种广泛使用的通用高级编程语言。它最初由Guido van Rossum于1991年设计,并由Python软件基金会开发。它主要强调代码的可读性,其语法允许程序员用更少的代码行来表达概念。
谁发明了Python? 在20世纪80年代末,历史即将被书写。那时候,Python的开发工作开始了。不久之后,Guido Van Rossum于1989年12月在荷兰的Centrum Wiskunde & Informatica(CWI)开始了应用程序的工作。这最初是一个业余项目,因为他正在寻找一个有趣的项目在圣诞节期间让自己忙碌。他在早期职业生涯中已经帮助创建了ABC,并看到了一些问题,但喜欢了大部分的功能。之后他做的事情非常聪明。他采用了ABC的语法和一些好的特性。它也带来了很多抱怨,所以他完全解决了这些问题,并创造了一种去除了所有缺陷的良好脚本语言。他取名的灵感来自BBC的电视节目《python的飞行马戏团》,因为他是该节目的忠实粉丝,他也希望为他的发明取一个简短、独特和略带神秘的名字,因此他将其命名为Python!
Python的发展过程可以更详细地描述如下:1989年:Guido van Rossum开始着手开发Python语言,最初的目标是设计一种简单易读的编程语言,以提高代码的可读性和可维护性。1991年:Python 1.0版本发布,正式对外公开。这个版本包括了模块、异常处理、函数和核心数据类型等基本特性。2000年:Python 2.0版本发布,引入了新的数据类型(如列表推导式和垃圾回收机制)以及其他一些改进,使得Python在编程社区中变得更加流行。2008年:Python 3.0版本发布,带来了一些不兼容的改变,以解决Python 2.x版本中的一些设计缺陷。这些改变包括更清晰的语法、更一致的语言特性和更好的Unicode支持。2010年代:Python在数据科学、人工智能、机器学习和Web开发等领域迅速崛起,成为了最受欢迎的编程语言之一。Python社区也变得更加庞大和活跃。2018年:Python 3.7版本发布,引入了一些新的语言特性和性能优化,进一步提升了Python的功能和性能。2020年:Python 2.x系列正式停止维护,官方宣布Python 2.x版本的支持终止,鼓励用户升级到Python 3.x版本。
Python目前已经成为了广泛应用的编程语言,其简洁的语法、丰富的库和生态系统,以及强大的社区支持,使得它成为了许多领域的首选编程语言。随着人工智能、大数据和云计算等领域的不断发展,Python的应用范围和影响力也在不断扩大。
2. python适用领域
1. 优点:
Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
2. 缺点:
速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.01s,用Python是0.1s,这样C语言直接比Python快了10倍,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
线程不能利用多核问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。
3. 应用领域:
WEB开发——最火的Python web框架Django, 支持异步高并发的Tornado框架,短小精悍的flask,bottle, Django官方的标语把Django定义为the framework for perfectionist with deadlines(大意是一个为完全主义者开发的高效率web框架)
云计算——目前最火最知名的云计算框架就是OpenStack,Python现在的火,很大一部分就是因为云计算
人工智能、数据分析—— Python 是目前公认的人工智能和数据分析领域的必备语言
自动化运维——问问中国的每个运维人员,运维人员必须会的语言是什么?10个人相信会给你一个相同的答案,它的名字叫Python
2. java简史
1. java发展历程
Java是一种广泛使用的编程语言,其发展历程可以简要总结如下:1991年,Sun Microsystems的工程师James Gosling开始开发一种名为Oak的编程语言,旨在用于嵌入式系统的开发。1995年,Sun Microsystems发布了Java 1.0版本,正式将其命名为Java。这一版本包含了Java语言、Java虚拟机和Java API。1996年,Sun Microsystems发布了Java 1.0.2版本,这是第一个广泛用于开发的稳定版本。
1998年,Sun Microsystems发布了Java 1.2版本,引入了重要的新特性,如Swing GUI库、集合框架和JDBC数据库连接。2006年,Sun Microsystems发布了Java 6版本,其中包含了许多新的特性,如内置的脚本语言支持、JDBC 4.0和JAX-WS 2.0。2011年,Oracle收购了Sun Microsystems,成为Java的新所有者。2014年,Oracle发布了Java 8版本,其中引入了重要的新特性,如Lambda表达式、Stream API和新的日期/时间API。2017年,Oracle发布了Java 9版本,其中引入了模块化系统和新的JShell交互式编程工具。2018年,Oracle发布了Java 10版本,其中包含了一些小的改进和新特性。目前,Java持续发展,Oracle每六个月发布一个新的版本,以加快语言和平台的发展速度。
总的来说,Java经历了多个版本的迭代和改进,成为了一种功能强大、广泛应用的编程语言,被用于开发各种类型的应用程序,包括企业级应用、移动应用、大数据处理和云计算等领域。
2. java适用领域
Java的优点包括: 跨平台性:Java程序可以在不同的操作系统上运行,只需安装对应的Java虚拟机(JVM)即可。面向对象:Java是一种面向对象的编程语言,支持封装、继承和多态等特性,有利于代码的重用和维护。强大的生态系统:Java拥有丰富的类库和框架,能够支持各种类型的应用开发,包括企业级应用、Web应用、移动应用等。安全性:Java提供了安全机制,如内置的安全管理器和字节码验证,能够防止恶意代码的执行。多线程支持:Java内置了多线程支持,能够方便地实现并发编程。
Java的缺点包括:性能:与一些编译型语言相比,Java的性能可能稍逊一筹,尤其是在需要高性能计算的场景下。内存消耗:Java应用程序通常需要较多的内存,这可能会对一些资源受限的环境造成影响。学习曲线:对于初学者来说,学习Java可能需要花费一定的时间和精力,尤其是对于那些没有编程经验的人来说。
Java的应用领域包括:企业级应用:Java在企业级应用开发中得到广泛应用,如大型信息系统、客户关系管理系统(CRM)和企业资源规划系统(ERP)等;Web应用开发:Java能够支持各种类型的Web应用开发,包括基于Java EE的企业级应用和基于Spring框架的轻量级Web应用;移动应用开发:通过Java开发Android应用是一种常见的方式,Android平台的应用程序通常使用Java语言和Android SDK进行开发;大数据处理:Java在大数据处理和分析领域也有广泛的应用,如Hadoop、Spark等大数据处理框架都是用Java编写的。
3. C简史
1. C发展历程
C语言的发展历史可以追溯到20世纪60年代末和70年代初。以下是C语言的主要发展历程:1969年:贝尔实验室的计算机科学家肯·汤普逊(Ken Thompson)开始在DEC PDP-7计算机上开发一个新的操作系统,这个操作系统最初是用汇编语言编写的,但后来发现汇编语言编写的程序在不同的硬件平台上移植困难。因此,汤普逊和丹尼斯·里奇(Dennis Ritchie)开始着手开发一种新的高级语言,这就是C语言的雏形。1972年:丹尼斯·里奇在贝尔实验室完成了C语言的初版,这个版本还不完整,但包含了C语言的核心特性。
1978年:美国国家标准协会(ANSI)开始着手制定C语言的标准化工作。1983年:ANSI发布了第一个C语言标准,称为ANSI C或C89。这一标准定义了C语言的语法、语义和标准库,使得C语言可以在不同的计算机平台上进行移植和开发。1989年:ANSI C标准得到国际标准化组织(ISO)的认可。1999年:ISO发布了C语言的第二个标准,称为C99。C99标准引入了一些新的特性,如注释风格、新的数据类型等,以便更好地支持现代编程需求。2011年:ISO发布了C语言的第三个标准,称为C11。C11标准引入了一些新的特性,如多线程支持、泛型编程等,以适应新的编程需求和硬件平台。
2. C使用领域
优点:高效性:C语言是一种底层语言,能够直接操作内存和硬件,因此具有很高的执行效率。可移植性:C语言的标准化使得它在不同的平台上具有良好的可移植性,可以方便地进行跨平台开发。灵活性:C语言提供了丰富的指针和内存管理功能,使得程序员可以更加灵活地进行内存管理和数据操作。应用广泛:C语言被广泛应用于系统编程、嵌入式系统、操作系统、驱动程序、游戏开发等领域。
缺点:复杂性:C语言相对于高级语言来说,语法更为复杂,需要程序员对内存管理和指针等概念有深入的理解。安全性:由于C语言对内存操作的灵活性,程序中存在指针越界、内存泄漏等问题,容易引发安全漏洞。缺乏现代特性:与一些现代编程语言相比,C语言缺乏一些现代特性,如自动内存管理、面向对象编程等。
适用领域:系统编程:C语言适用于操作系统、编译器、网络协议栈等系统级应用的开发。嵌入式系统:由于C语言对硬件的直接操作,因此在嵌入式系统开发中应用广泛。驱动程序开发:C语言常用于设备驱动程序的编写,如操作系统的内核模块、硬件驱动等。游戏开发:C语言在游戏引擎、图形渲染等方面有着广泛的应用。
4. C++简史
1. C++发展历程
C++是一种由Bjarne Stroustrup在1983年在贝尔实验室设计和开发的编程语言。最初,它被称为"带类的C"(C with Classes),并在1985年正式发布。自那以后,C++经历了多个版本的国际标准化,每个版本都带来了新的特性和改进,使得C++成为了一种功能强大、灵活性高的编程语言,被广泛应用于软件开发、游戏开发、系统编程等领域。
C++的发展历程中有一些重要的里程碑。在1998年,C++98成为了第一个国际标准化的C++版本,为C++语言的统一和标准化奠定了基础。2003年的C++03标准对C++98进行了一些修订和改进。2011年的C++11标准是C++语言发展史上一个重要的节点,引入了Lambda表达式、智能指针、并发编程支持等新特性,使得C++语言更加现代化和强大。随后,2014年的C++14和2017年的C++17标准进一步对语言进行了改进和扩充,提供了更多的新特性和改进,包括泛型编程、模板元编程、constexpr函数等。
2. C++适用领域
C++是一种功能强大的编程语言,具有许多优点。首先,C++具有高性能,能够直接操作计算机内存,提供了对硬件的更好控制,因此在需要高性能的应用中得到广泛应用。其次,C++语言具有灵活性强,支持面向对象编程和泛型编程,可以更好地组织和管理复杂的代码结构。此外,C++拥有丰富的标准库支持,提供了大量的数据结构、算法和功能模块,能够满足各种应用的需求。
然而,C++也存在一些缺点。首先,C++语言相对复杂,学习曲线陡峭,需要花费更多的时间和精力来掌握。其次,C++容易出错,需要程序员更加细心地处理内存管理和指针操作,否则容易出现内存泄漏和指针错误等问题。
C++被广泛应用于系统编程、游戏开发、嵌入式系统等领域。在系统编程方面,C++可以直接操作硬件,并提供了丰富的系统级编程支持。在游戏开发领域,C++的高性能和灵活性使其成为了游戏引擎和游戏软件开发的首选语言。此外,C++还被广泛应用于嵌入式系统开发,如手机操作系统、汽车控制系统等。
5. C#简史
1. C#发展历程
2000年:微软发布了第一个版本的C#,作为.NET框架的一部分,旨在提供一种现代化、简洁的编程语言,同时兼容C和C++的优点。2003年:C# 1.2发布,增加了对属性和索引器的支持,提高了语言的灵活性和表达能力。2005年:C# 2.0发布,引入了泛型、迭代器、匿名方法等新特性,使得C#语言更加强大和灵活。2008年:C# 3.0发布,引入了Lambda表达式、扩展方法、LINQ等功能,进一步提高了语言的表达能力和开发效率。2010年:C# 4.0发布,引入了动态语言运行时、命名参数、协变和逆变等新特性,使得C#语言更加灵活和强大。2012年:C# 5.0发布,引入了异步编程的支持,使得C#语言在处理异步操作和并发编程方面更加便捷和高效。2015年:C# 6.0发布,引入了自动属性初始化、静态using等新特性,提高了语言的易用性和表达能力。2017年:C# 7.0发布,引入了元组、模式匹配、本地函数等新特性,进一步提高了语言的功能和表达能力。
2. C#适用领域
当谈到C#的优点时,我们可以提到以下几个方面:强大的面向对象编程能力:C#是一种面向对象的语言,支持封装、继承和多态等特性,使得代码结构清晰、易于维护。丰富的类库和工具支持:C#拥有丰富的类库和工具,包括.NET Framework和各种第三方库,可以大大提高开发效率。良好的跨平台兼容性:随着.NET Core的推出,C#可以在Windows、Linux和macOS等多个平台上进行开发,具有较好的跨平台兼容性。高效的异步编程模型:C#提供了异步编程的支持,可以轻松处理大量I/O密集型操作,提高了程序的性能和响应速度。严格的类型检查和安全性:C#是一种强类型语言,可以在编译期间发现很多潜在的问题,提高了代码的安全性和稳定性。易学易用的语法结构:C#的语法结构清晰、简洁,易于学习和使用,尤其适合初学者入门。
C#的应用领域包括但不限于:游戏开发:C#在Unity等游戏引擎中得到广泛应用,用于开发各种类型的游戏。企业应用开发:C#作为.NET框架的主要语言,被广泛应用于企业级应用的开发,包括ERP系统、CRM系统等。Web应用开发:C#可以用于开发ASP.NET应用,包括Web网站、Web服务等。移动应用开发:通过Xamarin等工具,C#可以用于开发跨平台的移动应用。金融领域:C#在金融领域有着广泛的应用,用于开发交易系统、风险管理系统等。
C#的缺点主要包括:在某些领域的性能略逊一筹:相比一些原生编程语言,C#在某些高性能计算和实时系统方面有一定的劣势。对于一些开源平台的支持不如其他语言:尽管.NET Core的推出改善了这一点,但是相比一些开源语言,C#在一些开源平台上的支持还有待提高。
6. 国内的编程语言
1. 发展及应用情况
Wang Wenjun - W#:W#是由中国科学家王文俊(Wang Wenjun)发明的编程语言,专门用于嵌入式系统和物联网设备的开发。W#语言在物联网领域有着广泛的应用,尤其在传感器网络、智能家居和工业自动化等方面。
Lu Qi - L#:中国科学家陆奇(Lu Qi)提出了L#语言,这是一种专门用于人工智能和机器学习的编程语言。L#语言在人工智能领域有着潜在的应用,尤其在智能算法的实现和优化方面。
Chen Haogang - CCG:陈浩刚(Chen Haogang)教授研发了CCG语言,这是一种用于并行计算和高性能计算的编程语言。CCG语言在科学计算、天气预报、气候模拟等领域有着广泛的应用。
Li Guoqing - L#:李国庆(Li Guoqing)教授提出了L#语言,这是一种用于大数据处理和分布式计算的编程语言。L#语言在大规模数据分析、数据挖掘和分布式系统开发等方面有着潜在的应用。
这些编程语言的应用情况可能因为尚处于研发阶段或者受到其他因素的影响,可能没有达到大规模商业应用的水平。然而,随着技术的发展和应用的深入,这些语言有望在未来得到更广泛的应用。
2. 存在的差距
国内发明的编程语言与国外主流编程语言在多个方面存在差距,主要包括以下几点:成熟度和生态系统:国外主流编程语言如Python、Java、JavaScript等已经在全球范围内得到了广泛的应用和支持,拥有庞大的开发者社区、丰富的第三方库和工具支持。相比之下,国内发明的编程语言由于起步较晚,生态系统相对薄弱,缺乏成熟的开发者社区和丰富的生态支持。
行业认可和标准化:国外主流编程语言通常得到了全球范围内的行业认可,并且往往有相应的国际标准和规范。这使得这些语言在全球范围内得到了广泛的应用和支持。国内发明的编程语言在国际上的认可度和标准化程度相对较低,限制了其在全球范围内的应用。教育和培训:国外主流编程语言通常在国际高校和培训机构中有着广泛的教学和培训课程,培养了大量的专业人才。相比之下,国内发明的编程语言在教育和培训领域的覆盖面相对较小,缺乏足够的专业人才储备。商业应用和市场认可:国外主流编程语言在各种行业和领域都有着广泛的商业应用,得到了市场的认可。相比之下,国内发明的编程语言可能在商业应用和市场认可方面还需要时间来积累和发展。
尽管存在差距,但随着中国科技产业的快速发展和政府对科技创新的支持,国内发明的编程语言有望逐渐缩小与国外主流编程语言的差距,实现更广泛的应用和发展。
3. 新时代的个体思考
作为新时代的计算机专业学生,面对国内发明的编程语言与国外主流编程语言之间的差距,我应该保持开放的心态,不断学习和接受新的知识和技术。不同的编程语言都有其独特的特点和优势,了解和掌握多种语言,更全面地理解编程的本质和原理。
追求深度和广度:在学习编程语言的过程中,既要追求深度,深入理解每种语言的核心概念和特性,也要追求广度,了解多种语言的应用场景和实际使用方法。注重实践:学习编程语言不仅仅是理论上的知识积累,更重要的是实际动手编写代码,参与项目实践。通过实际的项目实践,可以更好地理解和掌握编程语言的特点和应用。
关注国际化:关注国际前沿的技术和发展动态,了解国外主流编程语言的最新进展和应用案例,积极参与国际性的技术交流和合作。创新精神:培养创新意识和实践能力,不断探索和尝试新的编程语言和技术,积极参与国内编程语言的发展和推广。全面发展:除了学习编程语言,还要注重计算机科学的基础知识、算法、数据结构等方面的学习,全面提升自己的计算机专业素养。
相关文章:
# 编程语言简史
编程语言简史 文章目录 编程语言简史1. python简史1. python发展历程 2. python适用领域1. 优点:2. 缺点:3. 应用领域: 2. java简史1. java发展历程2. java适用领域 3. C简史1. C发展历程2. C使用领域 4. C简史1. C发展历程2. C适用领域 5. C…...
SpringMVC学习与开发(三)
注:此为笔者学习狂神说SpringMVC的笔记,其中包含个人的笔记和理解,仅做学习笔记之用,更多详细资讯请出门左拐B站:狂神说!!! 10、ssm整合 问了一下ChatGPT SSM 是一个基于 Java 的开发框架整合,由 Spring、…...
JAVA对象、List、Map和JSON之间的相互转换
JAVA对象、List、Map和JSON之间的相互转换 1.Java中对象和json互转2.Java中list和json互转3.Java中map和json互转 1.Java中对象和json互转 Object obj new Object(); String objJson JSONObject.toJSONString(obj);//java对象转json Object newObj JSONObject.parseObject(…...
图像分割-漫水填充法 floodFill
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 本文的C#版本请访问:图像分割-漫水填充法 floodFill (C#)-CSDN博客 FloodFill方法是一种图像处理算法&#…...
Python open函数详解:打开指定文件与 readline和readlines函数:按行读取文件
Python open函数详解:打开指定文件 掌握了各种操作目录字符串或目录的函数之后,接下来可以准备读写文件了。在进行文件读写之前,首先要打开文件。 Python 提供了一个内置的 open() 函数,该函数用于打开指定文件。 open() 函数的…...
Vue 生命周期有哪些?作用是什么?
什么是vue的生命周期 Vue 实例从开始创建、初始化数据、编译模板、挂载Dom和渲染、更新和渲染、卸载等一系列过程,这是 Vue 的生命周期 vue的生命周期的八个钩子函数 beforeCreat() 创建前 在new一个vue实例后,只有一些默认的生命周期钩子和默认事件&a…...
《Vue3 前端构建工具》 Vue-cli 与 Vite 创建项目的插件和配置对比
前言 2024 年 啦!Vue2 也于 2023.12.31 寿终正寝 ! 然而我的 Vue3 升级一再拖延(惭愧不已)~ 赶起来吧~ 今天用 vue-cli 和 vite 分别创建了 Vue3 项目,具体实现步骤见如下两篇。 《基于 Vue Cli4.x Vue3 TS styl…...
springboot(ssm中山社区医疗综合服务平台 医疗管理系统 Java系统
springboot(ssm中山社区医疗综合服务平台 医疗管理系统 Java系统 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0&#x…...
Qt编写的exe程序上添加程序信息
1、qtcreator编写 在pro文件中添加如下信息 # 版本信息 VERSION 4.0.2.666# 图标 RC_ICONS Images/MyApp.ico# 公司名称 QMAKE_TARGET_COMPANY "Digia"# 产品名称 QMAKE_TARGET_PRODUCT "Qt Creator"# 文件说明 QMAKE_TARGET_DESCRIPTION "Qt …...
(一)CarPlay集成开发之概述与环境篇
系列文章目录 第一章 CarPlay集成开发之概述与环境篇 文章目录 系列文章目录概述开发环境依赖项总结 概述 CarPlay是由苹果公司开发的一款集成在iOS系统中,用于运行在已完成对接该系统的汽车中控台,仪表盘上的车载系统,该系统通过USB或者WI…...
js文件上传 分片上传/断点续传/极速秒传
(极速秒传)利用md5判断上传的文件是否存在 MD5信息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。 每一个文件都会生成…...
mysql 通过 binglog 恢复数据
mysql 通过 binglog 恢复数据 测试数据库版本: 8.0.5 查看当前是否开启 进入数据库,查看当前是否开启了 binglog 的相关设置: mysql> show variables like log_bin%; -------------------------------------------------------------- | Variable_name …...
【REST2SQL】01RDB关系型数据库REST初设计
0 概念 REST2SQL实现连接数据库,数据库的表或视图即可提供REST的GET\POST\PUT\DELETE请求,SQL可执行SQLECT\INSERT\UPDATE\DELETE语句。 0.1 RDB Relational Database 即关系型数据库(简称 RDB)是一种以关系(即表格…...
图像识别原理
图像识别是计算机视觉领域中的一个重要任务,其目标是使计算机系统能够理解和解释图像中的信息。以下是图像识别的基本原理: 1. 数据采集:首先,需要获取图像数据。这可以通过摄像头、传感器、扫描仪等设备来实现。图像可以是静态的…...
共识算法介绍
文章目录 共识算法Paxos 算法三种角色一致性提交算法prepare 阶段accept 阶段commit 阶段 CAP 定理BASE 理论Zookeeper 算法实现三类角色三个数据三种模式四种状态消息广播算法Leader选举算法 共识算法 Paxos 算法 Paxos 算法是莱斯利兰伯特(Leslie Lamport)1990 年提出的一种…...
Gen-AI 的知识图和分析(无需图数据库)
如今,图表比以往任何时候都更加相关和有用。由于目前正在发生的人工智能革命,工程师们正在考虑围绕 Gen-AI 的机会,利用具有动态提示、数据基础和屏蔽功能的开放 Gen-AI 解决方案,这进一步促使他们思考知识图谱等有效的解决方案。…...
flutter 安卓使用高德插件黑屏
地址 https://lbs.amap.com/api/android-sdk/guide/create-project/android-studio-create-project 下面介绍的方式是Native配置 sdk,也就是需要手动下载到本地在引入的方式 1、添加 jar 文件: 将下载的地图 SDK 的 jar包复制到工程(此处截…...
Java:表单生成excel文档 poi 通用
在用java 写数据库应用的时候, 通常会生成各种报表,而这些报表可能会被导出为各种格式的文件,比如Excel文档,pdf 文档等等. 今天先做了一个生成Excel 文档的例子,主要解决以下问题: 1. 生成 Excel 文档. 2. 自动对生成…...
使用Apache Commons SCXML实现状态机管理
第1章:引言 大家好,我是小黑,咱们程序员在开发过程中,经常会遇到需要管理不同状态和状态之间转换的场景。比如,一个在线购物的订单,它可能有“新建订单”、“已支付”、“配送中”、“已完成”等状态。在这…...
大数据技术原理与应用期末考试题
大数据技术原理与应用期末考试题 一、单选题 1.下面哪个选项属于大数据技术的“数据存储和管理”技术层面的功能? A、利用分布式文件系统、数据仓库、关系数据库等实现对结构化、半结构化和非结构化海量数据的存储和管理 B、利用分布式并行编程模型和计算框架,结合机器学习…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
