作者superstition (big bomb)
看板java
标题Re: [问题] API的调用如何和虚拟机沟通
时间Wed Jun 27 22:14:35 2007
※ 引述《hougzou (学无止境,啥时才摔到底?)》之铭言:
: ※ 引述《superstition (big bomb)》之铭言:
: : (43)
: : api , 而我们一般使用的 api 可能是经过好多层底层 api 所包装的 , 问题是
: : 底层 api 到底是如何和 jvm 沟通 , 总有一些特殊的地方 , 好比在 X86 上
: : 调用中断才能触发 os 真正所提供的服务 , 而 win api 只是提供此中断调用的
: : 途径 , 所以我想说 java 的 api 到底有无类似中断调用的动作在和 jvm 作出
: : 服务请求 ?
: 老实说,我国文太差,看不太懂题意,所以就鸡同鸭讲一下!
: 请你把 JVM 视为一只喂他饲料才会有反应的程式,这只程式一直在系统等着你喂他
: 饲料,这饲料就叫做 bytecode,JVM 会用「直译」的方式去解读 bytecode。
: 你要产生 bytecode,就必须写 Java 程式,Java 编译器会将 Java Source Code
: 「编译」为 class 档,里面内容(成份)就是要喂给 JVM 的饲料。
: (不要跟我吵说用Ruby也能编 bytecode... = =)
: 无论你用什麽 API,最终一定是变成饲料丢给 JVM,只是有人可能会将饲料装罐,
: 看起来变成一罐一罐的饲料罢了(jar)。
: 离题了,回头来说,既然把 JVM 当作一只普通程式,那麽很自然的她的运作就是
: 透过 OS 来与机器沟通,要与机器沟通,当然就是用 0 或 1 ,而要怎麽写 JVM,
: 就看作者是用怎样的语言去实作。
: 说到这,不知道有没有解决你的疑问,如果没有,就当我没说吧!!
感谢您的回覆 , 更确切的说 , 依照 bytecode 所用的
java 指令集中 , 有无类似 x86 的 int 指令来达成
真正所提供的服务 , 我看了 java 的指令集似乎没有
类似指令 , 所以我想知道 API 到底是透过啥麽动作
(如何利用指令集)来告诉 JVM 此 API 所想要的真正服务.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.134.4.20