计算机编程语言详解

计算机编程语言,用于表达数字计算机的一组详细指令的各种语言。 当这些指令处于称为机器语言的计算机制造商特定数字形式时,在用相应汇编语言表达的简单替换过程之后,或者在从某些“更高级别”语言翻译之后,可以直接执行这些指令。 虽然有许多计算机语言,但相对较少被广泛使用。

机器和汇编语言是“低级别的”,要求程序员明确管理计算机的所有数据存储和操作的特殊功能。 相比之下,高级语言可以防止程序员担心这些注意事项,并提供程序员更容易编写和读取的符号。

计算机编程语言详解_第1张图片

语言类型

机器语言和汇编语言(Machine and assembly languages)

算法语言(Algorithmic languages)

FORTRAN
ALGOL
LISP
C

面向商业的语言(Business-oriented languages)

COBOL
SQL

面向教育的语言(Education-oriented languages)

BASIC
Pascal
Logo
Hypertalk

面向对象的语言(Object-oriented languages)

C++
Ada
Java
Visual Basic

声明性语言(Declarative languages)

脚本语言(Scripting languages)

文档格式化语言(Document formatting languages)

TeX
PostScript
SGML

万维网显示语言(World Wide Web display languages)

HTML
XML
Web scripting

元素编程语言(Elements Of Programming)

Control structures
Data structures

 

语言类型

机器语言和汇编语言(Machine and assembly languages)

机器语言由特定计算机可以直接执行的操作数字代码组成。 代码是0和1的字符串,或二进制数字(“位”),它们经常被转换为十六进制(基数16)以供人类查看和修改。 机器语言指令通常使用一些位来表示操作,例如加法,一些用于表示操作数,或者可能用于表示下一条指令的位置。 机器语言难以读写,因为它不像传统的数学符号或人类语言,并且其代码因计算机而异。

汇编语言旨在轻松转换为机器语言。 尽管可以通过名称而不是通过其机器地址来引用数据块,但是汇编语言不提供组织复杂信息的更复杂的方法。 与机器语言一样,汇编语言需要详细了解内部计算机体系结构。 当这些细节很重要时,如在编程计算机以与输入/输出设备(打印机,扫描仪,存储设备等)交互时,它是有用的。

算法语言(Algorithmic languages)

算法语言旨在表达数学或符号计算。 它们可以用类似于数学的符号表示代数运算,并允许使用包含常用操作的子程序进行重用。 它们是第一种高级语言。

FORTRAN
第一个重要的算法语言是FORTRAN(公式转换),由John Backus领导的IBM团队于1957年设计。 它旨在用于实数的科学计算,并将它们的集合组织为一维或多维数组。 其控制结构包括条件IF语句,重复循环(所谓的DO循环)和允许非顺序执行程序代码的GOTO语句。 FORTRAN使得用于常见数学运算的子程序变得方便,并且构建了它们的库。

FORTRAN还旨在转化为高效的机器语言。 它立即成功并继续发展。

ALGOL
ALGOL(算法语言)由美国和欧洲计算机科学家委员会在1958年至1960年期间设计,用于发布算法以及进行计算。 与LISP(在下一节中描述)一样,ALGOL具有递归子程序 - 可以调用自身来解决问题的过ALGOL为描述编程语言Backus-Naur Form的结构提供了一种符号,Backus-Naur Form在某些变体中成为说明编程语言语法(语法)的标准工具。 ALGOL在欧洲广泛使用,多年来它仍然是计算机算法发布的语言。 许多重要的语言,如Pascal和Ada(后面都有描述),都是它的后代。程,将其减少为同类的较小问题。 ALGOL引入了块结构,其中程序由可能包含数据和指令的块组成,并且具有与整个程序相同的结构。 块结构成为用于构建小型组件的大型程序的强大工具。

LISP
LISP(列表处理)是由约翰麦卡锡在麻省理工学院(MIT)于1960年开发的,它建立在递归函数的数学理论之上(其函数出现在它自己的定义中)。 LISP程序是应用于数据的函数,而不是FORTRAN和ALGOL中的一系列程序步骤。 LISP使用一种非常简单的表示法,其中操作及其操作数在括号列表中给出。例如,(+ a(* b c))代表a + b * c。虽然这看起来很尴尬,但这种符号适用于计算机。 LISP还使用列表结构来表示数据,并且由于程序和数据使用相同的结构,因此LISP程序很容易在其他程序上作为数据运行。

LISP成为人工智能(AI)编程的通用语言,部分原因是由于LISP和AI工作在麻省理工学院的合作,部分原因是能够“学习”的AI程序可以用LISP编写为自修改程序。 LISP通过众多方言发展,例如Scheme和Common LISP。

C
C编程语言由AT&T公司的Dennis Ritchie和Brian Kernighan于1972年开发,用于编程计算机操作系统。它通过较小单元的组合构建数据和程序的能力与ALGOL相当。它使用紧凑的表示法,使程序员能够使用数据地址及其值进行操作。这种能力在系统编程中很重要,C与汇编语言共享可以利用计算机内部架构的所有功能。 C及其后代C ++仍然是最常用的语言之一。

面向商业的语言(Business-oriented languages)
COBOL
COBOL(通用业务导向语言)自1959年成立以来一直被企业大量使用。计算机制造商和用户委员会以及美国政府组织成立了CODASYL(数据系统和语言委员会),以开发和监督语言标准,以便确保其在不同系统中的可移植性。

COBOL在介绍时使用类似英语的符号小说。业务计算组织和操作大量数据,COBOL为这些任务引入了记录数据结构。记录将异构数据(例如姓名,ID号,年龄和地址)聚合到一个单元中。这与科学语言形成对比,在这种语言中,同质数组是常见的。记录是将数据“分块”成单个对象的重要示例,它们几乎出现在所有现代语言中。 

SQL
SQL(结构化查询语言)是一种用于指定数据库组织(记录集合)的语言。使用SQL组织的数据库称为关系数据库,因为SQL提供了查询数据库以查找属于给定关系的信息的功能。例如,查询可能是“查找包含last_name Smith和city New York的所有记录。”商业数据库程序通常使用类似SQL的语言进行查询。

面向教育的语言(Education-oriented languages)
BASIC
BASIC(初学者的通用符号指令代码)是由John Kemeny和Thomas Kurtz于20世纪60年代中期在达特茅斯学院设计的。它旨在让初学者,特别是非计算机科学专业的学生容易学习,并且在具有许多用户的分时计算机上运行良好。它具有简单的数据结构和符号,并且被解释为:BASIC程序逐行翻译并在翻译时执行,这使得查找编程错误变得容易。

它的小巧和简洁也使BASIC成为早期个人电脑的流行语言。它最近的形式采用了其他当代语言的许多数据和控制结构,这使得它更强大但对初学者来说不太方便。

Pascal

大约1970年,瑞士的Niklaus Wirth设计了Pascal来教授结构化编程,强调了在没有GOTO语句的情况下有条理地使用条件和循环控制结构。 虽然Pascal在表示法中类似于ALGOL,但它提供了定义用于组织复杂信息的数据类型的能力,这是超出ALGOL以及FORTRAN和COBOL功能的功能。 用户定义的数据类型允许程序员引入复杂数据的名称,然后语言翻译者可以在运行程序之前检查其是否正确使用。

在20世纪70年代末和80年代,Pascal是最广泛使用的编程指令语言之一。 它几乎可以在所有计算机上使用,并且由于其熟悉性,清晰度和安全性,它被用于生产软件和教育。

LOGO
标志起源于20世纪60年代后期,作为教育的简化LISP方言; Seymour Papert和其他人在麻省理工学院用它来向学龄儿童传授数学思维。它有一个比LISP更传统的语法,并以“乌龟图形”为特色,这是一种生成计算机图形的简单方法。 (这个名字来自一个早期项目,用于编写一个类似乌龟的机器人。)海龟图形使用了以身体为中心的指令,其中一个对象通过命令移动到屏幕上,例如“左90”和“前进”,指定相对的动作到目前的对象的位置和方向,而不是固定的框架。与递归例程一起,这种技术使得编写复杂和有吸引力的模式变得容易。

Hypertalk
Hypertalk是由Bill Atkinson为Apple的Macintosh设计的“我们其他人的编程”。使用简单的类似英语的语法,Hypertalk使任何人都可以快速将文本,图形和音频组合成“链接堆栈”,可以通过在程序提供的标准按钮上单击鼠标来导航。在20世纪80年代和90年代早期,Hypertalk在教育工作者中特别受欢迎,用于课堂多媒体演示。尽管Hypertalk具有面向对象语言的许多功能(在下一节中描述),但Apple并没有为其他计算机平台开发它并让它萎靡不振;随着苹果公司在20世纪90年代的市场份额下降,一种新的跨平台显示多媒体的方式使得Hypertalk几乎已经过时(参见万维网显示语言部分)。

面向对象的语言(Object-oriented languages)
面向对象的语言有助于管理大型程序的复杂性。对象打包数据及其上的操作,以便只有操作可公开访问,并且隐藏数据结构的内部细节。通过允许程序员单独考虑程序的每个部分,这种信息隐藏使大规模编程变得更容易。此外,对象可以从更一般的对象派生,“继承”它们的能力。这样的对象层次结构使得可以定义专用对象而不重复更一般的对象中的所有对象。

面向对象的编程始于Simula语言(1967),它为ALGOL添加了隐藏信息。另一个有影响力的面向对象语言是Smalltalk(1980),其中一个程序是一组通过彼此发送消息来交互的对象。

C ++
C ++语言由Bjarne Stroustrup在20世纪80年代中期在AT&T开发,通过在保留C程序效率的同时添加对象来扩展C语言。它一直是教育和工业编程最重要的语言之一。许多操作系统的大部分,例如Microsoft Corporation的Windows 98,都是用C ++编写的。

Ada
阿达以奥古斯塔·阿达·金(Augusta Ada King)的名字命名,她是洛夫莱斯的伯爵夫人,曾是19世纪英国发明家查尔斯·巴贝奇的助手,有时被称为第一位计算机程序员。阿达语是20世纪80年代初为美国国防部开发的大规模节目。它将类似Pascal的表示法与将操作和数据打包成独立模块的能力相结合。它的第一个形式Ada 83并不是完全面向对象的,但随后的Ada 95提供了对象以及构造它们的层次结构的能力。虽然Ada不再被授权用于国防部的工作,但仍然是工程大型项目的有效语言。

Java
在20世纪90年代早期,Java由Sun Microsystems,Inc。设计,作为万维网(WWW)的编程语言。虽然它在外观上类似于C ++,但它完全是面向对象的。特别是,Java省去了较低级别的功能,包括操作数据地址的能力,这种功能在分布式系统的程序中既不可取也不实用。为了便于移植,Java程序由特定于每个计算机平台的Java虚拟机翻译,然后执行Java程序。除了通过Web“applet”向Internet添加交互功能之外,Java还被广泛用于编写小型便携式设备,例如移动电话。

Visual Basic
Visual Basic是由Microsoft开发的,通过添加对象和“事件驱动”编程来扩展BASIC的功能:按钮,菜单和图形用户界面(GUI)的其他元素。 Visual Basic也可以在其他Microsoft软件中用于编写小例程。

声明性语言(Declarative languages)

声明性语言,也称为非过程或非常高级别,是编程语言,其中(理想情况下)程序指定要执行的操作而不是如何执行。在这些语言中,程序的规范与其实现之间的差异小于到目前为止所描述的过程语言。两种常见的声明性语言是逻辑和函数语言。

逻辑编程语言,其中PROLOG(逻辑编程)是最熟知的,将程序称为一组逻辑关系(例如,祖父母是某人的父母的父母)。这些语言类似于SQL数据库语言。程序由“推理引擎”执行,该推理引擎通过系统地搜索这些关系来回答查询以做出将回答查询的推断。 PROLOG已广泛用于自然语言处理和其他AI程序。


功能语言具有数学风格。通过将函数应用于参数来构造函数程序。功能语言,如LISP,ML和Haskell,被用作语言开发,自动数学定理证明器和一些商业项目中的研究工具。

 

脚本语言(Scripting languages)

脚本语言有时被称为小语言。它们旨在解决相对较小的编程问题,这些问题不需要数据声明的开销和使大型程序易于管理所需的其他功能。脚本语言用于编写操作系统实用程序,用于特殊用途的文件操作程序,并且因为它们易于学习,有时用于相当大的程序。


PERL(实用提取和报告语言)是在20世纪80年代后期开发的,最初用于UNIX操作系统。它旨在拥有早期脚本语言的所有功能。 PERL提供了许多方式来陈述常见操作,从而允许程序员采用任何方便的方式。在20世纪90年代,它成为一种系统编程工具,无论是小型实用程序还是大型原型程序。与下面讨论的其他语言一起,它也变得流行于编程计算机Web“服务器”。

文档格式化语言(Document formatting languages)
文档格式化语言指定打印文本和图形的组织。它们分为几类:文本格式符号可以提供与文字处理程序相同的功能,页面描述语言由打印设备解释,最常见的是标记语言,用于描述文档各部分的预期功能。

TeX
TeX是1977-86期间开发的,由斯坦福大学教授唐纳德·克努特(Donald Knuth)用作文本格式化语言,以提高他书中数学符号的质量。文本格式化系统与WYSIWYG(“所见即所得”)字处理器不同,在文档中嵌入纯文本格式化命令,然后由语言处理器解释这些命令以生成用于显示或打印的格式化文档。 TeX标记斜体文本,例如,{\ it it is iticicized},然后显示为斜体。

TeX很大程度上取代了早期的文本格式语其强大而灵活的功能使专家能够精确控制字体的选择,表格的布局,数学符号以及文档中图形的包含。它通常在“宏”包的帮助下使用,这些包定义了用于常见操作的简单命令,例如启动新段落; LaTeX是一种广泛使用的包。 TeX包含用于不同类型文档的许多标准“样式表”,并且这些可以由每个用户进一步调整。还有一些相关的程序,如BibTeX,管理书目,并具有所有常见书目样式的样式表,以及具有各种字母的语言的TeX版本。

PostScript

PostScript是一种页面描述语言,由Adobe Systems Incorporated在20世纪80年代早期在Xerox PARC(Palo Alto研究中心)的工作基础上开发。这些语言描述的文件可以由个人计算机解释,以在其屏幕上或通过打印机或排版设备中的微处理器显示文档。

例如,PostScript命令可以以各种字体和大小精确定位文本,绘制数学描述的图像,并指定颜色或阴影。 PostScript使用后缀,也称为反向波兰表示法,其中操作名称跟随其参数。因此,“300 600 20 270弧形行程”意味着:在位置(300,600)处绘制(“行程”)270度弧,半径为20。尽管PostScript可以由程序员读取和写入,但它通常由文本格式化程序,文字处理器或图形显示工具生成。

PostScript的成功归功于其规范属于公共领域,并且与高分辨率激光打印机非常匹配。它影响了打印字体的发展,制造商生产各种各样的PostScript字体。

SGML
SGML(标准通用标记语言)是标记语言定义的国际标准;也就是说,它是一种元语言。标记由称为标记的符号组成,这些标记指定文本的功能或如何显示。 SGML强调描述性标记,其中标记可能是“”。这样的标记表示文档功能,它可以被解释为计算机屏幕上的反向视频,打字机下划线或排版文本中的斜体。

SGML用于指定DTD(文档类型定义)。 DTD通过指定文档中必须出现的元素(例如,)来定义一种文档,例如报表,并为文档元素的使用提供规则,例如段落可能出现在表条目中但是表格可能不会出现在段落中。解析程序可以分析标记的文本以确定它是否符合DTD。另一个程序可以读取标记以准备索引或将文档翻译成PostScript以进行打印。另一种可能会为视觉或听觉障碍的读者生成大型或音频。</p> <p><strong><span style="color: #000000;">万维网显示语言(World Wide Web display languages)</span></strong><br><span style="color: #0000ff;">HTML</span><br>万维网是用于在计算机监视器上显示通过因特网检索的文本,图形和音频的系统。每个检索单元称为网页,这些页面通常包含允许检索相关页面的“链接”。 HTML(超文本标记语言)是用于编码网页的标记语言。它由Tim Berners-Lee于20世纪80年代在瑞士CERN核物理实验室设计,由SGML DTD定义。 HTML标记标记指定文档元素,例如标题,段落和表格。它们标记文档以供计算机程序(称为Web浏览器)显示。浏览器解释标签,在布局中显示标题,段落和表格,以适应屏幕大小和可用的字体。</p> <p>HTML文档还包含锚点,这些锚点是指定指向其他网页的链接的标记。锚的形式为<A HREF= "http://www.britannica.com">EncyclopædiaBritannica</A>,其中引用的字符串是链接指向的URL(通用资源定位符)(Web“地址) “)及其后面的文本是Web浏览器中显示的内容,下划线表示它是指向另一个页面的链接。显示为单个页面的内容也可以由多个URL形成,一些URL包含文本和其他图形。</p> <p><span style="color: #0000ff;">XML</span><br>HTML不允许定义新的文本元素;也就是说,它不可扩展。 XML(可扩展标记语言)是SGML的简化形式,适用于在Web上发布的文档。与SGML一样,XML使用DTD来定义文档类型以及它们中使用的标记的含义。 XML采用易于解析的约定,例如文档实体由开始和结束标记标记,例如<BEGIN> ... </ BEGIN>。 XML提供比HTML更多种类的超文本链接,例如双向链接和相对于文档子部分的链接。</p> <p>因为作者可以定义新标记,所以XML DTD还必须包含指示Web浏览器如何解释它们的规则 - 如何显示实体或如何生成诸如准备电子邮件之类的操作。</p> <p><span style="color: #0000ff;">Web scripting</span><br>标记有HTML或XML的网页主要是静态文档。 Web脚本可以在读者使用它时向页面添加信息,或者让读者输入可以例如传递给在线业务的订单部门的信息。 CGI(通用网关接口)提供了一种机制;它在读者的Web浏览器和提供页面的Web服务器之间传输请求和响应。服务器上的CGI组件包含称为脚本的小程序,这些程序从浏览器系统获取信息或提供用于显示的信息。一个简单的脚本可能会询问读者的姓名,确定读者使用的系统的Internet地址,并打印问候语。脚本可以用任何编程语言编写,但是,因为它们通常是简单的文本处理例程,所以像PERL这样的脚本语言是特别合适的。</p> <p><span style="color: #0000ff;">JavaScript</span></p> <p>另一种方法是使用为Web脚本设计的语言由浏览器执行。 JavaScript就是这样一种语言,由Netscape Communications Corp.设计,可以与Netscape和微软的浏览器一起使用。 JavaScript是一种简单的语言,与Java完全不同。 JavaScript程序可以嵌入到具有HTML标记<script language =“JavaScript”>的网页中。选择页面后,浏览器将执行该标记后面的JavaScript指令。为了加速动态(交互式)页面的显示,JavaScript通常与XML或其他语言结合使用,以便在服务器和客户端浏览器之间交换信息。特别是,XMLHttpRequest命令启用来自服务器的异步数据请求,而不需要服务器重新发送整个Web页面。编程的这种方法或“哲学”称为Ajax(异步JavaScript和XML)。</p> <p>VB脚本是Visual Basic的子集。最初是为Microsoft Office程序套件开发的,后来也用于Web脚本。它的功能类似于JavaScript,它可以以相同的方式嵌入HTML中。</p> <p>使用这种脚本语言进行Web编程的背后是组件编程的想法,其中程序是通过组合独立的先前编写的组件而无需任何进一步的语言处理来构造的。 JavaScript和VB Script程序被设计为可以附加到Web浏览器的组件,以控制它们显示信息的方式。</p> <p><strong>元素编程语言(Elements Of Programming)</strong><br>尽管存在符号差异,但当代计算机语言提供了许多相同的编程结构。这些包括基本控制结构和数据结构。前者提供表达算法的手段,后者提供组织信息的方法。<br> <br><span style="color: #0000ff;">控制结构(Control structures)</span><br>用过程语言编写的程序,最常见的类似于食谱,有成分列表和使用它们的逐步说明。几乎每种程序语言中的三种基本控制结构是:</p> <p>1.顺序 - 混合液体成分,然后加入干燥的成分。<br>2.有条件 - 如果西红柿是新鲜的,那么煨它们,但如果罐装,跳过这一步。<br>迭代击败蛋清直到形成软峰。<br>Sequence是默认的控制结构;说明一个接一个地执行。例如,它们可以执行一系列算术运算,将结果分配给变量,以找到二次方程ax2 + bx + c = 0的根。条件IF-THEN或IF-THEN-ELSE控制结构允许程序遵循替代执行路径。迭代或循环为计算机提供了大部分功能。他们可以根据需要重复一系列步骤,适当重复非常简单的步骤可以解决复杂的问题。</p> <p>可以组合这些控制结构。序列可能包含几个循环;循环可以包含嵌套在其中的循环,或者条件的两个分支可以包含具有循环和更多条件的序列。在本文中使用的“伪代码”中,“*”表示乘法,“←”用于为变量赋值。以下编程片段使用IF-THEN结构来查找二次方程的一个根,使用二次方程式:</p> <p><br> 二次公式</p> <p>二次公式假设a是非零并且判别式(平方根符号内的部分)不是负的(为了获得实数根)。条件检查这些假设:</p> <ul class="with-dots"> <li> <div> IF  <em>a</em> = 0 THEN </div> </li> <li> <div> ROOT ← − <em>c</em>/ <em>b</em> </div> </li> <li> <div> ELSE </div> </li> <li> <div> DISCRIMINANT ←  <em>b</em>* <em>b</em> − 4* <em>a</em>* <em>c</em> </div> </li> <li> <div> IF DISCRIMINANT ≥ 0 THEN </div> </li> <li> <div> ROOT ← (− <em>b</em> + SQUARE_ROOT(DISCRIMINANT))/2* <em>a</em> </div> </li> <li> <div> ENDIF </div> </li> <li> <div> ENDIF </div> </li> </ul> <p>上述片段中使用的SQUARE_ROOT函数是子程序(也称为过程,子例程或函数)的示例。子程序就像是一次给出的酱汁配方,并作为许多其他食谱的一部分使用。子程序接受输入(需要的数量)并产生结果(酱汁)。常用的子程序通常位于提供语言的集合或库中。子程序可以在其定义中调用其他子程序,如以下程序所示(其中ABS是绝对值函数)。 SQUARE_ROOT是通过使用WHILE(不定)循环实现的,该循环产生实数的平方根的良好近似,除非x非常小或非常大。通过声明其名称,输入数据类型和输出来编写子程序:</p> <ul class="with-dots"> <li> <div> FUNCTION SQUARE_ROOT(REAL  <em>x</em>) RETURNS REAL </div> </li> <li> <div> ROOT ← 1.0 </div> </li> <li> <div> WHILE ABS(ROOT*ROOT −  <em>x</em>) ≥ 0.000001 </div> </li> <li> <div> AND WHILE ROOT ← ( <em>x</em>/ROOT + ROOT)/2 </div> </li> <li> <div> RETURN ROOT </div> </li> </ul> <p>子程序可以将问题分解为更小,更易处理的子问题。 有时可以通过将问题减少到原始版本较小的子问题来解决问题。 在这种情况下,例程被称为递归子程序,因为它通过重复调用自身来解决问题。 例如,数学中的阶乘函数(n!= n∙(n-1)⋯3∙2∙1,即前n个整数的乘积)可以编程为递归例程:</p> <ul class="with-dots"> <li> <div> FUNCTION FACTORIAL(INTEGER  <em>n</em>) RETURNS INTEGER </div> </li> <li> <div> IF  <em>n</em> = 0 THEN RETURN 1 </div> </li> <li> <div> ELSE RETURN  <em>n</em> * FACTORIAL( <em>n</em>−1) </div> </li> </ul> <p>递归的优点在于它通常是对精确定义的简单重述,避免了迭代解决方案的簿记细节。</p> <p>在机器语言级别,循环和条件是用分支指令实现的,分支指令说“跳转到”程序中的新点。高级语言中的“goto”语句表达相同的操作,但很少使用,因为它使人类难以遵循程序的“流程”。某些语言(如Java和Ada)不允许这样做。</p> <p><span style="color: #0000ff;">数据结构(Data structures)</span><br>控制结构组织算法,而数据结构组织信息。特别是,数据结构指定数据类型,因此可以对它们执行哪些操作,同时消除了程序员跟踪存储器地址的需要。简单的数据结构包括整数,实数,布尔值(真/假),以及字符或字符串。通过组合一个或多个数据类型来形成复合数据结构。</p> <p>最重要的复合数据结构是数组,同类数据集合,以及记录,异构集合。数组可以表示数字向量,字符串列表或向量集合(数组数组或数学矩阵)。记录可以存储员工信息名称,职称和薪水。记录数组(例如员工表)是元素的集合,每个元素都是异构的。相反,记录可能包含一个矢量,即一个数组。</p> <p>记录组件或字段按名称选择;例如,E.SALARY可能代表记录E的工资字段。数组元素由其位置或索引选择; A [10]是数组A中位置10的元素。因此FOR循环(确定迭代)可以通过具有索引限制的数组(在下面的示例中为FIRST TO LAST)运行,以便对其元素求和:</p> <ul class="with-dots"> <li> <div> FOR  <em>i</em> ← FIRST TO LAST </div> </li> <li> <div> SUM ← SUM +  <em>A</em>[ <em>i</em>] </div> </li> </ul> <p>数组和记录具有固定的大小。 可以增长的结构是使用动态分配构建的,可根据需要提供新的存储。 这些数据结构具有组件,每个组件包含数据和对其他组件的引用(以机器术语,它们的地址)。 这种自引用结构具有递归定义。 例如,bintree(二叉树)要么是空的,要么包含带有数据的根组件以及左右bintree“children”。这样的bintree有效地实现了信息表。 对它们进行操作的子程序自然是递归的; 以下例程打印出bintree的所有元素(每个都是某个子树的根):</p> <ul class="with-dots"> <li> <div> PROCEDURE TRAVERSE(ROOT: BINTREE) </div> </li> <li> <div> IF NOT(EMPTY(ROOT)) </div> </li> <li> <div> TRAVERSE(ROOT.LEFT) </div> </li> <li> <div> PRINT ROOT.DATA </div> </li> <li> <div> TRAVERSE(ROOT.RIGHT) </div> </li> <li> <div> ENDIF </div> </li> </ul> <p>抽象数据类型(ADT)对于大规模编程很重要。他们将数据结构和操作打包在其上,隐藏内部细节。例如,ADT表为用户提供插入和查找操作,同时保持底层结构(无论是数组,列表还是二叉树)不可见。在面向对象语言中,类是ADT,对象是它们的实例。下面的面向对象的伪代码示例假定存在ADT bintree和“超类”COMPARABLE,表征存在比较操作的数据(例如整数的“<”)。它定义了一个新的ADT,TABLE,它隐藏了它的数据表示并提供了适合于表的操作。此类根据COMPARABLE类的元素类型参数进行多态定义。它的任何实例都必须指定该类型,这里是一个带有员工数据的类(COMPARABLE声明意味着PERS_REC必须提供比较操作来对记录进行排序)。实现细节被省略。</p> <p> </p> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1174940090233839616"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(计算机编程语言详解)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1891596966492696576.htm" title="计算机有效策略无法连接打印,您计算机上的一个策略阻止您连接到该打印列队。请与您的系统管理员联系。请问这是什么原因..." target="_blank">计算机有效策略无法连接打印,您计算机上的一个策略阻止您连接到该打印列队。请与您的系统管理员联系。请问这是什么原因...</a> <span class="text-muted">满天乱走</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%9C%89%E6%95%88%E7%AD%96%E7%95%A5%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5%E6%89%93%E5%8D%B0/1.htm">计算机有效策略无法连接打印</a> <div>单击“开始→运行”,输入“gpedit.msc”,在打开的“组策略”窗口中依次展开“本地计算机→用户配置→管理模板→控制面板→打印机”,然后双击右侧“阻止删除打印机”项,选择“已禁用”,确定推出后即可删除(有时需要重新启动电脑)。如果上述方法仍不能删除打印机,请执行一下操作:用鼠标逐一单击系统开始菜单中的“设置”、“控制面板”命令,打开系统的控制面板窗口,双击该窗口中的“管理工具”图标,再在其后窗</div> </li> <li><a href="/article/1891595947813695488.htm" title="C#、ASP、ASP.NET、.NET、ASP.NET CORE区别、ASP.NET Core其概念和特点、ASP.NET Core个人心得体会" target="_blank">C#、ASP、ASP.NET、.NET、ASP.NET CORE区别、ASP.NET Core其概念和特点、ASP.NET Core个人心得体会</a> <span class="text-muted">手中的风筝664</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a> <div>C#是一种面向对象的编程语言,主要用于开发跨平台的应用程序。它是.NET框架的一部分,并且可以在.NET平台上运行。ASP(ActiveServerPages)是一种用于构建动态Web页面的技术,使用VBScript或JScript作为服务器端脚本语言。它是早期的Microsoft技术,现已逐渐过时。ASP.NET是微软推出的下一代Web应用程序开发技术,它提供了更强大、更高效的功能和工具。ASP</div> </li> <li><a href="/article/1891595065856421888.htm" title="OpenCV 简介" target="_blank">OpenCV 简介</a> <span class="text-muted">奇点创客</span> <a class="tag" taget="_blank" href="/search/OpenCV/1.htm">OpenCV</a> <div>OpenCV(OpenSourceComputerVisionLibrary,开源计算机视觉库:http://opencv.org)是一个开放源代码库,其中包含数百种计算机视觉算法。本文档介绍所谓的OpenCV2.xAPI,与基于C的OpenCV1.xAPI相比,该API本质上是一套C++API(自OpenCV2.4发行以来,不推荐再使用CAPI,并且不使用“C”编译器进行测试)。OpenCV具有</div> </li> <li><a href="/article/1891594687815413760.htm" title="C++/Qt 信号槽机制详解" target="_blank">C++/Qt 信号槽机制详解</a> <span class="text-muted">_S_Q</span> <a class="tag" taget="_blank" href="/search/Qt/1.htm">Qt</a><a class="tag" taget="_blank" href="/search/Qt%E5%BC%80%E5%8F%91/1.htm">Qt开发</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a> <div>文章目录C++/Qt信号槽机制详解一、信号和槽的基本概念1.信号2.槽3.连接二、信号和槽的基本使用1.信号和槽的声明和定义2.连接信号和槽三、信号和槽的工作原理1.MOC(Meta-ObjectCompiler)2.事件循环3.连接类型四、信号和槽的高级应用1.自定义信号和槽2.Lambda表达式和函数对象3.信号和槽的断开连接五、总结C++/Qt信号槽机制详解信号和槽是Qt框架中用于对象间通信</div> </li> <li><a href="/article/1891592668526473216.htm" title="OpenCV机器学习(1)人工神经网络 - 多层感知器类cv::ml::ANN_MLP" target="_blank">OpenCV机器学习(1)人工神经网络 - 多层感知器类cv::ml::ANN_MLP</a> <span class="text-muted">村北头的码农</span> <a class="tag" taget="_blank" href="/search/OpenCV/1.htm">OpenCV</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:VisualStudioCode编程语言:C++11算法描述cv::ml::ANN_MLP是OpenCV库中的一部分,用于实现人工神经网络-多层感知器(ArtificialNeuralNetwork-Multi-LayerPerceptron,ANN-MLP)。它提供了一种方式来创建和训练多层感知器模型,以解决分类、回归等</div> </li> <li><a href="/article/1891591534520889344.htm" title="C#面:.Net、ASP.Net、C#、VisualStudio之间的关系是什么" target="_blank">C#面:.Net、ASP.Net、C#、VisualStudio之间的关系是什么</a> <span class="text-muted">那个那个鱼</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/C%23%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">C#面试题</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>C#是一种编程语言,它是由微软开发的,用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序和移动应用程序等。C#是一种面向对象的语言,它具有强大的类型安全性和丰富的库支持。.NET是一个软件开发框架,它由微软开发和维护。.NET框架提供了一个运行时环境和一系列的类库,用于简化和加速应用程序的开发过程。C#是.NET框架的一种主要编程语言,但.NET框架也支持其他编程语言,如VB.NET和F</div> </li> <li><a href="/article/1891590274988175360.htm" title="详解 React 18 更新后的特性,一文即懂" target="_blank">详解 React 18 更新后的特性,一文即懂</a> <span class="text-muted">FinBird</span> <a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E9%A3%9E%E8%B5%B7%E6%9D%A5/1.htm">技术飞起来</a><a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>React18通过其改进的渲染系统带来了并发能力,并在此基础上构建了转换或自动批处理等性能增强特性。下面就看看到底有哪些值得关注的新特性。迭代更新内容总的来说,由于新的并发特性是渐进适配并按需启用的,React18中的重大更改仅限于几个简单的API更改,以及对React中多个行为的稳定性和一致性的一些改进,比较重要的一点是,不再支持IE浏览器。1、客户端渲染API带有createRoot()的ro</div> </li> <li><a href="/article/1891581951861649408.htm" title="理解计算机系统_虚拟内存(二)缓存" target="_blank">理解计算机系统_虚拟内存(二)缓存</a> <span class="text-muted">jllws1</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F/1.htm">计算机系统</a><a class="tag" taget="_blank" href="/search/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/1.htm">操作系统</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F/1.htm">深入理解计算机系统</a><a class="tag" taget="_blank" href="/search/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/1.htm">操作系统</a> <div>前言以(以下称“本书”)内容为基础,对程序的整个过程进行梳理。本书内容对整个计算机系统做了系统性导引,每部分内容都是单独的一门课.学习深度根据自己需要来定引入接续上一帖物理和虚拟寻址1>物理寻址CPU访问内存的最自然方式就是使用物理地址,我们把这种方式称为物理寻址(黑体字是原话),本书P560页有个示意图,访问地址4开始的4字节字.假设地址4的物理地址是0x12345678,那么用汇编语言是这样写</div> </li> <li><a href="/article/1891579305675255808.htm" title="C语言操作符详解" target="_blank">C语言操作符详解</a> <span class="text-muted">火龙果刺客</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80/1.htm">C语言</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>C语言是一种广泛使用的编程语言,具有丰富的操作符集合。在这篇博客中,小编将详细介绍C语言中的各种操作符,帮助大家更好地理解和掌握这门语言。1.操作符的分类算术操作符:+-*/%移位操作符:>位操作符:&|^赋值操作符:=+=-=*=/=%=>=&=|=^=单目操作符:!++--&*+-~sizeof(类型)‘关系操作符:>>=>右移操作符移位规则:⾸先右移运算分两种:1.逻辑右移:左边⽤0填充,右</div> </li> <li><a href="/article/1891579179376373760.htm" title="《探秘AI绿色计算:降低人工智能硬件能耗的热点技术》" target="_blank">《探秘AI绿色计算:降低人工智能硬件能耗的热点技术》</a> <span class="text-muted">程序猿阿伟</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>在人工智能飞速发展的当下,其硬件能耗问题愈发凸显。据国际能源署预测,人工智能的能源消耗可能大幅增长。因此,降低人工智能硬件能耗,实现绿色计算,已成为行业关键课题。以下是一些正在崭露头角的热点技术。新型硬件架构与材料计算随机存取内存(CRAM):明尼苏达大学的研究团队开发的CRAM,能让数据完全在内存阵列内处理,无需离开计算机存储信息的网格,打破了传统冯·诺依曼体系结构中计算与内存之间的壁垒,可将人</div> </li> <li><a href="/article/1891574005127770112.htm" title="本地部署DeepSeek模型技术指南" target="_blank">本地部署DeepSeek模型技术指南</a> <span class="text-muted">Evaporator Core</span> <a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a><a class="tag" taget="_blank" href="/search/Doris/1.htm">Doris</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a> <div>DeepSeek模型是一种先进的深度学习模型,广泛应用于自然语言处理、计算机视觉等领域。为了充分利用DeepSeek模型的强大功能,许多开发者和研究人员选择在本地环境中部署该模型。本文将详细介绍如何在本地环境中部署DeepSeek模型,包括环境准备、模型下载、配置、优化以及代码实现等内容。通过本文的指导,您将能够在本地成功部署并运行DeepSeek模型。1.环境准备在部署DeepSeek模型之前,</div> </li> <li><a href="/article/1891570094442606592.htm" title="DeepSeek R1蒸馏版模型部署的实战教程" target="_blank">DeepSeek R1蒸馏版模型部署的实战教程</a> <span class="text-muted">herosunly</span> <a class="tag" taget="_blank" href="/search/DeepSeek%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/1.htm">DeepSeek从入门到精通</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%88%98%E6%95%99%E7%A8%8B/1.htm">实战教程</a> <div>  大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。希望和大家一起成长进步。  </div> </li> <li><a href="/article/1891569712035328000.htm" title="JAVA和Python的区别" target="_blank">JAVA和Python的区别</a> <span class="text-muted">草莓味的¥猪</span> <a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80/1.htm">语言</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、整体区别语法结构:Java是一种面向对象的编程语言,采用了类和对象的概念,需要使用大括号“{}”来定义代码块和方法。而Python是一种动态类型的编程语言,使用缩进来表示代码块的层级结构,不需要显式地定义类和对象。编程范式:Java是一种静态类型的编程语言,需要在编译时进行类型检查,并且必须声明变量的数据类型。Python是一种动态类型的编程语言,变量的数据类型是根据赋值而确定的,不需要显式声</div> </li> <li><a href="/article/1891554699727925248.htm" title="SQLite Select 语句详解" target="_blank">SQLite Select 语句详解</a> <span class="text-muted">wjs2024</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>SQLiteSelect语句详解SQLite是一个轻量级的数据库管理系统,以其简洁的设计和高效的性能被广泛应用于各种场景。在SQLite中,SELECT语句是用于查询数据库中的数据的命令。本文将详细介绍SQLite的SELECT语句,包括其基本语法、常用功能以及高级技巧。基本语法SQLite的SELECT语句的基本语法如下:SELECTcolumn1,column2,...FROMtable_na</div> </li> <li><a href="/article/1891551547796549632.htm" title="量子计算机可以破解比特币吗" target="_blank">量子计算机可以破解比特币吗</a> <span class="text-muted">weixin_49526058</span> <a class="tag" taget="_blank" href="/search/%E9%87%8F%E5%AD%90%E8%AE%A1%E7%AE%97/1.htm">量子计算</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6/1.htm">智能合约</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E4%BB%BB%E9%93%BE/1.htm">信任链</a><a class="tag" taget="_blank" href="/search/%E5%8E%BB%E4%B8%AD%E5%BF%83%E5%8C%96/1.htm">去中心化</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E8%B4%A6%E6%9C%AC/1.htm">分布式账本</a><a class="tag" taget="_blank" href="/search/web3/1.htm">web3</a> <div>量子计算机可能会对当前的加密算法(包括比特币使用的椭圆曲线加密)带来极大的挑战,尤其是因为它能够使用Shor算法高效地解决离散对数问题。然而,具体到量子计算机破解比特币私钥的情况,需要从以下几个方面深入理解:1.Shor算法与离散对数问题Shor算法是由数学家彼得·肖(PeterShor)在1994年提出的一种量子算法,它可以在多项式时间内解决两类经典计算机难以处理的问题:整数分解问题:这涉及RS</div> </li> <li><a href="/article/1891545737129422848.htm" title="掌握SQLite_轻量级数据库的全面指南" target="_blank">掌握SQLite_轻量级数据库的全面指南</a> <span class="text-muted">随风九天</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8C%A0%E5%BF%83%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">匠心数据库</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/sqlite/1.htm">sqlite</a> <div>1.引言1.1SQLite简介SQLite是一个嵌入式关系型数据库管理系统,它不需要单独的服务器进程或系统配置。它的设计目标是简单、高效、可靠,适用于各种应用场景,尤其是移动设备和嵌入式系统。1.2为什么选择SQLite轻量级:文件大小通常在几百KB到几MB之间。无服务器架构:不需要单独的服务器进程。跨平台支持:支持多种操作系统和编程语言。事务支持:支持ACID事务。1.3适用场景与限制适用场景:</div> </li> <li><a href="/article/1891544350723207168.htm" title="【含文档+PPT+源码】基于微信小程序的乡村振兴民宿管理系统" target="_blank">【含文档+PPT+源码】基于微信小程序的乡村振兴民宿管理系统</a> <span class="text-muted">小咕聊编程</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a> <div>项目介绍本课程演示的是一款基于微信小程序的乡村振兴民宿管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该项目附带的源码资料可作为毕设使用民宿管理系统的重要核心功能包括用户管理、客房管理、客房评价管理、订单管理、首页轮播图管理和商家管理等,以下为项目功能模块图:技术栈</div> </li> <li><a href="/article/1891537900521189376.htm" title="选择开发代码审计工具的编程语言需要结合具体场景和技术需求,不同语言在性能、生态、开发效率等方面各有优劣" target="_blank">选择开发代码审计工具的编程语言需要结合具体场景和技术需求,不同语言在性能、生态、开发效率等方面各有优劣</a> <span class="text-muted">rockmelodies</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E5%A4%8D%E5%AE%A1/1.htm">代码复审</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%9E%B6%E6%9E%84/1.htm">安全架构</a> <div>选择开发代码审计工具的编程语言需要结合具体场景和技术需求,不同语言在性能、生态、开发效率等方面各有优劣。以下是主要语言的对比及适用场景:1.Python优势:快速开发:语法简洁,适合快速搭建原型或小型工具。文本处理:正则表达式和字符串操作能力极强,适合模式匹配(如漏洞规则扫描)。丰富生态:有Bandit、Semgrep(部分组件)等成熟工具的底层支持,可直接调用现成的安全分析库。跨语言支持:通过抽</div> </li> <li><a href="/article/1891534117443530752.htm" title="select case 语句详解" target="_blank">select case 语句详解</a> <span class="text-muted">山水CAD筑梦人</span> <a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0%EF%BC%88VBA%EF%BC%89/1.htm">函数(VBA)</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/vba/1.htm">vba</a> <div>vba中常见的分情况选择语句有ifelseif语句、selectcase语句,本文详细讲解selectcase语句用法及实例。SelectCase语句根据表达式的值,来决定执行几组语句中的其中之一。语法SelectCasetestexpression[Caseexpressionlist-n[statements-n]]...[CaseElse[elsestatements]]EndSelectS</div> </li> <li><a href="/article/1891532225195864064.htm" title="基于C# ABB机器人二次开发" target="_blank">基于C# ABB机器人二次开发</a> <span class="text-muted">工业智控</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">机器人</a> <div>1.1开发背景ABB(AseaBrownBoveri)机器人是工业领域中广泛应用的自动化解决方案之一。这些机器人在生产线上执行各种任务,如装配、焊接和搬运,极大地提高了生产效率和产品质量。然而,尽管ABB机器人拥有出色的性能,但在某些特定应用场景中,我们可能需要进一步定制和优化机器人的行为以满足特定需求。C#作为一种强大的编程语言,具有丰富的库和框架,为开发人员提供了灵活性和便利性。通过利用C#进</div> </li> <li><a href="/article/1891529439829880832.htm" title="计算机视觉如何快速入门?" target="_blank">计算机视觉如何快速入门?</a> <span class="text-muted">Frunze软件开发</span> <a class="tag" taget="_blank" href="/search/%E6%97%A5%E5%B8%B8%E9%97%AE%E9%A2%98%E5%9B%9E%E7%AD%94/1.htm">日常问题回答</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%B8%9A%E5%BC%82%E5%B8%B8%E6%A3%80%E6%B5%8B/1.htm">工业异常检测</a><a class="tag" taget="_blank" href="/search/%E8%AE%BA%E6%96%87/1.htm">论文</a> <div>目录1.明确研究方向2.学习基础知识3.掌握核心算法4.实践项目5.阅读文献6.复现经典论文7.改进与创新总结计算机视觉(ComputerVision)是一个复杂且广泛的领域,尤其是工业异常检测这种特定方向,需要结合理论知识和实践技能。以下是一些具体的、可操作的建议,也是个人实际路径的一个总结,希望可以帮助到你快速入门并完成一篇论文。1.明确研究方向-工业异常检测的核心是识别图像或视频中的异常区域</div> </li> <li><a href="/article/1891528682128863232.htm" title="c# 2025/1/3 周五" target="_blank">c# 2025/1/3 周五</a> <span class="text-muted">他在从中笑</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>7.《详解类型、变量与对象2》15'未完。。。详解类型、变量与对象_2_哔哩哔哩_bilibili</div> </li> <li><a href="/article/1891527924696281088.htm" title="html 输入框标签讲解,input标签详解" target="_blank">html 输入框标签讲解,input标签详解</a> <span class="text-muted">金鉴LED实验室</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E8%BE%93%E5%85%A5%E6%A1%86%E6%A0%87%E7%AD%BE%E8%AE%B2%E8%A7%A3/1.htm">输入框标签讲解</a> <div>一,标签定义及使用说明1.标签规定了用户可以在其中输入数据的输入字段。2.元素在元素中使用,用来声明允许用户输入数据的input控件。输入字段可通过多种方式改变,取决于type属性。二,HTML与XHTML的区别1.在HTML中,标签没有结束标签。2.在XHTML中,标签必须被正确地关闭。三,注示1.注意:元素是空的,它只包含标签属性。2.提示:你可以使用元素来定义元素的标注。四,属性1.type</div> </li> <li><a href="/article/1891527923085668352.htm" title="java 反射创建对象作用_java反射机制(原理/应用场景/创建对象)详解" target="_blank">java 反射创建对象作用_java反射机制(原理/应用场景/创建对象)详解</a> <span class="text-muted">文艺范理工生</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8F%8D%E5%B0%84%E5%88%9B%E5%BB%BA%E5%AF%B9%E8%B1%A1%E4%BD%9C%E7%94%A8/1.htm">反射创建对象作用</a> <div>JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。JAVA反射(放射)机制:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。但是JAVA有</div> </li> <li><a href="/article/1891527796681928704.htm" title="SQL 建表语句详解" target="_blank">SQL 建表语句详解</a> <span class="text-muted">web15085096641</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/1.htm">阿里巴巴</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>SQL建表语句详解在SQL中,创建表(Table)是数据库设计的基础。表是存储数据的基本单位,每个表由行和列组成。创建表的过程涉及到定义表的结构,包括列名、数据类型、约束等。本文将详细介绍SQL中的建表语句,并通过示例帮助读者更好地理解。1.基本语法创建表的基本语法如下:CREATETABLEtable_name(column1datatypeconstraint,column2datatypec</div> </li> <li><a href="/article/1891526525161893888.htm" title="详解CountDownlatch" target="_blank">详解CountDownlatch</a> <span class="text-muted">优人ovo</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>引言CountDownLatch是Java并发包java.util.concurrent中的一个同步工具类,由著名的并发编程大师DougLea所开发。它允许一个或多个线程等待其他线程完成操作后再继续执行,其核心思想是通过一个计数器,对计数器进行调度来实现原理CountDownLatch初始化时会设置一个计数器的值,该值表示需要等待完成的操作数量。每当一个线程完成了自己的任务后,会调用countDo</div> </li> <li><a href="/article/1891512906411995136.htm" title="《C#与Unity携手,构建沉浸式虚拟现实三维场景》" target="_blank">《C#与Unity携手,构建沉浸式虚拟现实三维场景》</a> <span class="text-muted">墨夶</span> <a class="tag" taget="_blank" href="/search/C%23%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%991/1.htm">C#学习资料1</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/vr/1.htm">vr</a> <div>随着虚拟现实(VirtualReality,VR)技术的迅猛发展,越来越多的开发者开始探索如何利用这一新兴媒介创造更加引人入胜的应用程序。在众多开发工具中,Unity以其强大的功能和易用性脱颖而出,成为了VR应用开发者的首选平台之一。而作为Unity官方支持的主要编程语言——C#,则为开发者提供了实现复杂逻辑、优化性能的强大手段。本文将详细介绍如何使用C#结合Unity来构建一个完整的虚拟现实三维</div> </li> <li><a href="/article/1891511264732049408.htm" title="软考高级《系统架构设计师》知识点(五)" target="_blank">软考高级《系统架构设计师》知识点(五)</a> <span class="text-muted">Ritchie里其</span> <a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a> <div>计算机网络网络概述和模型计算机网络是计算机技术与通信技术相结合的产物,它实现了远程通信、远程信息处理和资源共享。计算机网络的功能:数据通信、资源共享、管理集中化、实现分布式处理、负载均衡。网络性能指标:速率、带宽(频带宽度或传送线路速率)、吞吐量、时延、往返时间、利用率。网络非性能指标:费用、质量、标准化、可靠性、可扩展性、可升级性、易管理性和可维护性。通信技术:计算机网络是利用通信技术将数据从一</div> </li> <li><a href="/article/1891510380786675712.htm" title="c# —— StringBuilder 类" target="_blank">c# —— StringBuilder 类</a> <span class="text-muted">山水CAD筑梦人</span> <a class="tag" taget="_blank" href="/search/C%23%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">C#学习笔记</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>StringBuilder类是C#和其他一些基于.NETFramework的编程语言中的一个类,它位于System.Text命名空间下。StringBuilder类表示一个可变的字符序列,它是为了提供一种比直接使用字符串连接操作更加高效的方式来构建或修改字符串。与C#中的string类型不同,string是不可变的,这意味着每次对字符串进行修改(如拼接、替换字符等)时,都会创建一个新的字符串对象。</div> </li> <li><a href="/article/1891503442095042560.htm" title="Golang的代码质量评估" target="_blank">Golang的代码质量评估</a> <span class="text-muted">苹果酱0567</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E9%A2%98%E6%B1%87%E6%80%BB%E4%B8%8E%E8%A7%A3%E6%9E%90/1.htm">面试题汇总与解析</a><a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/layui/1.htm">layui</a><a class="tag" taget="_blank" href="/search/%E6%AF%95%E4%B8%9A%E8%AE%BE%E8%AE%A1/1.htm">毕业设计</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>Golang的代码质量评估一、代码质量的重要性在软件开发过程中,代码质量是至关重要的,它直接关系到软件的稳定性、可维护性和安全性。而Golang作为一门快速发展的编程语言,其代码质量也备受关注。因此,对Golang代码的质量进行评估至关重要。二、静态代码分析工具在评估Golang代码质量时,我们可以使用静态代码分析工具来帮助我们发现潜在的问题。其中比较知名的工具包括:是Golang的官方静态代码分</div> </li> <li><a href="/article/16.htm" title="深入浅出Java Annotation(元注解和自定义注解)" target="_blank">深入浅出Java Annotation(元注解和自定义注解)</a> <span class="text-muted">Josh_Persistence</span> <a class="tag" taget="_blank" href="/search/Java+Annotation/1.htm">Java Annotation</a><a class="tag" taget="_blank" href="/search/%E5%85%83%E6%B3%A8%E8%A7%A3/1.htm">元注解</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%AE%9A%E4%B9%89%E6%B3%A8%E8%A7%A3/1.htm">自定义注解</a> <div>一、基本概述        Annontation是Java5开始引入的新特征。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。     更通俗的意思是为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且是供指定的工具或</div> </li> <li><a href="/article/143.htm" title="mysql优化特定类型的查询" target="_blank">mysql优化特定类型的查询</a> <span class="text-muted">annan211</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div> 本节所介绍的查询优化的技巧都是和特定版本相关的,所以对于未来mysql的版本未必适用。 1 优化count查询 对于count这个函数的网上的大部分资料都是错误的或者是理解的都是一知半解的。在做优化之前我们先来看看 真正的count()函数的作用到底是什么。 count()是一个特殊的函数,有两种非常不同的作用,他可以统计某个列值的数量,也可以统计行数。 在统</div> </li> <li><a href="/article/270.htm" title="MAC下安装多版本JDK和切换几种方式" target="_blank">MAC下安装多版本JDK和切换几种方式</a> <span class="text-muted">棋子chessman</span> <a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a> <div>环境: MAC AIR,OS X 10.10,64位   历史: 过去 Mac 上的 Java 都是由 Apple 自己提供,只支持到 Java 6,并且OS X 10.7 开始系统并不自带(而是可选安装)(原自带的是1.6)。 后来 Apple 加入 OpenJDK 继续支持 Java 6,而 Java 7 将由 Oracle 负责提供。   在终端中输入jav</div> </li> <li><a href="/article/397.htm" title="javaScript (1)" target="_blank">javaScript (1)</a> <span class="text-muted">Array_06</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a> <div>JavaScript 1、运算符   运算符就是完成操作的一系列符号,它有七类:   赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、算术运算符(+,-,*,/,++,--,%)、比较运算符(>,<,<=,>=,==,===,!=,!==)、逻辑运算符(||,&&,!)、条件运算(?:)、位</div> </li> <li><a href="/article/524.htm" title="国内顶级代码分享网站" target="_blank">国内顶级代码分享网站</a> <span class="text-muted">袁潇含</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>       现在国内很多开源网站感觉都是为了利益而做的                  当然利益是肯定的,否则谁也不会免费的去做网站      &</div> </li> <li><a href="/article/651.htm" title="Elasticsearch、MongoDB和Hadoop比较" target="_blank">Elasticsearch、MongoDB和Hadoop比较</a> <span class="text-muted">随意而生</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a> <div>  IT界在过去几年中出现了一个有趣的现象。很多新的技术出现并立即拥抱了“大数据”。稍微老一点的技术也会将大数据添进自己的特性,避免落大部队太远,我们看到了不同技术之间的边际的模糊化。假如你有诸如Elasticsearch或者Solr这样的搜索引擎,它们存储着JSON文档,MongoDB存着JSON文档,或者一堆JSON文档存放在一个Hadoop集群的HDFS中。你可以使用这三种配</div> </li> <li><a href="/article/778.htm" title="mac os 系统科研软件总结" target="_blank">mac os 系统科研软件总结</a> <span class="text-muted">张亚雄</span> <a class="tag" taget="_blank" href="/search/mac+os/1.htm">mac os</a> <div>1.1 Microsoft Office for Mac 2011      大客户版,自行搜索。      1.2 Latex (MacTex):      系统环境:https://tug.org/mactex/     &nb</div> </li> <li><a href="/article/905.htm" title="Maven实战(四)生命周期" target="_blank">Maven实战(四)生命周期</a> <span class="text-muted">AdyZhang</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>1. 三套生命周期     Maven拥有三套相互独立的生命周期,它们分别为clean,default和site。 每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段。 以clean生命周期为例,它包含的阶段有pre-clean, clean 和 post</div> </li> <li><a href="/article/1032.htm" title="Linux下Jenkins迁移" target="_blank">Linux下Jenkins迁移</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/Jenkins/1.htm">Jenkins</a> <div>1. 将Jenkins程序目录copy过去      源程序在/export/data/tomcatRoot/ofctest-jenkins.jd.com下面            tar -cvzf jenkins.tar.gz ofctest-jenkins.jd.com &</div> </li> <li><a href="/article/1159.htm" title="request.getInputStream()只能获取一次的问题" target="_blank">request.getInputStream()只能获取一次的问题</a> <span class="text-muted">ayaoxinchao</span> <a class="tag" taget="_blank" href="/search/request/1.htm">request</a><a class="tag" taget="_blank" href="/search/Inputstream/1.htm">Inputstream</a> <div>问题:在使用HTTP协议实现应用间接口通信时,服务端读取客户端请求过来的数据,会用到request.getInputStream(),第一次读取的时候可以读取到数据,但是接下来的读取操作都读取不到数据   原因: 1. 一个InputStream对象在被读取完成后,将无法被再次读取,始终返回-1; 2. InputStream并没有实现reset方法(可以重</div> </li> <li><a href="/article/1286.htm" title="数据库SQL优化大总结之 百万级数据库优化方案" target="_blank">数据库SQL优化大总结之 百万级数据库优化方案</a> <span class="text-muted">BigBird2012</span> <a class="tag" taget="_blank" href="/search/SQL%E4%BC%98%E5%8C%96/1.htm">SQL优化</a> <div>网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。 这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where </div> </li> <li><a href="/article/1413.htm" title="jsonObject的使用" target="_blank">jsonObject的使用</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a> <div>        在项目中难免会用java处理json格式的数据,因此封装了一个JSONUtil工具类。 JSONUtil.java package com.bijian.json.study; import java.util.ArrayList; import java.util.Date; import java.util.HashMap;</div> </li> <li><a href="/article/1540.htm" title="[Zookeeper学习笔记之六]Zookeeper源代码分析之Zookeeper.WatchRegistration" target="_blank">[Zookeeper学习笔记之六]Zookeeper源代码分析之Zookeeper.WatchRegistration</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a> <div>Zookeeper类是Zookeeper提供给用户访问Zookeeper service的主要API,它包含了如下几个内部类     首先分析它的内部类,从WatchRegistration开始,为指定的znode path注册一个Watcher,   /** * Register a watcher for a particular p</div> </li> <li><a href="/article/1667.htm" title="【Scala十三】Scala核心七:部分应用函数" target="_blank">【Scala十三】Scala核心七:部分应用函数</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a> <div>何为部分应用函数? Partially applied function: A function that’s used in an expression and that misses some of its arguments.For instance, if function f has type Int => Int => Int, then f and f(1) are p</div> </li> <li><a href="/article/1794.htm" title="Tomcat Error listenerStart 终极大法" target="_blank">Tomcat Error listenerStart 终极大法</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a> <div>Tomcat报的错太含糊了,什么错都没报出来,只提示了Error listenerStart。为了调试,我们要获得更详细的日志。可以在WEB-INF/classes目录下新建一个文件叫logging.properties,内容如下 Java代码  handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHa</div> </li> <li><a href="/article/1921.htm" title="不用加减符号实现加减法" target="_blank">不用加减符号实现加减法</a> <span class="text-muted">BrokenDreams</span> <a class="tag" taget="_blank" href="/search/%E5%AE%9E%E7%8E%B0/1.htm">实现</a> <div>        今天有群友发了一个问题,要求不用加减符号(包括负号)来实现加减法。         分析一下,先看最简单的情况,假设1+1,按二进制算的话结果是10,可以看到从右往左的第一位变为0,第二位由于进位变为1。    </div> </li> <li><a href="/article/2048.htm" title="读《研磨设计模式》-代码笔记-状态模式-State" target="_blank">读《研磨设计模式》-代码笔记-状态模式-State</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ /* 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况 把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化 如果在</div> </li> <li><a href="/article/2175.htm" title="CUDA程序block和thread超出硬件允许值时的异常" target="_blank">CUDA程序block和thread超出硬件允许值时的异常</a> <span class="text-muted">cherishLC</span> <a class="tag" taget="_blank" href="/search/CUDA/1.htm">CUDA</a> <div>调用CUDA的核函数时指定block 和 thread大小,该大小可以是dim3类型的(三维数组),只用一维时可以是usigned int型的。 以下程序验证了当block或thread大小超出硬件允许值时会产生异常!!!GPU根本不会执行运算!!! 所以验证结果的正确性很重要!!! 在VS中创建CUDA项目会有一个模板,里面有更详细的状态验证。 以下程序在K5000GPU上跑的。</div> </li> <li><a href="/article/2302.htm" title="诡异的超长时间GC问题定位" target="_blank">诡异的超长时间GC问题定位</a> <span class="text-muted">chenchao051</span> <a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/cms/1.htm">cms</a><a class="tag" taget="_blank" href="/search/GC/1.htm">GC</a><a class="tag" taget="_blank" href="/search/hbase/1.htm">hbase</a><a class="tag" taget="_blank" href="/search/swap/1.htm">swap</a> <div>HBase的GC策略采用PawNew+CMS, 这是大众化的配置,ParNew经常会出现停顿时间特别长的情况,有时候甚至长到令人发指的地步,例如请看如下日志: 2012-10-17T05:54:54.293+0800: 739594.224: [GC 739606.508: [ParNew: 996800K->110720K(996800K), 178.8826900 secs] 3700</div> </li> <li><a href="/article/2429.htm" title="maven环境快速搭建" target="_blank">maven环境快速搭建</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85/1.htm">安装</a><a class="tag" taget="_blank" href="/search/mavne/1.htm">mavne</a><a class="tag" taget="_blank" href="/search/%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/1.htm">环境配置</a> <div>一 下载maven 安装maven之前,要先安装jdk及配置JAVA_HOME环境变量。这个安装和配置java环境不用多说。 maven下载地址:http://maven.apache.org/download.html,目前最新的是这个apache-maven-3.2.5-bin.zip,然后解压在任意位置,最好地址中不要带中文字符,这个做java 的都知道,地址中出现中文会出现很多</div> </li> <li><a href="/article/2556.htm" title="PHP网站安全,避免PHP网站受到攻击的方法" target="_blank">PHP网站安全,避免PHP网站受到攻击的方法</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div> 对于PHP网站安全主要存在这样几种攻击方式:1、命令注入(Command Injection)2、eval注入(Eval Injection)3、客户端脚本攻击(Script Insertion)4、跨网站脚本攻击(Cross Site Scripting, XSS)5、SQL注入攻击(SQL injection)6、跨网站请求伪造攻击(Cross Site Request Forgerie</div> </li> <li><a href="/article/2683.htm" title="yii中给CGridView设置默认的排序根据时间倒序的方法" target="_blank">yii中给CGridView设置默认的排序根据时间倒序的方法</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/GridView/1.htm">GridView</a> <div>public function searchWithRelated() {         $criteria = new CDbCriteria;         $criteria->together = true; //without th</div> </li> <li><a href="/article/2810.htm" title="Java集合对象和数组对象的转换" target="_blank">Java集合对象和数组对象的转换</a> <span class="text-muted">dyy_gusi</span> <a class="tag" taget="_blank" href="/search/java%E9%9B%86%E5%90%88/1.htm">java集合</a> <div>    在开发中,我们经常需要将集合对象(List,Set)转换为数组对象,或者将数组对象转换为集合对象。Java提供了相互转换的工具,但是我们使用的时候需要注意,不能乱用滥用。 1、数组对象转换为集合对象     最暴力的方式是new一个集合对象,然后遍历数组,依次将数组中的元素放入到新的集合中,但是这样做显然过</div> </li> <li><a href="/article/2937.htm" title="nginx同一主机部署多个应用" target="_blank">nginx同一主机部署多个应用</a> <span class="text-muted">geeksun</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a> <div>近日有一需求,需要在一台主机上用nginx部署2个php应用,分别是wordpress和wiki,探索了半天,终于部署好了,下面把过程记录下来。 1.   在nginx下创建vhosts目录,用以放置vhost文件。 mkdir vhosts   2.   修改nginx.conf的配置, 在http节点增加下面内容设置,用来包含vhosts里的配置文件 #</div> </li> <li><a href="/article/3064.htm" title="ubuntu添加admin权限的用户账号" target="_blank">ubuntu添加admin权限的用户账号</a> <span class="text-muted">hongtoushizi</span> <a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/useradd/1.htm">useradd</a> <div>ubuntu创建账号的方式通常用到两种:useradd 和adduser . 本人尝试了useradd方法,步骤如下: 1:useradd    使用useradd时,如果后面不加任何参数的话,如:sudo useradd sysadm 创建出来的用户将是默认的三无用户:无home directory ,无密码,无系统shell。 顾应该如下操作:   </div> </li> <li><a href="/article/3191.htm" title="第五章 常用Lua开发库2-JSON库、编码转换、字符串处理" target="_blank">第五章 常用Lua开发库2-JSON库、编码转换、字符串处理</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/lua/1.htm">lua</a> <div>  JSON库   在进行数据传输时JSON格式目前应用广泛,因此从Lua对象与JSON字符串之间相互转换是一个非常常见的功能;目前Lua也有几个JSON库,本人用过cjson、dkjson。其中cjson的语法严格(比如unicode \u0020\u7eaf),要求符合规范否则会解析失败(如\u002),而dkjson相对宽松,当然也可以通过修改cjson的源码来完成</div> </li> <li><a href="/article/3318.htm" title="Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解" target="_blank">Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解</a> <span class="text-muted">yaerfeng1989</span> <a class="tag" taget="_blank" href="/search/timer/1.htm">timer</a><a class="tag" taget="_blank" href="/search/quartz/1.htm">quartz</a><a class="tag" taget="_blank" href="/search/%E5%AE%9A%E6%97%B6%E5%99%A8/1.htm">定时器</a> <div>原创整理不易,转载请注明出处:Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解 代码下载地址:http://www.zuidaima.com/share/1772648445103104.htm 有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz。 1.Java Timer定时 首先继承jav</div> </li> <li><a href="/article/3445.htm" title="Linux下df与du两个命令的差别?" target="_blank">Linux下df与du两个命令的差别?</a> <span class="text-muted">pda158</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div> 一、df显示文件系统的使用情况,与du比較,就是更全盘化。   最经常使用的就是 df -T,显示文件系统的使用情况并显示文件系统的类型。   举比例如以下:   [root@localhost ~]# df -T   Filesystem                   Type &n</div> </li> <li><a href="/article/3572.htm" title="[转]SQLite的工具类 ---- 通过反射把Cursor封装到VO对象" target="_blank">[转]SQLite的工具类 ---- 通过反射把Cursor封装到VO对象</a> <span class="text-muted">ctfzh</span> <a class="tag" taget="_blank" href="/search/VO/1.htm">VO</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/sqlite/1.htm">sqlite</a><a class="tag" taget="_blank" href="/search/%E5%8F%8D%E5%B0%84/1.htm">反射</a><a class="tag" taget="_blank" href="/search/Cursor/1.htm">Cursor</a> <div>在写DAO层时,觉得从Cursor里一个一个的取出字段值再装到VO(值对象)里太麻烦了,就写了一个工具类,用到了反射,可以把查询记录的值装到对应的VO里,也可以生成该VO的List。   使用时需要注意: 考虑到Android的性能问题,VO没有使用Setter和Getter,而是直接用public的属性。 表中的字段名需要和VO的属性名一样,要是不一样就得在查询的SQL中</div> </li> <li><a href="/article/3699.htm" title="该学习笔记用到的Employee表" target="_blank">该学习笔记用到的Employee表</a> <span class="text-muted">vipbooks</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a> <div>    这是我在学习Oracle是用到的Employee表,在该笔记中用到的就是这张表,大家可以用它来学习和练习。 drop table Employee; -- 员工信息表 create table Employee( -- 员工编号 EmpNo number(3) primary key, -- 姓</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>