java - 简单直观的理解Java程序执行
问题描述
几天前我开始学习Java,一直在阅读和观看一些初学者教程,但是我对程序如何运行以及我应该如何构建程序的直觉存在问题。主要是,是否有一个简单而简短的描述来描述程序如何运行的一般框架以及构建时应该考虑什么?更具体地说,程序的主要活动(参见示例)。是否有一个简单的答案或某种“元代码”示例来获得直观的理解作为学习的起点?
例如,在过程编程(例如 C)中,简化的描述可以是:
程序总是从main()
源文件中的 -function 开始,其中通常有一个while()
-loop,除非另有说明,否则它会无限重复。其他函数(不同的操作)可以从 themain()
或从其他函数调用。函数存在于 之外,main()
有时位于不同的(可导入的)文件中。函数每次调用总是执行一次,并且程序在执行后返回到函数调用点,并且总是最终返回到 main(),返回到调用链的第一个函数的初始位置。只要输入重复,程序就会继续这种while()
行为main()
。在此之后,程序停止运行。
我知道这很有挑战性,而且我在示例中做得不好,但它仍然涵盖了绝对初学者编写 C 程序的常用方法的两个基本要素:程序如何在main()
循环中运行以及程序如何在函数之间移动。
我有点理解在Java中有类,类构造函数中创建的对象和类中的方法,类扩展等。但是正确的执行顺序尚不清楚。有人可以描述它是如何以与 C 示例类似的方式工作的吗?我是否正确理解程序总是在 - 方法的公共类中启动main()
?你如何从这里开始?可以在其中创建和修改对象以及运行方法的地方进行例如 while() 循环吗?在过程编程中,您基本上可以使用相同的“协议”做任何事情。这在 Java(或其他 OOP)中是真的吗?
解决方案
描述/定义 Java 的更好方法是它是图灵完备的编程语言 ( https://en.wikipedia.org/wiki/Turing_completeness )。与 SQL 等语言相反,SQL 不是图灵完备的。
Java(以及在此之前的 OOP)主要是为了解决在 C 和 C++ 中正确处理的一些棘手问题(即内存和指针管理以及可执行文件的虚拟化(即在所有操作系统上运行相同的 Java 程序)),但在它的心脏,Java 可以被认为只是 C 和 C++ 脉络中的下一代编程语言
推荐阅读
- angular - 在 ngOnInt 进行远程调用的单元测试
- python - 比较多维列表并返回相交索引
- javascript - 我正在尝试将 Java AES 加密解密转换为 NodeJs。这是我迄今为止尝试过的
- cs50 - CS50 Vigenere:错误的循环虽然看起来合乎逻辑?
- java - JSoup 排除表行
- arrays - SWIFT 5.1合并2个不同数据类型的数组?
- javascript - 为什么我的对话框堆叠在一起?(Vuetify)
- r - 使用 table( , sum()) 时出错。参数长度不同?
- python - 如何测量图像的饱和度?
- java - Ant 到 Gradle 迁移 - 执行任务