Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jython是什么?它有用吗?_Java_Python_Jython - Fatal编程技术网

Java Jython是什么?它有用吗?

Java Jython是什么?它有用吗?,java,python,jython,Java,Python,Jython,我知道Python,但Jython是什么 我什么时候需要Jython 缺点是什么 我想是慢了吧 请详细说明!谢谢。引用: Jython是JPython的继承者,是用Java编写的Python编程语言的一个实现 至于它可能有什么用途: Jython程序可以无缝地导入和使用任何Java类。除了一些标准模块外,Jython程序使用Java类而不是Python模块 Jython、IronPython和CPython的性能测量表明,在某些情况下,Jython和IronPython在大数据集上的性能都优

我知道Python,但Jython是什么

  • 我什么时候需要Jython
  • 缺点是什么
  • 我想是慢了吧
请详细说明!谢谢。

引用:

Jython是JPython的继承者,是用Java编写的Python编程语言的一个实现

至于它可能有什么用途:

Jython程序可以无缝地导入和使用任何Java类。除了一些标准模块外,Jython程序使用Java类而不是Python模块


Jython、IronPython和CPython的性能测量表明,在某些情况下,Jython和IronPython在大数据集上的性能都优于CPython。

Jython是一种在JVM上运行的Python实现。 理论上,Jython比CPython慢一点

您可以在这里找到一些基准:

JVM做了一些很好的动态优化,但可能没什么好激动的。JRuby有时通过优化大量运行的代码路径在JVM()上运行得更快,但这是Ruby,而不是Python

Java库是主要原因。许多公司都有大量可以用Python编写脚本的Java代码。还有一些开源框架(Struts和EclipseSpring),您可以使用Jython编写脚本


我什么时候需要Jython

当您想用Python编程,但需要(或想要)在Java虚拟机上运行结果,或使用现有Java组件时

缺点是什么

Jython可能无法与Python 100%兼容,尽管任何不兼容都会被视为bug。如果您以后想要/需要在CPython上运行,则必须重写任何使用Java组件的代码

我想是慢了吧

这取决于您的特定用例。在某些情况下,它实际上可能比CPython快;当然,这取决于您运行的特定JVM——这些JVM会一直变得更好


我什么时候需要Jython

例如,在代码中添加一种好的脚本语言

缺点是什么

主要缺点是Jython落后于官方的CPython发行版。目前,您可以获得与Python2.5.2兼容的Jython版本,而CPython版本为3.1

此外,一些深奥的模块也不受支持。通常,您不会注意到和/或很难找到Java替代品

我想是慢了吧

和什么相比?通常,它要么足够快,要么不够快时,你可以用大约1000行速度更快的Java替换几行Python。

还有两个原因:

  • 将脚本嵌入到大型Java应用程序中
  • 使用Java线程在Jython中编写多线程程序
      我什么时候需要Jython

      您可以使用Jython为WebSphereApplicationServer编写管理脚本。这些脚本用于自动化常见的管理任务,并在WebSphereApplicationServer中配置安全性

      WebSphere利用JMXAPI创建MBean,这些MBean作为内部WebSphere对象的API公开。由于Jython脚本基于Java,并且在JVM上运行,因此它们可以访问这些对象,并可用于配置WebSphere

      此外,用Jython编写代码很有趣,您可以学习一门新语言


      我什么时候需要Jython

      我需要Jython来测试JDBC驱动程序。我使用的一些应用程序使用ODBC,一些使用JDBC。使用Jython,我可以从一个Python源代码测试这两种类型的驱动程序
      (为了测试ODBC,我使用JDBC-ODBC桥)。

      如果您了解Python,并且已经接受了“pythonic”的工作方式,那么Jython允许您将这种理念引入JVM堆栈。如果您这样做,就不仅仅是添加脚本功能

      在我们最新的项目中,所有定制和业务逻辑都是在Jython中构建的,同时我们仍然可以利用一些经过测试的Java库,如Solr、Jasperreports、Quartz、Jetty、Velocity等等

      它确实被编译成字节码,然而,添加了一个额外的层,但是与使用ORM而不是直接的JDBC没有什么不同

      你在生产力上所获得的远远超过了在性能上所损失的微乎其微

      在服务器端,Jython很少成为瓶颈。对于迷你桌面应用程序,可能会有问题,但这在很大程度上取决于您正在尝试做什么


      最新的JDK,加上Jetty或Tomcat等容器都非常成熟和稳定,在许多情况下,在上面添加Python可以实现这两个方面的最佳效果。

      为了获得良好的速度性能或实现真正的多线程程序,直接从java(本机)调用Python脚本是最好的方法。只需准备好python脚本,然后让java完成其余的工作,以便并发调用到python脚本中。

      下面的文章也很有趣:现在我们知道Jython在某些基准测试中渐进地比CPython快。Jython不像java那样编译成字节码。字节码完成了CPython所做的所有出色的动态运行时工作,因此比Java慢得多。回答不错。我有一个现有的Java应用程序,想做一些文件解析,这在Java中可能会很乏味。使用Jython可以让我用python语法(file.read()、list.split()等)进行解析吗?