人工智能中的Web端编程
Java是当前的主流编程语言之一,常年稳居TIOBE编程语言排行榜前五。Java的使用领域非常广泛,包括了桌面端编程、Web端编程、移动端编程等几乎所有的编程领域。Java是Web端编程使用最广泛的编程语言之一。要学习Web端编程,需要了解Java语言的知识架构、界面编程工具、常用教材、学习路线等主要内容。
在开始描述主要内容之前,首先来了解一下Java语言的发展历程[24][25]。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java的创立非常具有戏剧性。1990年12月SUN公司开始了一个叫做“Stealth计划”的内部项目,起因是因为该公司的工程师帕特里克·诺顿被自己开发的C和C语言编译器折磨得不胜其烦。因为其中的API(Application Programming Interface,应用程序接口)非常不好用。于是决定改用NeXT,并向公司申请了该项目。“Stealth 计划”后来被更名为“Green计划”,并且Java之父詹姆斯·高斯林(James Gosling)和麦克·舍林丹也加入了该计划。他们和其他几个工程师在位于加利福尼亚州门罗帕克市沙丘路的一个小工作室里一起研究和开发新技术。作为富有创新意识的一群人,他们远见卓识地将目光瞄准了下一代智能家电程序设计。项目组最初打算用C 语言进行项目开发,但是很多成员包括SUN的首席科学家比尔·乔伊很快发现了一些严重的问题:1)C和可用的API在某些方面存在很大问题;2)项目组使用的是内嵌类型平台,可以使用的资源极其有限;3)C语言太复杂,以至很多开发者在编写程序时经常出错;4)C语言缺少垃圾自动回收机制;5)C语言缺少可移植的安全性、分布式程序设计、多线程等功能;6)C语言编写的程序无法很方便地移植到各种设备平台上。基于上述原因,同时考虑到项目资金的限制,比尔·乔伊决定开发一种兼具C语言和Mesa语言优点的新语言。最初,高斯林试图修改和扩展C 的功能来实现目的,但是后来他放弃了。他决心创造出一种全新的语言,并以他办公室外的树命名为“Oak”(橡树)。
经过艰苦卓绝的努力,到1992年的夏天,项目组已经能够演示新平台的一部分了,包括Green操作系统,Oak的程序设计语言和类库,以及支撑该操作系统的硬件。最初的计划是将该操作系统运行在一种名为Star7且类似PDA(Personal Digital Assistant,个人数字助理,简称PDA)的设备上。这种设备的特点是具有鲜艳的图形界面,同时使用被称为“Duke”的智能代理来帮助用户。1992年12月3日,项目组使用这种设备进行了展示。同年的11月,Green计划被转化成了一个SUN公司的全资子公司,即FirstPerson有限公司。项目组随即被重新安排到了帕洛阿尔托。FirstPerson团队对建造一种高度互动的设备感兴趣。在时代华纳发布了一个关于电视机顶盒的征求提议书时,FirstPerson团队随即敏锐地觉察到了机会,于是提出了一个机顶盒平台的提议。遗憾的是,有线电视业界觉得FirstPerson的平台会释放过多的控制权给用户,因此FirstPerson的投标败给了SGI。雪上加霜的是,与3DO公司的另外一笔关于机顶盒的交易也没能够获得成功。FirstPerson走到了山穷水尽,没有资金支持继续研究的地步,于是FirstPerson公司被并购回了SUN公司。
1994年的6、7月间,在经历了一场历时三天的激烈讨论之后,项目组的决定再一次改变努力的方向。这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向高度互动的目标演进,而这一远景正是他们在有线电视网中看到的。于是,帕特里克·诺顿写了一个小型万维网浏览器原型,即WebRunner。后来,又被更名为HotJava。同年,Oak语言被更名为Java。1994年10月,项目组向公司高层演示了HotJava和Java平台。
1995年5月23日SunWorld大会上,SUN公司的科学指导约翰·盖吉宣告了Java技术的诞生。1996年1月,Sun公司成立了Java业务集团,专门开发Java技术。
为了让读者对Java的发展历程有更为清晰的了解,图 4‑14按照年份的先后顺序展现了Java发展历史上的各个版本及其相关技术的改进。

图 4‑14 Java发展年代列表
Java编程一般使用IntelliJ IDEA或Ecplise软件。Ecplise是免费开源的,而IntelliJ IDEA则需要付费使用。Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,它由非营利软件供应商联盟Eclipse基金会管理。通过Ecplise可以非常方便的进行Java项目的开发。Ecplise的下载地址为:https://www.eclipse.org/downloads/。
在之前的文章《编程语言的通用架构》中,通过图 4‑2呈现了编程语言的通用架构,学习其它编程语言只需将该通用架构拓展到要学习的编程语言上即可。将图 4‑2中的编程语言的通用架构拓展到Java语言得到了图 4‑15中的Java语言的知识架构。下面将根据图 4‑15来描述如何学习Java语言。

图 4‑15 Java语言的知识架构
1. Java语言的核心模块
(1) Java中的数据类型
了解Java中变量的数据类型的种类,并熟练掌握不同数据类型的变量的定义和赋值的方法。也就是说,必须理解整型、实型、字符型、逻辑型、枚举型、数组的定义及其赋值方法。注意,这里将数组视为一种特殊的数据类型。与C++语言相比,在Java中不存在结构体类型,如果需要像C++语言那样使用结构体数据类型,可以通过类的功能来实现。
(2) Java中的流程控制语句
熟练掌握Java中的流程控制语句的实现方法。具体来说,需要掌握分支语句:if语句、switch语句的实现方法;循环语句:for语句、while语句、do-while语句的实现方法。
(3) Java中方法的定义、实现与方法重载
在Java语言中,函数被称为方法。学习Java,需要熟练掌握Java中方法的定义与实现、方法的调用、方法的重载等,明白在Java中使用方法的好处,会利用方法实现代码的封装,从而提高代码的安全性。
(4) Java中的类的定义与实现、类的继承与派生
面向对象是Java语言的核心思想和优势。在Java语言中一切皆对象,而对象是类的实例化,可见类在Java中的重要性。读者要理解面向对象编程的核心思想,熟练掌握Java中类的定义和实现方法。深刻理解类的派生和继承的主要思想以及类的继承和派生的必要性和优势。认真掌握类的继承和派生的方法。理解多态性的基本概念以及通过类来实现多态性的方法。
2. Java语言的扩展模块
Java语言的扩展模块主要包括:文件I/O、图像处理、网络通信、界面编程、数据库操作、并行计算、混合编程等。
(1) 文件I/O
在Java中,所有的I/O机制都是基于数据“流”方式进行输入/输出。这些“数据流”可视为同一台计算机不同设备或网络中不同计算机之间流动的数据序列。Java把这些不同来源和目标的数据统一抽象为“数据流”。这些流序列中的数据通常有两种形式:文本流和二进制流。读者需要熟练掌握Java中文件I/O的主要方法。
(2) 图像处理
Java中的图像处理主要是指图像、动画、视频等的显示、编辑、分析、保存等一系列的操作。Java图像处理功能非常强大,很多图像、视频处理软件都是基于Java语言开发的。读者如果希望从事Java项目开发方面的工作,需要熟练掌握Java的图像处理扩展模块。可以使用Java中的AWT工具集方便地实现绘图功能,AWT的中文名称是抽象窗口工具集(Abstract Window Toolkit,简称AWT)。
(3) 网络通信
Java是伴随着互联网的诞生而发展强大的语言,其核心优势是可以非常方便地实现互联网间的网络通信,特别是网站页面与服务器端之间的通信。掌握好基于Java的网络通信技术对于Java互联网项目的开发至关重要。
(4) 界面编程
Eclipse中的SWT和JFace这两个工具包为开发人员进行Java界面编程提供了非常强大的功能。开发者既可以采用拖拽方式实现界面的编写,也可以使用编写代码行的方式编写界面。Java编写的软件界面非常美观,很多著名的软件采用Java进行界面编程,例如, MATLAB的内核是基于C语言的,但其界面编程却是基于Java的。
(5) 数据库操作
Java使用JDBC包实现数据库的操作。JDBC全称Java Database Connectivity,它可以通过载入不同的数据库的“驱动程序”而与不同的数据库进行连接。JDBC优势在于对不同的数据库都具有很好的兼容性,而且可以使用同一套操作来操作不同的数据库。通过Java编程实现对数据库的操作是从事Web编程的核心内容之一,需要熟练掌握。
(6) 并行计算
Java可以通过特定的计算框架实现并行计算,例如Fork/Join计算框架等。当处理大数据时,采用Java进行并行计算会显著提升计算的效率,但是当数据量较小时则没有必要。Hadoop是最著名的大数据计算框架之一,它就是使用Java进行开发的。掌握Java的并行计算扩展模块,对于进行大规模的数据处理是必须的。
(7) 混合编程
使用Java与其它语言进行混合编程是非常常见的需求。例如在开发一个AI计算架构时,往往采用Java语言编写主体框架,而使用Java调用Python来实现具体的AI算法。这好比建造一座建筑时,主体架构使用钢材,而局部使用砖头。因此,掌握Java的混合编程技巧就显得非常有必要。
关于Java语言的界面编程工具、常用教材、学习路线等内容的详细介绍,请读者查阅图书《人工智能怎么学》。
如果想了解人工智能中移动端编程的相关内容,敬请关注本公众号的下一篇文章《人工智能中的移动端编程》。
关于人工智能中编程能力和技能训练的更多介绍,可以购买《人工智能怎么学》进一步阅读。

图书购买方式
京东:https://item.jd.com/13395339.html
当当:http://product.dangdang.com/29469230.html
天猫:https://detail.tmall.com/item_o.htm?id=687374654836
为了让图书惠及更多的读者,为更多想学习人工智能的人提供帮助,经过向出版社申请,对图书《人工智能怎么学》的部分内容进行改编和连载。图书《人工智能怎么学》的全部内容包含了初级入门、中阶提高以及高级进阶三个级别的内容。连载的内容主要是初级入门级别,适合想对人工智能进行快速和高效入门的读者,对于已有一定的人工智能学习基础,希望进一步进阶或提高的读者,则需要购买图书《人工智能怎么学》,学习中阶提高以及高级进阶的内容。此外,对于学习人工智能感兴趣的读者,也可以加入知识星球《人工智能怎么学》,知识星球是一个构建学习社群的平台,通过加入《人工智能怎么学》的社群,你将获得更多的学习资料和课程信息。
与作者互动和了解更多信息
想跟作者一起学习人工智能和互动,你可以加入如下社群:
知识星球:https://t.zsxq.com/0aLkVg0os
QQ群:600587177
想了解更多关于人工智能学习及实践的内容,请关注如下媒体:
官方网站:https://bigdatamininglab.github.io
官方微信公众号:人工智能怎么学(可扫描下方二维码或者微信搜索“人工智能怎么学”添加关注)
CSDN:https://blog.csdn.net/audyxiao001
参考文献
- Robert C. Martin. 代码整洁之道(第2版)[M]. 韩磊, 译. 北京: 中国工信出版集团, 人民邮电出版社, 2020.
- Herb Sutter, Andrei Alexandrescu. C++编程规范:101条规则、准则与最佳实践[M]. 刘基诚, 译. 北京: 人民邮电出版社, 2016.
- 杨冠宝. 阿里巴巴Java开发手册[M]. 北京: 电子工业出版社, 2020.
- James Gosling et al. The Java Language Specification:Java SE 8 Edition [M]. Upper Saddle River: Addison-Wesley, 2014.
- 老九君. C++的发展简史[EB/OL]. https://www.cnblogs.com/ljxt/p/11636342.html, 2019-10-08.
- 翁惠玉. C++程序设计:思想与方法(第2版)[M]. 北京: 人民邮电出版社, 2012.
- 谭浩强. C++程序设计(第3版)[M]. 北京: 清华大学出版社, 2015.
- Siddhartha Rao. Sams Teach Yourself C++ in One Hour a Day (Eighth Edition) [M]. Boston: Pearson, 2017.
- Bjarne Stroustrup. Programming:Principles and Practice Using C++ (Second Edition) [M]. Crawfordsville: Pearson, 2014.
- Bjarne Stroustrup. C++语言设计和演化[M]. 裘宗燕, 译. 北京: 人民邮电出版社, 2020.
- Stephen Prata. C++ Primer Plus(中文第6版)[M]. 张海龙 等, 译. 北京: 人民邮电出版社, 2020.
- Stanley B. Lippman, Josée Lajoie, Barbara E. Moo. C++ Primer(中文第5版)[M]. 王刚 等, 译. 北京: 电子工业出版社, 2013.
- Stanley B. Lippman. Essential C++(中文版)[M]. 侯捷, 译. 北京: 电子工业出版社, 2013.
- 侯捷. STL源码解析 [M]. 武汉: 华中科技大学出版社, 2015.
- Ivor Horton. C++标准模板库编程实战 [M]. 郭小虎 等, 译. 北京: 清华大学出版社, 2017.
- Brian W. Kernighan, Rob Pike. 程序设计实践 [M]. 裘宗燕, 译. 北京: 机械工业出版社, 2003.
- Bruce Eckel. C++编程思想(两卷合订本)[M]. 刘宗田 等, 译. 北京: 机械工业出版社, 2011.
- Scott Meyers. Effective C++:改善程序与设计的55个具体做法(第3版)[M]. 侯捷, 译. 北京: 电子工业出版社, 2011.
- Scott Meyers. More Effective C++:35个改善编程与设计的有效方法 [M]. 侯捷, 译. 北京: 电子工业出版社, 2020.
- Scott Meyers. Effective STL:50条有效使用STL的经验 [M]. 潘爱民 等, 译. 北京: 电子工业出版社, 2013.
- 陆文周. Qt 5开发及实例(第4版)[M]. 北京: 电子工业出版社, 2019.
- 王维波. Qt 5.9 C++开发指南 [M]. 北京: 人民邮电出版社, 2018.
- 冯振, 郭延宁, 吕跃勇. OpenCV 4快速入门 [M]. 北京: 电子工业出版社, 2020.
- ghscarecrow. Java的发展历程[EB/OL]. https://blog.csdn.net/ghscarecrow/article/details/82318636, 2018-09-02.
- JMCui. Java的发展历程[EB/OL]. https://www.cnblogs.com/jmcui/p/11796303.html, 2019-11-07.
- 明日科技. Java从入门到精通(第5版)[M]. 北京: 清华大学出版社, 2019.
- Kathy Sierra, Bert Bates. Head First Java (Second Edition) [M]. Sebastopol: O’Reilly, 2005.
- Bruce Eckel. Java编程思想(第4版)[M]. 陈昊鹏, 译. 北京: 机械工业出版社, 2007.
- Cay S. Horstmann. Java核心技术 卷I:基础知识(第11版)[M]. 林琪 等, 译. 北京: 机械工业出版社, 2019.
- Cay S. Horstmann. Java核心技术卷Ⅱ:高级特性(第11版)[M]. 陈昊鹏, 译. 北京: 机械工业出版社, 2020.
- Joshua Bloch. Effective Java(中文第3版)[M]. 俞黎敏, 译. 北京: 机械工业出版社, 2019.
- 周志明. 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)[M]. 北京: 机械工业出版社, 2019.
- Brian Goetz. Java并发编程实战 [M]. 童云兰 译. 北京: 机械工业出版社, 2012.
- Kamalmeet Singh. Java设计模式及实践 [M]. 张小坤 等, 译. 北京: 机械工业出版社, 2013.
- 明日科技. Java Web从入门到精通(第3版)[M]. 北京: 清华大学出版社, 2019.
- 未来科技. HTML5+CSS3+JavaScript从入门到精通[M]. 北京: 中国水利水电出版社, 2017.
- Elisabeth Robson, Eric Freeman. Head First HTML与CSS(第2版)[M]. 徐阳 等, 译. 北京: 中国电力出版社, 2013.
- Adam Freeman. HTML5权威指南 [M]. 谢廷晟 等, 译. 北京: 人民邮电出版社, 2014.
- Eric A. Meyer, Estelle Weyl . CSS权威指南(第4版)[M]. 安道, 译. 北京: 中国电力出版社, 2019.
- David Flanagan. JavaScript权威指南(第7版)[M]. 李松峰, 译. 北京: 机械工业出版社, 2021.
- 许令波. 深入分析Java Web技术内幕(修订版)[M]. 北京: 电子工业出版社, 2014.
- Nicholas S. Williams. Java Web高级编程 [M]. 王肖峰, 译. 北京: 清华大学出版社, 2015.
- 孙卫琴. Tomcat与Java Web开发技术详解(第3版)[M]. 北京: 电子工业出版社, 2019.
- 郭霖. 第一行代码Android(第3版)[M]. 北京: 人民邮电出版社, 2020.
- 欧阳燊. Android Studio开发实战:从零基础到App上线(第2版)[M]. 北京: 清华大学出版社, 2018.
- Dmitry Jemerov, Svetlana Isakova. Kotlin实战 [M]. 覃宇 等, 译. 北京: 电子工业出版社, 2017.
- Kristin Marsicano, Brian Gardner, Bill Phillips, Chris Stewart. Android编程权威指南(第4版)[M]. 王明发, 译. 北京: 中国工信出版集团, 人民邮电出版社, 2021.
- 刘望舒. Android进阶之光(第2版)[M]. 北京: 电子工业出版社, 2021.
- 邓凡平. 深入理解Android: Java虚拟机ART [M]. 北京: 机械工业出版社, 2019.
- 任玉刚. Android开发艺术探索[M]. 北京: 电子工业出版社, 2015.
- 林学森. 深入理解Android内核设计思想(上、下册)(第2版)[M]. 北京: 人民邮电出版社, 2017.
- 何红辉, 关爱民. Android 源码设计模式解析与实战(第2版)[M]. 北京: 人民邮电出版社, 2017.
- Christian Keur, Aaron Hillegass. iOS编程(第6版)[M]. 王风全, 译. 武汉: 华中科技大学出版社, 2019.
- 张益珲. Swift 4从零到精通iOS开发[M]. 北京: 清华大学出版社, 2019.
- Aaron Hillegass, Mikey Ward. Objective-C编程(第2版)[M]. 王蕾 等, 译. 武汉: 华中科技大学出版社, 2015.
- Matthew Mathias, John Gallagher. Swift编程权威指南(第2版)[M]. 陈晓亮, 译. 北京: 人民邮电出版社, 2017.
- Kazuki Sakamoto, Tomohiko Furumoto. Objective-C高级编程:iOS与OS X多线程和内存管理[M]. 黎华, 译. 北京: 人民邮电出版社, 2013.
- Erica Sadun. iOS Auto Layout开发秘籍(第2版)[M]. 孟立标, 译. 北京: 清华大学出版社, 2015.
- 珲少. iOS性能优化实战[M]. 北京: 电子工业出版社, 2019.
- 罗巍. iOS应用逆向与安全之道[M]. 北京: 机械工业出版社, 2020.
- Gaurav Vaish. 高性能iOS应用开发[M]. 梁士兴 等, 译. 北京: 人民邮电出版社, 2017.
- 刘浩. MATLAB R2020a完全自学一本通 [M]. 北京: 电子工业出版社, 2020.
- 天工在线. MATLAB 2020从入门到精通 [M]. 北京: 中国水利水电出版社, 2020.
- 苗志宏, 马金强. MATLAB面向对象程序设计[M]. 北京: 电子工业出版社, 2014.
- 徐潇, 李远 . MATLAB面向对象编程——从入门到设计模式(第2版)[M]. 北京: 北京航空航天大学出版社, 2017.
- 王文峰 等. MATLAB计算机视觉与机器认知[M]. 北京: 北京航空航天大学, 2017.
- 杨淑莹, 郑清春. 模式识别与智能计算——MATLAB技术实现(第4版)[M]. 北京: 电子工业版社, 2019.
- Eric Matthes. Python编程:从入门到实践(第2版)[M]. 袁国忠, 译. 北京: 人民邮电出版社, 2020.
- Magnus Lie Hetland. Python基础教程(第3版)[M]. 袁国忠, 译. 北京: 人民邮电出版社, 2018.
- Luciano Ramalho. 流畅的Python [M]. 安道 等, 译. 北京: 人民邮电出版社, 2017.
- Brett Slatkin. Effective Python:编写高质量Python代码的90个有效方法(第2版)[M]. 爱飞翔, 译. 北京: 机械工业出版社, 2021.
- Jan Erik Solem. Python计算机视觉编程[M]. 朱文涛 等, 译. 北京: 人民邮电出版社, 2014.
- Andreas C. Müller. Python机器学习基础教程[M]. 张亮, 译. 北京: 人民邮电出版社, 2018.
- 魏坤. Julia语言程序设计[M]. 北京: 机械工业出版社, 2018.
- 郝林. Julia编程基础(第2版)[M]. 北京: 人民邮电出版社, 2020.
- Ben Lauwens, Allen B. Downey. Think Julia [M]. Sebastopol: O’Reilly, 2019.
- Jalem Raj Rohit. Julia Cookbook [M]. Birmingham: Packt Publishing, 2018.
- Zacharias Voulgaris. Julia数据科学应用 [M]. 陈光欣, 译. 北京: 人民邮电出版社, 2018.
- 朱红庆. Julia机器学习核心编程:人人可用的高性能科学计算[M]. 北京: 电子工业出版社, 2019.
- Norman Matloff. R语言编程艺术[M]. 陈堰平, 译. 北京: 机械工业出版社, 2013.
- Andy Nicholls, Richard Pugh, Aimee Gott. R语言入门经典[M]. 姜佑 等, 译. 北京: 人民邮电出版社, 2018.
- Robert I. Kabacoff. R语言实战(第2版)[M]. 王小宁 等, 译. 北京: 人民邮电出版社, 2016.
- Hadley Wickham. 高级R语言编程指南[M]. 潘文捷 等, 译. 北京: 机械工业出版社, 2020.
- Brett Lantz. 机器学习与R语言(第2版)[M]. 李洪成 等, 译. 北京: 机械工业出版社, 2017.
- 程乾, 刘永, 高博. R语言数据分析与可视化从入门到精通[M]. 北京: 北京大学出版社, 2020.
- 周伟明.程序员的十层楼(一、二、三)[J]. 程序员, 2009(6):134-136; 2009(7):118-120; 2009(8):134-136.
注:本文版权归作者个人所有,如需转载请联系作者,未经授权不得转载。
相关文章:
人工智能中的Web端编程
Java是当前的主流编程语言之一,常年稳居TIOBE编程语言排行榜前五。Java的使用领域非常广泛,包括了桌面端编程、Web端编程、移动端编程等几乎所有的编程领域。Java是Web端编程使用最广泛的编程语言之一。要学习Web端编程,需要了解Java语言的知…...
jsp+mysql+J2EE校园自行车租赁系统cdA1A2程序
本系统的具体功能有以下六项: 1、用户信息管理模块:用户需要注册成为本网站的用户,同时修改自己的用户资料,在必要时修改自己的登陆密码。 2、车辆查询模块:用户可以根据自己的要求,按照不同的查询方式来查询自己想要的…...
当营养遇上肠道菌群:探究其对儿童健康的影响
谷禾健康 越来越多的证据表明,肠道菌群定植紊乱和微生物多样性减少与全球非传染性疾病 (NCD) 的增加有关。影响儿童和青少年的非传染性疾病包括肥胖及其相关合并症、自身免疫性疾病、过敏性疾病和哮喘。饮食变化也与非传染性疾病的发病机制有关,并且由于…...
vue尚品汇商城项目-day01【4.完成非路由组件Header与Footer业务】
文章目录4.完成非路由组件Header与Footer业务4.1使用组件的步骤(非路由组件)本人其他相关文章链接4.完成非路由组件Header与Footer业务 在咱们项目开发中,不在以HTML CSS 为主,主要搞业务、逻辑 开发项目的流程: (1)…...
IDEA安装教程(图文详解,一步搞定)
文章目录第一步:官网下载IDEA第二步:卸载旧的IDEA(没有则跳过)第二步:安装IDEA第一步:官网下载IDEA 地址:https://www.jetbrains.com/idea/download/other.html 第二步:卸载旧的I…...
【01 DualCam Porting】
1、配置camera_custom_stero_setting.h a、增加sensor配置 /vendor/mediatek/proprietary/custom/mt6765/hal/camera/camera_custom_stereo_setting.h注意: 1)IMGOYUV Size:在有FOV crop的情况下,不能配置为sensor full size,建议比full size 小或者配置为fov crop的值…...
redis --- string类型的使用
目录 一、string类型使用 1.1、set key value参数解析 1.2、同时设置/获取多个键值 1.3、获取/设置指定区间范围内的值 1.4、数值增减 1.5、获取字符串长度和内容追加 1.6、分布式锁 1.7、getset(先get再set) 一、string类型使用 1.1、set key value参数解析 SET key v…...
康耐视visionpro-机器视觉定位引导-经验总结-来自视觉人粉丝分享
1、机器人吸取电路板,移动到拍照位置,并在电路板上找一个标记点,并且,通过机器人示教把当前电路板能够准确的放入到目标位置。 2、机器人吸取电路板吸取电路板,在x,y方向进行移动,总共移动4个位置ÿ…...
包管理工具npm
一:package.json 在某个文件路径下,执行 npm init。就会生成package.json文件。大致如下: {"name": "test","version": "1.0.0","description": "测试","main": &q…...
ChatGPT正进军各行各业,抓住机遇,拥有无限的可能性。
每一个新技术的出现都会对各行各业产生冲击,但关键在于如何抓住这个机遇。ChatGPT是一项非常具有前途的技术,它可以在许多领域为人们提供更好的服务和体验。这项技术的优势之一是它可以快速而准确地理解和解释自然语言,从而使人们可以更轻松地…...
Maven 多模块管理
多模块管理简单地理解就是一个 Java 工程项目中不止有一个 pom.xml 文件,会在不同的目录中有多个这样的文件,进而实现 Maven 的多模块管理 在多人使用Maven协作开发项目时,尤其是稍微上点规模的项目,每个RD的工作都细分到具体功能…...
crash 内核调试工具 ps 指令 显示的进程状态 RU, IN, UN, ZO, ST, TR, DE, SW, WA, PA 什么意思
crash> help ps | grep "the task state" 5. the task state (RU, IN, UN, ZO ,ST, TR, DE, SW, WA, PA, ID, NE) 参考linux-4.19.113内核源码(include/linux/sched.h),有如下定义 /** Task state bitmask. NOTE! These bits…...
Spring《二》bean的实例化与生命周期
🍎道阻且长,行则将至。🍓 上一篇:Spring《一》快速入门 下一篇:Spring《三》DI依赖注入 目录一、bean实例化🍍1.构造方法 ***2.静态工厂 *使用工厂创建对象实例化bean3.实例工厂 ***使用示例工厂创建对象实…...
java与kotlin 写法区别
原文链接:https://gitcode.net/mirrors/mindorksopensource/from-java-to-kotlin?utm_sourcecsdn_github_accelerator#assigning-the-null-value Print to Console 打印到控制台 Java System.out.print("Amit Shekhar"); System.out.println("Amit…...
服务器运行深度学习代码使用指南
该内容配置均在九天毕昇下配置。 当前系统使用的linux版本为:Ubuntu 18.04 LTS。 当前版本安装的是:cuda10.1。 九天毕昇平台:https://jiutian.10086.cn/edu/#/home 一、linux下运行python的操作 ls 为列出当前目录中的文件 cd 文件名 进入…...
计算机组成原理 - 2. 数据的表示和运算
整理自天勤高分笔记,购书链接: 24 天勤高分笔记 要记住的几个数字 📓: 215327682^{15} 3276821532768 216655362^{16} 6553621665536 23121474836482^{31} 21474836482312147483648 23242949672962^{32} 4294967296232429496…...
【js】基础知识点--语句,break和continue,switch,with,for..in,do-while,while
一、break和continue语句,常用 break 语句会立即退出循环,强制继续执行循环后面的语句。而 continue 语句虽然也是立即退出循环,但退出循环后会从循环的顶部继续执行 var num 0; for (var i1; i < 10; i) {if (i % 5 0) {break;}num; …...
【C++】迭代器
内容来自《C Primer(第5版)》9.2.1 迭代器、9.2.3 begin和end成员、9.3.6 容器操作可能使迭代器失效、10.4.3 反向迭代器 目录 1. 迭代器 1.1 迭代器范围 1.2 使用左闭合范围蕴含的编程假定 2. begin和end成员 3. 容器操作可能使迭代器失效 3.1 编…...
数据可视化在前端中的应用
前端开发中,数据可视化是一种非常重要的技术。它可以将复杂的数据以图形化的方式展示出来,让用户更容易理解和分析数据。在前端中,VUE是一种非常流行的JavaScript框架,可以用来实现各种数据可视化效果。 首先,让我们来看看一些常见的数据可视化方式: 表格:表格是数据可…...
FFmpeg 合并视频文件没声音,不同步原因
查了不少帖子也没搞明白,可能懂的人不会遇到吧。 1 没声音是因为我几个视频文件中,有的没音轨,就是用文字生成了个视频,需要先给它加个dummy的音轨才行。 2 视频不同步是因为各个视频格式不一样,参数挺多我也不知道具…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
