Java是世界上使用最广泛的语言(需要引用),每个人对此都有自己的见解。 由于它是主流,所以通常会嘲笑它,有时是正确的,但有时批评只是不切合实际。 我将尝试解释我最喜欢的5个关于Java的误解。

  1. Java速度很慢 – Java 1.0可能确实如此,并且最初听起来似乎合乎逻辑,因为Java不是编译成二进制,而是编译成字节码,而字节码又被解释了。 但是,现代版本的JVM进行了非常非常优化(JVM优化不仅是一篇文章,而且是一整本书的主题),而且不再是遥不可及的了。 如此处所述 , 在某些情况下 ,Java甚至可以与C ++媲美。 如果您是Ruby或PHP开发人员,那么开个关于Java变慢的笑话当然不是一个好主意。
  2. Java太冗长 -在这里,我们需要将语言从SDK和其他库中分离出来。
    • JDK(例如java.io)中有一些冗长的细节,这是:1.用事实上的标准库(例如guava)轻松克服了2. 一件好事
    • 至于语言的冗长性,唯一合理的一点是匿名类。 在Java 8中,这些功能不再是问题。 Getters和setters, Foo foo = new Foo()而不是使用val (可能是)样板,但它并不冗长-不会在代码上增加概念上的分量。 不需要花费更多的时间来编写,阅读或理解。
    • 其他库–看到像AbstractCommonAsyncFacadeFactoryManagerImpl这样的类确实很吓人。 但这与Java无关。 可以说,有时这些长名称是有意义的,也可以说它们是如此复杂,因为底层的抽象不必要地复杂,但是无论哪种方式,这都是每个库做出的设计决定,而语言或语言都不是什么。 SDK会强制执行。 看到过度设计的东西是很常见的,但是Java绝不会将您推向这个方向-可以使用任何语言以简单的方式完成东西。 您肯定可以在Ruby中使用AbstractCommonAsyncFacadeFactoryManagerImpl ,只是没有一个愚蠢的建筑师认为这是个好主意,并且使用Ruby。 如果“大型,认真,沉重”的公司都在使用Ruby,我敢打赌我们会看到相同的情况。
  3. 企业Java框架是过时的软件 –肯定在2002年使用EJB 2时(或者“已经”,我还太年轻,无法记住)确实如此。 而且,您仍然确实不需要一些过度设计和过时的应用程序服务器。 人们使用它们的事实是他们自己的问题。 您可以使用Spring,Guice甚至CDI之类的框架来拥有一个完美,易读,易于配置和部署的Web应用程序。 使用诸如Spring-MVC,Play,Wicket甚至最新的JSF之类的Web框架。 甚至没有任何框架,如果您不想重复使用通过真实世界使用的框架。 您可以拥有一个使用消息队列,NoSQL和SQL数据库,Amazon S3文件存储等的应用程序,而不会造成任何意外的复杂性。 的确,人们仍然喜欢吃惊的东西,并在不需要的地方添加几层,但是框架为您提供这种功能的事实并不意味着他们会让您做到这一点。 例如, 这是一个应用程序 ,可对政府文档进行爬网,为其编制索引,并提供用于搜索和订阅的UI。 听起来有点简单,确实如此。 它是用Scala(非常用Java的方式)编写的,但仅使用Java框架-spring,spring-mvc,lucene,jackson,guava。 我想您可以开始快速维护,因为它很简单。
  4. 您不能使用Java快速原型设计 -这与上一点有关-假定使用Java的速度很慢,这就是为什么如果您是初创公司或周末/黑客松项目,则应使用Ruby (使用Rails),Python,Node JS或其他任何可以让您快速原型化,保存和刷新,轻松进行迭代的东西。 好吧,那根本不是真的,而且我甚至都不知道它来自哪里。 可能是因为流程繁重的大公司使用Java,因此制作Java应用程序会花费更多时间。 而且“保存并刷新”对于初学者来说可能令人望而生畏,但是使用Java(针对Web)编程了一段时间的任何人都必须知道一种自动化方法(否则他是n00b,对吗?)。 我已经总结了可能的方法 ,并且大多数方法都可以。 这里的另一个示例(也可以用作上述要点的示例)–我做了这个项目,用于验证周末+ 1天之内网站的安全密码存储,以解决晚上的问题。 包括安全性研究。 Spring-MVC,JSP模板,MongoDB。 再次-快速简便。
  5. 如果没有IDE ,您将无法在Java中执行任何操作 -当然可以,您可以使用notepad ++,vim和emacs。 您将只缺少重构,保存时编译,调用层次结构。 就像使用PHP或Python或javascript进行编程一样。 关于IDE与编辑器的争论很长,但是您可以在没有IDE的情况下使用Java。 这样做没有任何意义,因为从IDE获得的收益远远超过从文本编辑器+命令行工具获得的收益。

您可能会争辩说,因为我有丰富的经验,所以我能够快速编写精美而简单的Java应用程序,我确切地知道要使用(不使用)哪些工具,而且我是一些常识性的稀有开发人员。 虽然我会为此受宠若惊,但我与优秀的Ruby开发人员或Python专家没有什么不同。 只是Java太普及了,以至于没有好的开发人员和工具。
如果有那么多人使用其他语言,那么可能会生成相同数量的糟糕代码。 (即使使用更少,PHP也已经领先)。 我是最后一个不嘲笑Java的人,它当然不是灵丹妙药,但是如果人们因传闻证据或以前的不良经历而对误解的理解减少了,我会更高兴la“从我之前的公司开始,我就讨厌Java,因为该项目非常肿”。 不仅是因为我不喜欢别人有偏见,而且因为您可能会以一种不起作用的语言开始下一个项目,只是因为您听说过“ Java不好”。

翻译自: https://www.javacodegeeks.com/2014/04/common-misconceptions-about-java.html

关于Java的常见误解相关推荐

  1. java常见_关于Java的常见误解

    java常见 Java是世界上使用最广泛的语言(需要引用),每个人对此都有自己的见解. 由于它是主流,所以通常会嘲笑它,有时是对的,但有时批评并没有触及现实. 我将尝试解释我最喜欢的5个关于Java的 ...

  2. 学习C++开发技术,常见误解有哪些?

    学习C++你是否会有以下几点误解? 1."要理解C++,你必须先学习C" 2."C++是一门面向对象的语言" 3."为了软件可靠性,你需要垃圾回收&q ...

  3. 编写java程序的常见问题_Java程序的编写与执行、Java新手常见的问题解决

    原标题:Java程序的编写与执行.Java新手常见的问题解决 今天,我们来写一段Java程序.然后看看Java程序是如何执行的,以及Java新手小白遇到的问题和解决办法. HelloWorld的编写 ...

  4. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

  5. JAVA中常见的Exception

    这篇文章转载自 : JAVA中常见的Exception 常见的几种如下: NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常. I ...

  6. Java开源——常见J2EE框架简介

    Java开源--常见J2EE框架简介 Spring Framework Spring是一个解决了许多在J2EE开发中常见的问题的强大框架. Spring提供了管理业务对象的一致方法并且鼓励了注入对接口 ...

  7. Java数组常见操作

    Java数组常见操作 文章目录 Java数组常见操作 7.0 数组的遍历 1.使用foreach循环访问数组中每个元素. 2.使用简单的for循环(多层循环嵌套)来遍历数组. 7.1 数组长度 7.2 ...

  8. Java中常见的十八种异常!

    作为一只敬业的程序员,就是不能接受我的编程出现bug!可见我们对bug是如此的深恶痛觉!它已成为我们职业生涯中的拦路虎,所以今天小千精心为大家总结一下Java中常见的几种异常,望大家多多注意. 1.j ...

  9. extjs6 引入ux_关于UX以及如何摆脱UX的6种常见误解

    extjs6 引入ux Do you ever browse social media, internet, or talk to colleagues and hear them say somet ...

最新文章

  1. mongodb 安装时错误
  2. sql 取重复key中的第一条_SQL每日一题
  3. Android文件操作
  4. 如何快速搭建一个免费的,无限流量的Blog
  5. LeetCode 640. 求解方程(字符串)
  6. AOS编排语言系列教程(二):初识AOS编排语言,创建你的第一个AOS模板
  7. hdu 3635 Dragon Balls 并查集应用记录每个点的转移次数
  8. 中标麒麟系统u盘安装_中标麒麟u盘安装电脑系统方法
  9. Sublime 编译器-安装插件
  10. EasyRecovery,重新找寻丢失的文件
  11. 概率论基础知识(书本摘录总结)
  12. 基于Java毕业设计银行贷款管理系统源码+系统+mysql+lw文档+部署软件
  13. CATIA入门学习常见问题(一)
  14. 大数据平台之数据存储
  15. Radius 协议介绍
  16. 《东周列国志》第五十四回 荀林父纵属亡师 孟侏儒托优悟主
  17. Up in the Air-16
  18. CentOS 6.8 数据库安装5.5.32
  19. Android系统(手机平板)根目录详解
  20. 不经一番彻骨寒,怎得梅花扑鼻香

热门文章

  1. php accesscontrolalloworigin,设置Access-Control-Allow-Origin实现跨域访问
  2. c遗传算法的终止条件一般_KDD比赛之遗传算法(举例理解)
  3. rabbitmq启动失败-报Failed to load advanced configuration file解决方法
  4. Java虚拟机详解----常用JVM配置参数
  5. java并发编程实践(2)线程安全性
  6. SpringMvc @RequestParam、 @RequestBody、@RequestPart 的区别
  7. 乡村野生草药_官方野生蝇群流口水分数
  8. spark rest_Spark简介,您的下一个REST Java框架
  9. java写入单个字符_将2个字符写入单个Java char
  10. 只针对异常的情况才使用异常_如何以及何时使用异常