什么是编程
最近二十年,计算机编程正变得越来越受欢迎。世界上排名前十的科技公司,使用编程将食物送到家里,让人们动动手指就能拦住一辆出租车。
相信很多人会觉得编程很神奇。现在,正是时候了解什么是编程。
通过本教程,我们将一起从概念上了解编程,了解一些相关术语,并知道使用编程能够干嘛。在阅读过程中,大家有任何问题或反馈,欢迎在评论区留言,或者给Java开发者之家发信息。
编程的定义
首先,让我们一起了解编程的定义。简单地讲,编程就是给计算机一组指令。
为了方便理解,可以将编程与学烹饪进行类比。形象地讲,食谱作者可以认为是程序员,学烹饪的我们就是计算机,烹饪步骤就是指令。食谱作者通过文字和图片,一步一步地指导我们烹饪,这个过程就是“编程”。
苦瓜炒蛋怎么做
编程过程
通过前面“学烹饪”的例子,我们从概念上对编程有了一个印象。但是不少人仍然有疑惑,编程到底是怎样一回事?
编程就是以计算机容易理解的方式下达指令。
如果现在让我们教机器人走路,直接说“将腿放在身体前面”,机器人会不知道该动左腿还是右腿,况且它们根本没有“腿”和“身体”的概念。
NAO机器人
仍然以“学烹饪”为例,如果我们使用的是英文食谱,理解烹饪步骤就会更困难。同理,在编程过程中,也需要用计算机能理解的语言,明确地与它们沟通。在计算机术语中,这类语言常常叫做编程语言。
常用计算机编程语言
编程可以干什么
那么,编程到底可以干什么呢。编程可以更充分利用计算机这个强大的工具。
计算机处理信息的速度很快,人类计算一次加法需要一秒钟,计算机进行一次加法运算只要一纳秒,意味着它一秒钟可以执行十亿次加法指令。
计算机可以零错误地执行任务,我们给计算机什么指令,它们就严格执行。相反,人类容易失去耐心和注意力,会更容易出错。
计算机是电气设备,可以全天候工作,适合处理大量重复性任务。这是我们人类所无法完成的创造性工作。
下一个数字化时代
结论
在这个数字化时代中,编程真是无处不在。希望这篇教程能够帮助大家了解计算机编程。通过“学烹饪”这个例子,帮助我们加深了对编程的印象,知道编程就是以计算机所理解的方式,明确地给予它们指令,知道了什么是编程语言,最后我们还了解了编程能够干什么,使用编程能够更好地利用计算机工具。
大家有任何问题和反馈,欢迎在评论区留言,或者给Java开发者之家发送信息。
java系列教程(一) 什么是软件开发?什么是java?
对于刚入门软件开发的小白,可能会有很多的疑问,软件开发是什么?一款软件是怎么设计开发出来的?软件开发具体是做什么的?需要掌握哪些技能?下面让我简单的大伙聊聊软件开发。
什么是软件开发?
软件其实就是实现具体功能的程序。
什么是程序?
程序其实就是完成一些列动作的过程描述。这个过程是由计算机语言进行编写的。
什么是计算机语言?
计算机是没办法直接理解我们人类的语言,当我们需要计算机辅助我们执行一些操作,比如一些简单的算术运算(加、减、乘、除),则需要通过计算机语言将我们程序翻译成计算机能够理解的指令集.,而指令集是计算机能够直接理解和执行的。
计算机语言有哪些?
机器语言:由0和1组成的二进制指令集,能够直接被计算机CPU识别的执行,所以通过机器语言编写的程序执行的效率是最高的,但是开发的难度也是最大的,现在的主流软件开发不会直接使用机器语言进行软件代码的编写。
汇编语言:通过一些指定的关键字代替0,1编码,比如mov,push,pop等,与机器语言相比相对降低了开发的难度,也更易于理解,但是开发起来也是相当的困难,而且不易于调试。
高级语言:
现在的软件开发基本都是通过高级语言进行开发,例如C、C++、Java等,相对于前面提及到开发语言,虽然高级语言执行效率没有前面提到的两种开发语言高(计算机没办法直接理解高级语言编写的程序需要将高级语言编写的程序翻译成计算机能够理解的指令集),但是高级语言比较符合人类语言的模式,更易于开发和维护,所以现在主流的软件开发都是基于高级语言进行的。
什么是java?
java是一种编程语言,我们可以用java语言编写特定的程序,将程序交给计算机去执行辅助我们完成任务。
为什么我们要使用java?
java语言有很多重要的特点,现在我们简单的聊一下
可移植:java是一种跨平台运行的语言,java语言之所以能够跨平台运行是因为java程序是运行在java虚拟机上面的(JVM),我们可以简单的这样理解JVM以及对各种操作系统做了适配,我们编写的代码可以通过java的编译器编译成字节码,而各操作系统平台有相对应的jva字节码解析器将其解析成该平台能够执行的机器码,所以java语言可以跨平台运行。
垃圾回收:所谓的垃圾回收,其实是对程序运行时程序占用内存的回收,java作为一种高级语言,提供了内存自动回收的机制(GC),能够帮我们自动清理没有引用的对象释放掉其占用的内存资源,这块现在只是简单的提一下,后面会详细的描述java语言垃圾回收机制以及怎么进行GC优化我们程序使用的内存。
面向对象:java是一种面向对象的编程语言,非常的适合大型软件的开发设计。
软件生态:java经过了十几年的发展,其软件生态已经非常的完整,良好的开源社区支持,文档支持。相对应的开发工具,开发框架也是非常完善的
经过上面的介绍希望能给刚接触软件开发的同学会有一些帮助,后面这个系列文章会不停的更新,例如java学习路线、软件开发流程、java基础、框架、中间件、微服务等
Java教程:开发属于自己的第一个Java程序
搭建好了Java开发环境之后,下面就来学习一下如何开发Java程序。为了让初学者更好地完成第一个Java程序,接下来通过几个步骤进行逐一讲解。
在D盘根目录下新建一个test文件夹,并在该文件夹中新建文本文档,重命名为HelloWorld.java后,用记事本方式打开,在其中编写一段Java代码,如文件1所示。
文件1 HelloWorld.java
文件1中的代码实现了一个Java程序,下面对其中的代码进行解释说明。
● class是一个关键字,它用于定义一个类。在Java中,类就是一个程序的基本单元,所有的代码都需要在类中书写。
● HelloWorld是类的名称,简称类名。class关键字与类名之间需要用空格、制表符、换行符等任意的空白字符进行分隔。类名之后要写一对大括号,它定义了当前这个类的管辖范围。
● “public static void main(String[] args){}”定义了一个main()方法,该方法是Java程序的执行入口,程序将从main()方法所属大括号内的代码开始执行。
● 在main()方法中编写了一条执行语句“System.out.println(\”这是第一个Java程序!\”);”,它的作用是打印一段文本信息,执行完这条语句会在命令行窗口中打印“这是第一个Java程序!”。
在编写程序时,需要特别注意的是,程序中出现的空格、括号、分号等符号必须采用英文半角格式,否则程序会出错。
JDK中提供的大多数可执行文件都能在命令行窗口中运行,javac.exe和java.exe两个可执行命令也不例外。打开命令行窗口,并通过如下命令进入test目录。
进入指定的目录后,效果如图1所示。
在命令行窗口中输入“javac HelloWorld.java”命令,对源文件进行编译,如图2所示。
图2 编译HelloWorld.java源文件
上面的javac命令执行完毕后,会在当前目录下生成一个字节码文件“HelloWorld.class”。
注意:
在命令行窗口使用javac命令对带有中文的Java源文件进行编译时,必须保证源文件的编码格式和命令行窗口解码格式一致,否则会出现源文件编译错误。在中文环境下,命令行窗口默认编码格式是GBK,而记事本编码格式也是GBK,所以在第1步编写HelloWorld.java源文件时,可以直接使用Windows系统自带的记事本进行编辑并保存。如果读者在第1步使用了其他文本编辑器(如EditPlus、Notepad++等)来编写Java源文件,这些文本编辑器默认编码格式多数为UTF-8,那么必须将Java源文件以GBK格式编译,或者是将命令行窗口更改为文本编辑器相同的编码格式,否则编译时会报错。
在命令行窗口中输入“java HelloWorld”命令,运行编译好的字节码文件,运行结果如图3所示。
图3 运行HelloWorld程序
从图3可以看出,窗口中已经显示出了源文件代码中的输出信息。
上面的步骤演示了一个Java程序编写、编译以及运行的过程。其中有两点需要注意:第一,在使用javac命令进行编译时,需要输入完整的文件名,如上例中的程序在编译时需要输入“javac HelloWorld.java”;第二,在使用java命令运行程序时,需要的是类名,而非完整的文件名,如上例中的程序在运行时,只需要输入“java HelloWorld”,而不是“java HelloWorld.class”。注意:在使用javac命令编译文件1-1中的程序时,有可能会出现“找不到文件”的错误,如图4所示。
图4 找不到文件错误
出现这样的错误很有可能是因为文件的扩展名被隐藏了,虽然文本文件被重命名为“HelloWorld.java”,但实际上该文件的真实文件名为“HelloWorld.java.txt”,文件类型并没有得到修改。为了解决这一问题,需要让文件显示扩展名,方法如下:
打开Windows系统控制面板中的【文件夹选项】,在“查看”选项下高级设置一栏中将“隐藏已知文件类型的扩展名”选项前面的“√”取消,单击【确定】按钮,如图5所示。
图5 文件夹选项
文件显示出扩展名.txt后,将其重命名为HelloWorld.java即可。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。