在众多编程语言中,java长期占据TIOBE编程语言排名的前面位置。尽管出现了很多新的编程语言,但是java的名声从未下降过。大多数专家都不能否认java是最强、最有效的编程语言之一,并且在众多领域广泛应用。

但是,事物均有两面性,java也不例外。下面就介绍下java的优缺点。

  • 优点

java是一种面向对象的通用编程语言,可以在任何平台上创建程序和应用。java拥有很多让你坚持使用它的优点,让我们来具体的讨论下java语言的这些优点吧。

1.简单

java语法是简单明了的、易于编写、学习、维护、理解和代码是易于debug的。并且,java没有其他语言如:C/C++那么复杂,因为很多复杂的特性如:显示的指针概念、类存储、操作符重载等都已经从java中移除掉了。

2.面向对象

java是一种面向对象的语言,它能帮助我们增强代码的灵活性和可重用性。利用OOPs的概念我们可以在其他程序中很轻松的重用对象。它可以用过将数据和方法绑定到单个单元中同时阻止被外部世界访问以提高程序的安全性。

3.安全

java通过避免采用显示的指针以减少安全攻击和风险。因为,指针存储了另一个值得内存地址,而这个值可能导致内存被未经授权访问。而java的安全管理器可以为每一个应用定义存取规则。

4.维护成本低

java程序可独立于特定的硬件基础设施运行,即是可以在任何机器上运行(安装对应的JVM),这样可减少额外的维护成本。

5.平台独立

只要机器上安装了对应的java虚拟机(JVM),经过编译的字节码就可以在该机器上(任何系统)上运行,如下图所示:

6.高级语言、可读性高

java与C++一样,与人类语言具有相似性、可读性高,语法简单易于维护。

7.可移植

由于java语言的平台独立性决定了,java应用可以从一个平台移植到其他任何的平台上。

8.内存自动回收

java虚拟机(JVM)中内置于内存自动管理机制,当java程序中的对象不再使用时java虚拟机内存管理机制会自动触发并销毁对象回收内存,而不需要程序显示的做任何事情。

9.支持多线程

java是一种多线程语言,即是在同一时刻可以有多个线程在执行。多线程可以帮助我们最大化CPU的利用率。多线程共享相同的内存空间,提升应用的效率和性能。各个线程之间独立运行互不影响。

10.稳定性

java每次发布的版本都会增加一些新特性,让java变得更加的稳定。

11.高效内存分配策略

java将内存主要分为堆区域和栈区域两部分,任何时候只要声明了一个变量,JVM就会为变量自动分配内存空间(堆空间/栈空间)。

12.分布式语言

java是一种分布式语言因为它提供了在多个计算机之间共享数据和程序的机制以便改善系统的性能和效率。java的远程方法调用(RMI)为分布式处理提供了支持。并且,java也支持Sokcet编程和CORBA技术以帮助我们在分布式环境中共享对象。

  • 缺点

1.运行速度相对较慢、性能相对较低

由于java程序编译成字节码后需要解释成机器码,在JVM解释的过程中需要额外的抽象动作以及消耗更多的内存,并且,在垃圾回收的过程中需要消耗额外的CPU时间,这就降低了运行速度和性能。这也是java比原生的底层语言C或C++运行速度慢及性能低的原因。

2.GUI外观及体验不佳

尽管java处理许多图形界面工具如:Swing,SWT,JavaFX,JSF等但是它们都不适合用于复杂的UI。

3.没有备份工具

4.占用更多的内存

因为java运行垃圾回收时会消耗更多的内存空间,影响系统的效率和性能。

5.代码不够简洁

Java代码是冗长的,即是有许多单词和许多长而复杂的句子,难以阅读和理解。

java语言的优缺点相关推荐

  1. ❤ go语言和java语言的优缺点

    ❤ go语言和java语言的优缺点对比 colspan rowspan ❤ go语言和java语言的优缺点对比 对比 JAVA GO 介绍 Java是一种流行的面向对象的编程语言,它的语法类似于C++ ...

  2. acm c 和java如何取舍,ACM中使用JAVA语言的优缺点介绍

    Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特点: (1) 最明显的好处是,学会Java,可以参加Java Challenge   :) (2) 对于熟 ...

  3. Java基础(一)Java语言概述及入门

    1 Java语言概述 1.1Java概述 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言. 是一种面向Internet的编程 ...

  4. Java 基础-01 Java语言入门

    文章目录 Java 基础-01 Java语言入门 1.计算机基本概念 1.1 计算机概述 1.2 计算机组成 1.3 CPU.内存与硬盘 2.软件基本概念 2.1 软件概述 2.2 人机交互方式 2. ...

  5. Java语言跨平台性质的优点和缺点_机器人热门编程语言及优缺点分析

    机器人编程语言最早于20世纪70年代初期问世,到目前为止已有多种编程语言出现,在众多机器人编程语言中究竟哪种编程语言最好呢?这个问题困扰了很多新手学者,但遗憾的是,这是一个没有准确答案的问题,你问不同 ...

  6. python的优点和缺点-Python语言的优缺点,你知道吗?

    Python被称为是机器学习最优秀的语言,没有之一.很多人不禁会问,Python究竟有什么优点呢?能够在短短时间内上升为编程界最受欢迎的语言.今天,千锋武汉Python培训小编就详细讲解一下Pytho ...

  7. java 判断exception类型_Checked Exception | Java语言设计者的失误?

    背景 最近公司一直在执行sonar扫描代码bug.漏洞及异味,但发现了很对异常处理的问题,大多数是对Java异常处理不正确导致的,那本文就谈谈Java的异常是什么?设计者的初衷又是什么? Except ...

  8. Python超越Java语言,跃居世界编程语言第2位了!你却还在犹豫学不学Python?

    一.前言 C.Java.Python作为常据世界编程语言排行榜前三甲的语言,必然有其得天独厚的优势.以下是2021年5月最新的高级编程语言排行榜,可以看到,Python已经超越Java语言跃居世界第二 ...

  9. 【详解】Java语言的特点以及Java语言与C/C++的比较

    文章目录 一.Java语言的特点 1.跨平台性/可移植性 2.面向对象 3.简单性 4.分布性 5.健壮性 6.安全性 7.解释型 8.多线程 二.Java与C/C++的区别 1.指针 2.多重继承 ...

  10. java语言精通能干什么_Java学到什么程度才能叫精通?

    1. 掌握Java语言语法,能够区别Java和其他语言的语法,并能快速且准确地定位.修正程序中出现的Errors和Warnings语法错误: 2. 熟悉某一版本的JDK(如1.8版本)自带的常用命令及 ...

最新文章

  1. 两台SQL Server数据同步解决方案
  2. PHP - 如何实现跨域
  3. mysql 1084_[LeetCode]1084. 销售分析III(Mysql,having+聚合函数)
  4. uboot的常用命令详解
  5. 3dmax体积雾渲染不出来_【扮家家云渲染效果图】3Dmax体积光制作丛林光束|干货教程...
  6. 关于JAVA中的synchronized,一段不错的解释...
  7. python开发系统架构设计师_系统架构设计师在线题库
  8. Android 系统(153)--- M上默认接入点apn显示
  9. Python3_基础部分_第一个Python程序
  10. Android NotificationManager详解
  11. Google搜索命令语法大全
  12. 用Python实现一个简单的批量无水印快手抖音批量下载器
  13. centos 7.7.1908上隐藏顶栏和任务栏
  14. jetbrains DataGrip 1.0注册破解方法
  15. 为什么用IP查询网查询的自己的外网IP和用tracert命令查询的自己的出口IP不一致?
  16. 用DownSub 导出TED和youtube字幕
  17. tableau数据分析
  18. 太逗了 不得不藏 “郭德纲绝句,没有一句不让你笑的”
  19. 使用node+vue.js实现SPA应用,解决了SPA应用的最大缺点SEO
  20. Microsoft SQL Server数据库

热门文章

  1. 将c编译成.so 并调用(ubuntu)
  2. 共享库/动态库目录path
  3. chrome extensions快捷键shortcuts配置
  4. 汉斯·乌尔里希·鲁德尔-唯一一个钻石金双剑金橡叶骑士勋章获得者
  5. 计算机软件版本号是什么意思,带你深入了解解密Windows系统版本和版本号
  6. OpenGL纹理操作--glGenTextures
  7. OpenCasCade默认的小坐标系的构建
  8. 通信基站能耗综合管理系统
  9. 91.p9p.co ev.php下载,恶意软件分析 URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...
  10. SAP 物料成本核算冻结:料号. 不能过账,是否取消?消息 CK167