《Java 7程序设计入门经典》一1.2 程序

简介: 本节书摘来自华章出版社《Java 7程序设计入门经典》一书中的第1章,第1.2节,作者(美)Herbert Schildt Dale Skrien,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.2 程序

编程的基础是程序(program)。因为本书是一本关于编程的书,所以有必要正规地定义程序这个术语。一个比较广义的定义是:程序包括一系列可以由计算机执行的指令。但是,“程序”这个术语根据上下文可以有不同的意义。这是由于程序有两种基本形式:一种形式是人类可以阅读的形式,另一种是机器可以阅读的形式。
在写程序时,可以创建一个文本文件保存程序的源代码(source code)。源代码是一种人类可以阅读的程序的形式。一般程序员所认为的“程序”就是指这种形式。但是,这并不是计算机实际运行的形式。程序的源代码必须转化成计算机能执行的指令。这种形式称为目标代码(object code)。目标代码很难(几乎不可能)由人类阅读。这也是为什么程序员只编辑程序的源程序,而只在需要运行它的时候才将它转化为目标代码。
将源程序转化为目标代码的程序称为编译器(compiler)。在一些情况下,编译器生成能由计算机CPU直接运行的机器指令。(例如,C++编程语言的编译器一般都是以这种方式工作的。)理解目标代码的一个关键点是它为某种特定的CPU设计。正如前面所解释的那样,为一种CPU设计的机器指令一般不能在另一种CPU上工作。
有人会惊奇地会发现,在某些情况下,编译器生成的目标代码中的指令并不为任意一种实际的CPU设计。相反,它们运行在虚拟机(virtual machine)上。虚拟机是一种用软件模拟CPU的程序。于是,它本质上创建了一个逻辑的CPU,而不是硬件的CPU。这样,它定义了自己可执行的指令集。这些指令的执行过程通常称为解释(interpret)。虚拟机有时也称为解释器(interpreter)。在后文将会看到,Java使用虚拟机,这种方法带来了巨大的好处。
无论源代码编译为可以直接运行的机器指令,或编译为可由虚拟机运行的代码,编译器将源代码转化为目标代码的过程是一样的。

相关文章
|
2月前
|
Java 流计算
利用java8 的 CompletableFuture 优化 Flink 程序
本文探讨了Flink使用avatorscript脚本语言时遇到的性能瓶颈,并通过CompletableFuture优化代码,显著提升了Flink的QPS。文中详细介绍了avatorscript的使用方法,包括自定义函数、从Map中取值、使用Java工具类及AviatorScript函数等,帮助读者更好地理解和应用avatorscript。
利用java8 的 CompletableFuture 优化 Flink 程序
|
3月前
|
XML 存储 JSON
Java程序部署
Java程序部署
|
2月前
|
Java 测试技术 开发者
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
125 63
|
1月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
65 1
|
22天前
|
SQL 安全 Java
Java 异常处理:筑牢程序稳定性的 “安全网”
本文深入探讨Java异常处理,涵盖异常的基础分类、处理机制及最佳实践。从`Error`与`Exception`的区分,到`try-catch-finally`和`throws`的运用,再到自定义异常的设计,全面解析如何有效管理程序中的异常情况,提升代码的健壮性和可维护性。通过实例代码,帮助开发者掌握异常处理技巧,确保程序稳定运行。
36 0
|
2月前
|
Java Maven 数据安全/隐私保护
如何实现Java打包程序的加密代码混淆,避免被反编译?
【10月更文挑战第15天】如何实现Java打包程序的加密代码混淆,避免被反编译?
130 2
|
2月前
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
151 1
|
2月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
66 1
|
3月前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
49 5
|
2月前
|
Java Python
如何通过Java程序调用python脚本
如何通过Java程序调用python脚本
39 0
下一篇
DataWorks