这是一个非常初学者的问题。
JRuby 是在 JVM 上实现的 Ruby。这是否意味着创建过程只是从头开始创建 Ruby 语言,用 Java 方法和类实现,而不是用 C?也就是说,每个 Ruby 方法都是在 Java 中一一实现的?我认为我的问题源于对 JVM 缺乏了解。
这意味着在 JRuby 中运行的所有 ruby 代码最终都会转换为由 JVM 执行的字节码。这种“翻译”可以在 JRuby 被编写和编译时已经完成,或者它发生在运行时,当 JRuby 编译器将 Ruby 代码转换为可以在 JVM 上运行的东西时。更具体地说:
String
方法,例如capitalize!
,在org.jruby.RubyString
Java 类中实现,或者某些日期和时间的东西基于joda-time
) ,