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

java常见

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,PHP也已经领先)。
我是最后一个不嘲笑Java的人,它当然不是灵丹妙药,但是如果人们因传闻证据或以前的不良经历而对误解的理解减少了,我会更高兴la“从我以前的公司开始,我就讨厌Java,因为该项目非常was肿”。 不仅是因为我不喜欢别人有偏见,而且因为您可能会以一种不起作用的语言开始下一个项目,只是因为您听说过“ Java不好”。

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

java常见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】国家开放大学2018年秋季 0341-21T高级英语听力(2) 参考试题

试卷编号:0363 座位号 2018—2019学年度第一学期期末考试 市场调查与预测 试题 2019年01月 1、市场调查是在一定时间、地点条件下进行的,是反映市场在特定情况下的信息,具有一定的( )。 A.科学性 B.时效性 C.社会性 …

带网管工业交换机跟不带网管交换机的差别

交换机是局域网的一种核心设备,可以自主工作的多个计算机系统连接在一起,实现局部的软硬件共享的网络。通常的交换机是利用第二层的MAC地址的进行工作的,所以一般的家庭交换机基本上都是二层交换机。交换机有带网管的也有不带网管的&#xff…

oracle 区分配,ORACLE自动段管理的区分配大小测试

说明:大家知道ORACLE表空间的最小分配单元是区,当进行文件空间划分的时候每次增加的大小都是按区来进行的,且ORACLE在创建表空间的时候,关于EXTENT MANAGEMENT的管理会有两个选项:1、LOCAL AUTOALLOCATE(本地自动管理)…

【渝粤教育】国家开放大学2018年秋季 0551-22T素描(二) 参考试题

编号:0556 座位号 2018~2019学年度第一学期期末考试 广告摄影 试题 2019年1月 一、名词解释(每小题5分,共15分) 景深: 对比: 全景与特写: 广告摄影试题第1页共4页 二、问答题(每…

通讯模块板载天线设计方法

注:本文来自 成都亿佰特 蛇形板载天线是无线通讯模块应用最广泛的一种天线类型,应用在蓝牙、WiFi、ZigBee等对性能要求不高、但对空间要求比较高的领域。今天就让成都亿佰特小编给大家普及一下蛇形板载天线的相关知识吧~ 作为天线工程师,每…

检查两个列表在Java中是否相等

介绍: Java中的列表是按自然顺序排列的。 因此,如果两个列表包含相同顺序的完全相同的元素,则认为它们是相等的。 在本教程中,我们将看到如何在Java中比较两个列表是否相等。 我们还将介绍仅比较两个列表中的元素并忽略其顺序的方…

【渝粤教育】国家开放大学2018年秋季 0680-22T会计基础知识 参考试题

编号:0689 座位号 2018~2019学年度第一学期期末考试 老年心理健康试题 2019年1月 一、名词解释(本大题共6小题,每题5分,共30分) 期待性焦虑 忧郁: 急躁: 暴躁: 心理…

物联网在水位监测中的应用

注:本文来自 成都亿佰特 基于E820-DTU(2I2-433L)和E90-DTU(433C30)的水位监测应用 水位资料与人类社会生活和生产关系密切。水利工程的规划、设计、施工和管理需要水位资料。桥梁、港口、航道、给排水等工程建设也需水位资料。防汛抗旱中,水位资料更为…

接入层工业交换机、汇聚层工业交换机与核心层工业交换机区别

了解工业交换机的人都知道,工业交换机被划分为接入层工业交换机、汇聚层工业交换机和核心层工业交换机,今天,飞畅科技的小编就来为大家详细说下这三种工业交换机,感兴趣的朋友就一起来看看吧! 首先,核心层工…

php作菜单,PHP制作下拉透明菜单

下拉透明菜单var mmenus new Array();var misShow new Boolean();misShowfalse;var misdown new Boolean();misdownfalse;var mnumberofsub0;var musestatusfalse;var mpopTimer 0;mmenucolor#89CB10;mfontcolorMenuText;mmenuoutcolor#ADEF34;mmenuincolor#B5E74E;…

【渝粤教育】国家开放大学2018年秋季 0707-21T办公室实务 参考试题

科目编号:0710 座位号 2018-2019学年度一学期期末考试 幼儿园课程活动设计 试题 2019年 1 月 一、单选题(本大题共5小题,每小题4分,共计20分) (★请考生务必将答案填入到下面对应序号的答题框中★&#xf…

E820-DTU与昆仑通态组态软件联机

随着工业自动化水平的迅速提高,计算机在工业领域的广泛应用,人们对工业自动化的要求越来越高,种类繁多的控制设备和过程监控装置在工业领域的应用,使得传统的工业控制软件已无法满足用户的各种需求。 在开发传统的工业控制软件时&…

【渝粤教育】国家开放大学2018年秋季 1007t公司财务 参考试题

试卷代号:1025 保险学概论 试题 2019年1月 注意事项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试 结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收完 考卷和答题纸后才可离开考场…

BLE蓝牙和传统蓝牙的区别

在移动设备上使用的蓝牙协议大多都是4.0,而蓝牙的4.0又有两个分支,经典4.0蓝牙和BLE4.0蓝牙,经典4.0就是传统的3.0蓝牙升级而成,向下兼容。而BLE4.0蓝牙是一个新的分支,不向下兼容。相较于传统的蓝牙,BLE蓝…

什么是核心交换机?如何选择核心交换机?

在系统组网中,经常会提到接入交换机、汇聚交换机、核心交换机。通常,我们将网络中直接面向用户连接或访问网络的部分称为接入层,将位于接入层和核心层之间的部分称为分布层或汇聚层,而将网络主干部分称为核心层。那么什么是核心交…

oracle 测试试题,oracle试题

㈠ oracle考试题1.数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。2.Oracle数据库专的版属本:Oracle 8i ,oracle 9i,oracle 10g.最后一个是目前最流行,针对oracle 10g又有标准版1、标准版、企业版和个人版这四个版本。3.数据库对象&…

【渝粤教育】国家开放大学2018年秋季 1087t数学分析专题研究 参考试题

试卷代号:1116 机电控制工程基础 试题(半开卷) 2019年1月 一、单项选择题(每小题3分,共15分) 1.一阶系统的传递函数为5sl,则其时间常数为( )。 A.0.5 B.5 C&a…

5W-Lora电台的远距离传输优势

本文来自 成都亿佰特 无线数传电台作为一种通讯媒介,与光纤、微波、明线一样,有一定的适用范围:它提供某些特殊条件下专网中监控信号的实时、可靠的数据传输,具有成本低、安装维护方便、绕射能力强、组网结构灵活、覆盖范围远的特…

在Kubernetes上使用Prometheus Operator监视应用程序

您可以使Prometheus配置了解您的应用程序在其中运行的Kubernetes环境。在先前的博客文章中 ,我已经描述了如何手动执行该操作。 Prometheus Operator是Kubernetes的扩展,它以更自动化和有效的方式管理Prometheus监视实例。 Prometheus Operator允许您将…

【渝粤教育】国家开放大学2018年秋季 1166t汉语通论 参考试题

试卷代号:1187 行政法与行政诉讼法 试题 2019年1月 一、选择题(共20分) (一)单项选择题(每小题只有一项答案正确,请将正确答案的序号填在括号内。每小题1分,共10分) 1.行…