在众多编程语言中,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代码是冗长的,即是有许多单词和许多长而复杂的句子,难以阅读和理解。