java怎么用?自述:为什么我使用 Java

很多准备着手学习Java的小伙伴们都在疑问Java怎么用,好用吗?今天讲述了一位开发人员为何一直使用Java,以下是其自述。

java怎么用?自述:为什么我使用 Java-少儿编程网

记得我是从 1997 年开端运用 Java 的,就在 Java 1.1 刚刚发布 不久之后。从那时起,总的来说,我十分喜爱用 Java 编程;尽管我得供认,这些日子我经常像在 Java 中编写“严厉的代码”一样编写 Groovy 脚本。

来自 FORTRAN 、 PL/1 、 Pascal 以及最终的 C 言语 背景,我发现了许多让我喜爱 Java 的东西。Java 是我 面向目标编程 的第一次重要实践经验。到那时,我现已编程了大约 20 年,而且能够说我对什么重要、什么不重要有了一些看法。

调试是一个关键的言语特性
我真的很厌烦浪费时间追踪由我的代码不小心迭代到数组末尾而导致的含糊过错,特别是在 IBM 大型机上的 FORTRAN 编程时代。另一个不时出现的隐晦问题是调用一个子程序时,该子程序带有一个四字节整数参数,而预期有两个字节;在小端架构上,这一般是一个良性的过错,但在大端机器上,前两个字节的值一般并不总是为零。

在那种批处理环境中进行调试也十分不方便,经过核心转储或刺进打印句子进行调试,这些句子本身会移动过错的位置乃至使它们消失。

所以我运用 Pascal 的早期体会,先是在 MTS 上,然后是在 IBM OS/VS1 上运用相同的 MTS 编译器,让我的生活变得愈加轻松。Pascal 的 强类型和静态类型 是获得这种成功的重要组成部分,我运用的每个 Pascal 编译器都会在数组的边界和范围上刺进运行时检查,因此过错能够在发生时检测到。当我们在 20 世纪 80 年代早期将大部分作业转移到 Unix 系统时,移植 Pascal 代码是一项简单的任务。

Java怎么用之适量的语法
但是对于我所喜爱的 Pascal 来说,我的代码很冗长,而且语法好像要比代码还要多;例如,运用:

if ... then begin ... end else ... end
而不是 C 或类似言语中的:

if (...) { ... } else { ... }
别的,有些作业在 Pascal 中很难完成,在 C 中更简单。但是,当我开端越来越多地运用 C 时,我发现自己遇到了我曾经在 FORTRAN 中遇到的相同类型的过错,例如,超出数组边界。在原始的过错点未检测到数组完毕,而仅在程序执行后期才会检测到它们的不利影响。幸运的是,我不再生活在那种批处理环境中,而且手头有很好的调试东西。不过,C 对于我来说有点太灵活了。

当我遇到 awk 时,我发现它与 C 相比又是别的一种样子。那时,我的许多作业都涉及转换字段数据并创立陈述。我发现用 awk 加上其他 Unix 命令行东西,如 sort、sed、cut、join、paste、comm 等等,能够做到作业令人吃惊。从本质上讲,这些东西给了我一个像是基于文本文件的联系数据库管理器,这种文本文件具有列式结构,是我们许多字段数据的保存办法。或者,即使不是这种格局,大部分时分也能够从联系数据库或某种二进制格局导出到列式结构中。

awk 支撑的字符串处理、 正则表达式 和 关联数组 ,以及 awk 的基本特性(它实际上是一个数据转换管道),十分契合我的需求。当面对二进制数据文件、杂乱的数据结构和关键性能需求时,我仍然会转回到 C;但跟着我越来越多地运用 awk,我发现 C 的十分根底的字符串支撑越来越令人懊丧。跟着时间的推移,更多的时分我只会在有必要时才运用 C,而且在其他的时分里大量运用 awk。

Java 的笼统层级适宜
然后是 Java。它看起来相当不错 —— 相对简练的语法,让人联想到 C,或者这种相似性至少要比 Pascal 或其他任何早期的言语更为明显。它是强类型的,因此许多编程过错会在编译时被捕获。它好像并不需要过多的面向目标的知识就能起步,这是一件好事,因为我其时对 OOP 设计方式 毫不熟悉。但即使在刚刚开端,我也喜爱它的简化 承继模型 背后的思想。(Java 允许运用供给的接口进行单承继,以在某种程度上丰厚典范。)

它好像带有丰厚的功用库(即“自备电池”的概念),在适当的水平上直接满足了我的需求。最终,我发现自己很快就会想到将数据和行为在目标中组合在一起的主意。这好像是清晰控制数据之间交互的好办法 —— 比大量的参数列表或对全局变量的不受控制的拜访要好得多。

从那以后,Java 在我的编程东西箱中成为了 Helvetic 军刀。我仍然偶尔会在 awk 中编写程序,或者运用 Linux 命令行实用程序(如 cut、sort 或 sed),因为它们显然是解决手头问题的直接办法。我怀疑过去 20 年我可能没写过 50 行的 C 言语代码;Java 彻底满足了我的需求。

此外,Java 一直在不断改进。首要,它变得愈加高效。而且它添加了一些十分有用的功用,例如 能够用 try 来测试资源 ,它能够很好地清理在文件 I/O 期间冗长而有点混乱的过错处理代码;或 lambda ,它供给了声明函数并将其作为参数传递的才能,而旧办法需要创立类或接口来“保管”这些函数;或 流 ,它在函数中封装了迭代行为,能够创立以链式函数调用方式实现的高效数据转换管道。

Java 越来越好
许多言语设计者研究了从根本上改进 Java 体会的办法。对我来说,其间大部分没有引起我的太多兴趣;再次,这更多地反映了我的典型作业流程,而且(更多地)减少了这些言语带来的功用。但其间一个演化步骤现已成为我的编程东西中不可或缺的一部分: Groovy 。当我遇到一个小问题,需要一个简单的解决方案时,Groovy 现已成为了我的首选。而且,它与 Java 高度兼容。对我来说,Groovy 填补了 Python 为许多其他人所供给的相同用处 —— 它紧凑、DRY(不要重复自己)和具有表达性(列表和词典有完整的言语支撑)。我还运用了 Grails ,它运用 Groovy 为十分高性能和有用的 Java Web 应用程序供给简化的 Web 框架。

Java 仍然开源吗?
最近,对 OpenJDK 越来越多的支撑进一步提高了我对 Java 的舒适度。许多公司以各种办法支撑 OpenJDK,包含 AdoptOpenJDK、Amazon 和 Red Hat 。在我的一个更大、更长期的项目中,我们运用 AdoptOpenJDK 来在几个桌面平台上生成自定义的运行时环境 。

有没有比 Java 更好的言语?我确信有,这取决于你的作业需要。但我一直对 Java 十分满足,我还没有遇到任何可能会让我失望的东西。

本文链接:java怎么用?自述:为什么我使用 Java

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:少儿编程网,谢谢!^^


*文章为作者独立观点,不代表少儿编程网立场
发表评论

坐等沙发
相关文章
佛山已有320所学校参与教育创客培养计划
佛山已有320所学校参与教育创客培养计划
2019年CSP-JS深圳市报名数据
2019年CSP-JS深圳市报名数据
小孩贪玩不学习,家长这样引导!
小孩贪玩不学习,家长这样引导!
东莞小学生吴宇航获得第十五届“宋庆龄少年儿童发明奖”人工智能编程组金奖
东莞小学生吴宇航获得第十五届“宋庆龄少…
【儿童心理教育】幼儿厕所吃饭会造成心理影响
【儿童心理教育】幼儿厕所吃饭会造成心…
佛山市创新创客教育工作推进现场会
佛山市创新创客教育工作推进现场会
麦壳 作者
我还没有学会写个人说明!