Java和Ruby之间的7个主要区别

Baklib
Baklib 最后一次编辑 大约 4 年前
1229
您如何从Java迁移到Ruby?
在本指南中,您将学习两种语言之间的主要区别是什么,以帮助您进行跳转
对于希望从Java / C#过渡到Ruby的许多人来说,这很棒。
但…
如果您只是对差异感到好奇,那么这也适合您。
我们开工吧!

静态打字与动态打字

在查看任何一种编程语言的代码时,键入样式是最大也是最明显的区别。
情况如下:
  1. Java使用静态类型
  2. Ruby使用动态类型
到底是什么意思?
键入是指变量和方法参数的工作方式。
获取我的终极Ruby秘籍表: 这个方便的7页PDF帮助您快速找到所需的Ruby语法,正在寻找的Ruby方法或您不太记得其名称的内置类。
强烈(或静态)类型化的语言必须声明每个变量可以接受的类型(类)。
看起来像这样:
  1. 整数n = 1 ;
int类型在这种情况下在哪里Integer
为什么这样有用?
因为如果您尝试将任何其他类型的对象分配给此变量,则编译器将引发错误,并且您的程序甚至无法运行。
这意味着您将始终知道您正在使用哪种对象
缺点是缺乏灵活性。
相反…
动态类型就是灵活性,变量不与特定类型绑定,因此类型可以更改。
这是一个例子:
  1. n = 1
  2. n = “ abc”
不利的一面是,如果您的代码草率,并且在阅读代码时得到的信息不多,您可能会遇到更多错误。
这是主要区别之一!
在下一部分中有更多内容。

语法:简单的事物和样板

Java是样板之王。
样板代码是您为了使代码在语法上有效而必须添加的所有“设置”代码。
结果是…
Java使简单的事情变得复杂!
Java中的Hello World:
  1. 您好类{
  2. 静态public void main (){
  3. 系统。出来。println (“ Hello World” );
  4. }
  5. }
然后,您必须将其编译为类文件并运行。
两步!
(IDE对此提供了帮助。)
另一个区别是Java中的表达式以分号结尾,而Ruby中不需要。大多数时候,您也可以在Ruby中省略括号。
Ruby中的Hello World:
  1. 放置“ Hello World”
是的
而已。
看起来Ruby可以使代码更简洁。同意?
最重要的是…
您可以从终端通过单个命令运行此代码!
无需编译步骤。

玩代码:内置REPL

Ruby带有irb,这使得测试代码非常快。
您甚至不需要保存文件。
或打开编辑器!
Java没有内置此功能,至少在Java 9之前没有。

文件名和文件组织

Java强制特定的文件命名结构和组织。
例如:
如果您有一个名为(公共)的类Hello,则文件名必须为Hello.java
在Ruby中并非如此。
另外,我们在Ruby中没有私有的概念。

异常处理

Java有两种类型的异常:
  1. 检查异常
  2. 未经检查的异常
区别?
您必须处理检查的异常!
否则您的程序甚至无法运行。
现在:
Ruby只有一种异常。
如果需要,您可以处理它,解释器不会抱怨它,但是可能最终导致程序崩溃。

编译器和语言许可

最后,让我们谈谈许可。
这通常不是编程语言的问题。
为什么?
因为它们是开源的,所以只有一个人担任首席维护者和设计师。
Java在这里有所不同。
它交给了一家大公司(Oracle),这对其许可产生了影响。
实际上:
Java运行时有两个版本,即“ Oracle JDK”,从版本9开始(如果我理解正确的话)是商业产品。
然后有“ Open JDK”,它也属于Oracle。
但是它有一个开源许可证。

库和代码分发

另一个主要差异是RubyGems,这也是我最喜欢的Ruby(也是Matz的最爱)之一。
它使分发库(如HTTP客户端)更加容易。
因为:
  1. 有一个中央仓库
  2. 它已集成到语言中
  3. 许多开放源代码的宝石都可以找到并且很容易找到
据我所知,Java没有与之接近的东西,因此这对Ruby 是一个重大胜利。