1、语言特性。相对来说比较稳定,学习成本较低,从java1.5、1.6、java8,语法变化不大,原来的写法一直是兼容的,不像nodejs、python换一个版本区别太大、依赖库也变化太大。

2、开发环境。开发环境很成熟,各种开发工具、框架、类库、jar包很齐全。

3、运行环境。各种容器,很容易获得,或用打包工具打成一个jar,基本上只依赖于几个M的一个jre,很轻量级,当然和go这样完全编译成一个exe的话言相比,运行环境略重。

4、应用生态。如果开发企业应用软件或行业软件,大部分得用java,虽然java虚拟机有点吃内存,对CPU占用也高,但现在基本上用k8s等容器管理应用,动态扩容,对机器的要求可忽略不计。用的人多,知识容易获得。

C++ 之父 Bjarne Stroustrup 说:“世界上只有两种语言,一种饱受诟病,另一种没人使用。” 作为一门十多年来经久不衰的语言,Java 难免会饱受诟病。

但是,正如 Java 之父 James Gosling 在 The Feel of Java 中所说的那样:

“Java 是一门蓝领语言。它不是博士学位论文的材料,而是用于工作的语言。”

现实情况也是这样,Java 已经被大量的公司大规模使用:Google、Amazon、Netflix、Alibaba、Baidu、Tencent、ByteDance等。

Java 拥有良好的生态,拥有大量第三方库以及企业级框架。例如,在 Web 服务器方面,有 Apache Tomcat 、Eclipse Jetty 这样的被广泛使用的成熟项目;在大数据领域,Apache Hadoop、Apache Spark、Apache Kafka 等优秀项目都是使用 Java 开发的;在 Web 应用中,Spring MVC、Spring Boot、Spring Cloud 这样框架已经被大量企业大规模使用。

语言的生态显然是极其重要的,在软件工程领域,复用是一个重要的思想,绝大多数软件开发者都必须站在巨人的肩膀上,借助前人写好的“轮子”,来快速可靠地组装自己想要实现的那辆“汽车”

Java 是一门有着 20 多年历史的编程语言,或许有人会对 Java 嗤之以鼻,认为 Java 太过陈旧、太过笨重、已经不值得深入学习了。实际上,并不是这样的,无论你学或不学,Java 一直都站在那;无论你关心或不关心,Java 也一直在发展。

从 Java 诞生之初到今天,世界上已经有太多的语言变得不再流行了,例如:Pascal、Delphi、COBOL、Ada。但是,Java 不仅活了下来,而且成功地抢占了编程生态系统中的大片位置。

有句俗语叫做:“富不过三代。”Java 能取得今天的成就,固然与先天的优势有关,但更与后天的努力密不可分。例如,Java 5 引入的注解极大地简化了开发工作,使得依赖注入成为了可能;Java 7 中添加了 Fork/Join 框架,使得加速处理大型任务更加容易;Java 8 引入的 lambda 表达式和 Stream API 使得程序员们能够书写更简洁的代码、更容易地实现并行;Java 14 更引入了 Records 特性,让开发人员不用再编写大量的 POJO (Plain Ordinary Java Object),也不必再借助 Lombok 或者 IDE 自动生成这些机械化的代码。

同时,Java 带给人的那种“一字一板”的感觉,在软件工程领域也是非常重要的。

对于大多数开发者来说,阅读代码的时间会比写代码的时间多得多。我们不是在读自己写的代码的路上,就是在读别人写的代码的路上。Java 这种“一字一板”的语言,所带来的可读性,能够帮助我们更快地理解代码的意图,更快地去修改代码。毕竟,有时候太过简洁,写的时候可能很舒服,但会给后续的维护埋下太多的坑;而太过啰嗦,语法密度太高,又会使人摸不着头脑。所以,Java 是一门比较适合企业级大规模使用的语言。

java是否过于笨重?相关推荐

  1. 解决uni-app创建的H5项目只使用v-loading,避免引入element-ui过于笨重问题

    1.准备loading.js import Vue from 'vue'/*** 插入loading*/ const insertDom = (el) => {let dom =`<div ...

  2. java中的console是干什么的_[Java教程]javascript中,你真的会用console吗?

    [Java教程]javascript中,你真的会用console吗? 0 2015-08-11 17:00:09 使用console进行性能测试和计算代码运行时间 对于前端开发人员,在开发过程中经常需 ...

  3. P3-weixin-2.0.1 版本发布,JAVA微信插件框架

    P3-weixin-2.0.1版本发布(JAVA微信插件框架) P3-Weixin是轻量级Java插件开发框架,采用主流JAVA技术,集成强大代码生成器,增删改查一键生成,封装统一后台管理系统,不仅适 ...

  4. Java 并发编程阅读笔记

    第一章 原子性 可见性 有序性 1.1原子性 即某个正在执行的操作不能中断,不能被分割,要么就不执行,要么就执行完毕. 正如我们所知道的synchronized代码块,这块里面的东西要么就是被执行完毕 ...

  5. 轻量级java snmp设备网管软件开发技术

    Java技术,在网络管理系统中的应用已经比较普遍.网管软件的分类有很多种,有侧重于业务应用的,有侧重于管理设备的,有侧重于网络的,有侧重于桌面管理的,每种网管软件虽然外在的具体表现形式都不同,但其实内 ...

  6. JAVA数组去重方法

    记录JAVA中数组去重方法 1利用Set的特性去重复 Set set = new HasSet();for (int x=0 ; x<arr.length ; x++){set.add(arr[ ...

  7. Java开发 - 不知道算不算详细的JUC详解

    前言 大概有快两周没有发文了,这段时间不断的充实自己,算算时间,也到了该收获的时候,今天带来一篇JUC详解,但说实话,我也不敢自信它详不详细.JUC说白了就是多线程,学Java不久的人知道多线程,恐怕 ...

  8. Java Web之Servlet入门

    Java Web之Servlet入门 ​ 上世纪90年代,随着Internet和浏览器的飞速发展,基于浏览器的B/S模式变得火爆起来. 最初,用户使用浏览器向WEB服务器发送的请求都是请求静态的资源, ...

  9. 微服务:Java EE的拯救者还是掘墓人?

    有人认为,微服务的大行其道是在给Java EE下达死刑判决书.也有人认为,Java EE已死的论调可笑至极.读者朋友,你们怎么看? 引言 有人说,Java确实过于臃肿,经常"小题大做&quo ...

最新文章

  1. Node.js服务器启用Gzip压缩
  2. python常用内置函数总结-Python 常用内置函数
  3. 【转】如何选好Android开发书籍和教程[总结]
  4. python拆分列表元素_Python将列表拆分为一个元素 - python
  5. 收官礼 | 《神策 2018 数据驱动大会回顾专刊》发布,你要的干货,已打包!
  6. 吴恩达“机器学习”——学习笔记二
  7. linux 7修改主机名重启后不生效_Linux 中改变主机名的 4 种方法 | Linux 中国
  8. java中的holder类_java – HashMap中Holder类的用途是什么?
  9. Performance --- 前端性能监控
  10. 这段百度问答,对我相关有对啊!!!----如何获取Windows系统登陆用户名
  11. 转载--如何使用# ## ... _ _VA_ARGS_ _
  12. 这个春天有点冷,2019年互联网公司裁员清单大全(更新)
  13. Rulo扫地机器人app_扫地机器人扫不干净 为什么我还推荐大家买?
  14. 诺奖这么多,经济还崩溃了?
  15. CCNA考试题库中英文翻译版及答案16
  16. 三维引擎导入obj模型全黑总结
  17. RocketMQ(十)RocketMQ事务消息
  18. Golang使用lxn/walk做GUI界面开发:邮件群发器
  19. 新视智科锂电池隔膜缺陷视觉检测系统,助力企业降本提质增效
  20. 如何利用Python教你如何爬取高德地图!非常全面啊!

热门文章

  1. 一封来自前ThoughtWorks总监咨询师、致国内程序员的一封信
  2. 世界大同,人生该如何
  3. 破解ChatGPT机遇与挑战,中国AIGC产业峰会给出最强答案
  4. 开篇词:“桌面应用”是一顶璀璨的王冠
  5. 实习时候的亚子==(三)
  6. 从25匹马中选5匹最快马
  7. 无人机c语言程序设计,c语言程序设计课程设计单元设计教案).pdf
  8. 汇编实现通过输入被加数与加数,实现加法
  9. 通过机器学习的线性回归算法预测股票走势(用Python实现)
  10. 读刘未鹏老大《你应当如何学习C++(以及编程)》