一、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的利用率。多线程共享相同的内存空间,提升应用的效率和性能。各个线程之间独立运行互不影响。

缺点:

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

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

 2.占用更多的内存

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

   3.代码不够简洁

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

二、Python的优缺点

优点

1.语法简单

  Python 是一种代表极简主义的编程语言,阅读一段排版优美的 Python 代码,就像在阅读一个英文段落,非常贴近人类语言,所以人们常说,Python 是一种具有伪代码特点的编程语言。

2.Python 是开源的

  开源,也即开放源代码,意思是所有用户都可以看到源代码。

  Python 的开源体现在两方面:

    ① 程序员使用 Python 编写的代码是开源的。

      比如我们开发了一个 BBS 系统(即网络论坛),放在互联网上让用户下载,那么用户下载到的就是该系统的所有源代码,并且可以随意修改。这也是解释型语言本身的特性,想要运行程序就必须有源代码。

    ② Python 解释器和模块是开源的。

      官方将 Python 解释器和模块的代码开源,是希望所有 Python 用户都参与进来,一起改进 Python 的性能,弥补 Python 的漏洞,代码被研究的越多也就越健壮。

      这个世界上总有那么一小撮人,他们或者不慕名利,或者为了达到某种目的,会不断地加强和改善 Python。千万不要认为所有人都是只图眼前利益的,总有一些精英会放长线钓大鱼,总有一些极客会做一些炫酷的事情。

3.Python 是免费的

  开源并不等于免费,开源软件和免费软件是两个概念,只不过大多数的开源软件也是免费软件;Python 就是这样一种语言,它既开源又免费

4.Python 是高级语言

  这里所说的高级,是指 Python 封装较深,屏蔽了很多底层细节,比如 Python 会自动管理内存(需要时自动分配,不需要时自动释放)。高级语言的优点是使用方便,不用顾虑细枝末节;缺点是容易让人浅尝辄止,知其然不知其所以然。

5.Python 是解释型语言,能跨平台

  解释型语言一般都是跨平台的(可移植性好),Python 也不例外

6.Python 是面向对象的编程语言

  Python 虽然支持面向对象,但它并不强制你使用这种特性。Java 是典型的面向对象的编程语言,它强制必须以类和对象的形式来组织代码。除 Python 和 Java 外,C++、C#、PHP、RuBy、Perl 等,也都支持面向对象的特性。

7.Python 功能强大(模块众多)

  Python 的模块众多,基本实现了所有的常见的功能,从简单的字符串处理,到复杂的 3D 图形绘制,借助 Python 模块都可以轻松完成。

8.Python 可扩展性强

  Python 的可扩展性体现在它的模块,Python 具有脚本语言中最丰富、强大的库或模块,这些库或模块覆盖了文件操作、图形界面编程、网络编程、数据库访问等绝大部分应用场景。

缺点

1.运行速度慢

  运行速度慢是解释型语言的通病,Python 也不例外。

  Python 速度慢不仅仅是因为一边运行一边“翻译”源代码,还因为 Python 是高级语言,屏蔽了很多底层细节。这个代价也是很大的,Python 要多做很多工作,有些工作是很消耗资源的,比如管理内存。

2.代码加密困难

  不像编译型语言那样,源代码会被编译成可执行程序(这个编译过程就相当于对源码加密),对于 Python 来说是直接运行源代码,因此对源码加密是比较困难的。