今天偶尔看见了一个帖子。
关于Windows下编程和Linux下编程的问题(c/c++)。
其中说到什么windows系统API linux系统API什么的。我突然间就有一个疑问了。算是比较底层的疑问?关于语言跨平台的问题。
第一个问题,语言跨平台指的是什么意思。虽然我是搞JAVA的。但是我还是想知道。这些问题。关于java跨平台是指 一次编译处处运行。
无论我在什么系统下,把java源程序编译成字节码后。
拿到什么平台下都可以运行。
因为java的字节码跑在虚拟机上。
虚拟机不跨平台可以根据不同的操作系统产生不同的指令。
感觉是比较抽象的说法,底层到底什么样呢?
有一个问题。我的java字节码在虚拟机上被解释器到底解释成什么了?再说C/C++
没搞过C/C++但是大一的时候学过。记得当时说。
源程序 编译 汇编源程序 汇编 机器语言(obj 目标程序)
然后.obj程序连接成为可执行程序。既然编译成了汇编源程序。为什么不跨平台呢?想象这个过程为什么C/C++就不跨平台呢?指的是什么呢?小弟因为没接触过linxu。原来也没想过这种问题。现在脑袋里疑问很多啊。
我们的程序又与操作系统API有什么关系呢?程序最后不都是010101机器语言。CPU直接执行吗?有没有高手,大神。给详细解释下啊?
关于Windows下编程和Linux下编程的问题(c/c++)。
其中说到什么windows系统API linux系统API什么的。我突然间就有一个疑问了。算是比较底层的疑问?关于语言跨平台的问题。
第一个问题,语言跨平台指的是什么意思。虽然我是搞JAVA的。但是我还是想知道。这些问题。关于java跨平台是指 一次编译处处运行。
无论我在什么系统下,把java源程序编译成字节码后。
拿到什么平台下都可以运行。
因为java的字节码跑在虚拟机上。
虚拟机不跨平台可以根据不同的操作系统产生不同的指令。
感觉是比较抽象的说法,底层到底什么样呢?
有一个问题。我的java字节码在虚拟机上被解释器到底解释成什么了?再说C/C++
没搞过C/C++但是大一的时候学过。记得当时说。
源程序 编译 汇编源程序 汇编 机器语言(obj 目标程序)
然后.obj程序连接成为可执行程序。既然编译成了汇编源程序。为什么不跨平台呢?想象这个过程为什么C/C++就不跨平台呢?指的是什么呢?小弟因为没接触过linxu。原来也没想过这种问题。现在脑袋里疑问很多啊。
我们的程序又与操作系统API有什么关系呢?程序最后不都是010101机器语言。CPU直接执行吗?有没有高手,大神。给详细解释下啊?
系统API个人认为可以想象成一个非c++标准的类库(像iostream,string这些是c++标准里有的),提供了很多有用的函数,也像很多java开源的项目,如log4j,你可以用在自己的项目上,且要依赖于这个jar包c++亦然,用了系统API后,你就依赖于系统API,如果要让其他系统也支持你的代码,其他系统也就必须要提供这套api,然而,c++与java不同的是,jar包本身是可以跨平台的,而系统api没法跨平台,没法统一,如果是纯标准c++写出的程序,在win上可以编译,在linux上也可以编译的再说java的跨平台,java的跨平台则更进一步,使得无需在每个平台上编译,就是为每个系统上提供了一套运行环境以支持java代码中的api
说的底层点好吗?