原文链接:http://www.ruby-lang.org/zh_cn/documentation/ruby-from-other-languages/to-ruby-from-java/
Java是成熟的语言。被广泛测试。同时也是敏捷的(反对Java的人群可能一直对此嗤之以鼻)。同时也很重量级。从Java到Ruby,能让你的代码量收缩下来。同时也可以花费更少的时间去推敲代码。
相似点
和Java一样,在Ruby的世界里,...
- 程序员不用关心内存回收,ruby通过垃圾回收管理内存。
- 都是强对象类型检查。
- 都有 public, private, and protected方法。
- 都有自带文档生成工具 (Ruby’s 的叫RDoc)。ruby的文档和java都超很相似。
不同点
和Java不一样,在Ruby的世界里,...
- 不用编译程序,直接运行。
- Ruby使用了不同的GUI开发工具。Ruby的用户可以使用WxRuby,FXRuby,Ruby-GNOME2,或者bundled-in工具。
- Ruby使用结束关键字定义内容,如class,不使用“{}”来包含代码块。
- 使用require代替import关键字。
- 成员变量都是私有的。 在外部,只能通过方法访问成员变量。
- 方法调用后的圆括号是可选的,往往省略。
- 一切皆是对象,包括数字像2和3.14159。
- Ruby没有静态类型检查。
- 变量名只是一个标签,没有类型。
- 没有类型声明。直接在需要的地方指定新的变量名 (i.e.
a = [1,2,3]不是
int[] a = {1,2,3};
). - 没有类型转换,直接调用方法即可。你需要使用单元测试检测运行代码异常。
- 创建对象
通过foo = Foo.new( "hi")
,而不是foo = new Foo( "hi" )。
- 构造函数都命名为“initialize”,不在使用类名.
- 使用“mixin’s”代替接口。
- YAML 替代 XML。
- 使用
nil代替
null。
==
andequals()
的含义和java里相反. 使用==
来判断两个对象是否相等(java里用equals()
)。 使用equals()判断两个对象是否是同一个对象
(java里用==
)。