jython

Java中你必须知道的基础知识点

两盒软妹~` 提交于 2020-08-14 03:25:53
本篇博客主要记录Java中面向对象的概念知识和一些基础Java类的使用。属于自己平时学习过程中知识点的“拼凑”,方便自己回顾总结。 1. 什么是面向对象 面向对象是一种优秀的软件设计思想,是相对于 面向过程、面向切面 等设计思想的一种软件设计理念。它的核心思想是运用更加贴近人类思维的方式去设计软件,将软件中的各个组件抽象成相应的类,再将这些类组装成我们所需的软件系统。这里举个例子,假如用面向对象的方式设计一个电脑,我们会设计CPU类、硬盘类、显示器类、内存类等等,然后将这些类组合在一起设计成Computer类。 面向过程的思想在解决问题时会将问题分解成一个个小的函数,然后按照某种顺序去执行这些方法,当这些方法执行完毕,问题也就解决了。 2. 三大基本特征和五项基本原则 面向对象的三个基本特征是: 封装、继承和多态 。正是基于这些特征,面向对象的开发语言才能拥有更好的可重用性、扩展性和维护性。 封装:将对象的实现细节隐藏起来,然后通过一些公共的方法向外部提供该对象的功能; 继承:继承是软件复用的一种重要手段,子类继承父类之后将直接获得父类的属性和方法; 多态:对象可以赋给父类对象和接口,但是运行时依然表现出子类或实现类的特征。 面向对象的 五大原则 如下: 单一职责原则(SRP):一个类专注于实现一个功能; 开闭原则(OCP):对象或实体应该对扩展开放,对修改封闭; 里氏替换原则

nGrinder 简易使用教程

北城余情 提交于 2020-08-10 18:49:36
背景 性能压测工具之前使用的是jmeter,这次说的是nGrinder,先直接搬运两者之间的比较 比较点 JMeter nGrinder 结果 实现语言 Java Java = License Apache v2 Apache v2 = 使用方式 C/S或Command B/S < 支持分布式 master/slave controller/agent = 资源监控 monitor/plugin,如果二开,需要查找plugin的源码 monitor方式,有直接可用的源码 < 社区活跃度 有N个群,文档完善 群只有一个,有中文社区 > 是否需要编码 基本不需要 需要,Jython/Groovy > 脚本的维护 本地 内置SVN < 脚本录制 可使用BadBoy进行录制 可通过PTS插件进行录制 = 可扩展性 可增加plugin,输出结果可以再加工 可增加plugin = 压测平台编码量 大 小 < 这里还有一个详细的对比: http://qa.blog.163.com/blog/static/19014700220125264628978/ nGrinder采用的controler-agent模式,需要安装controler和agent 安装搭建 官网:https://github.com/naver/ngrinder/releases 下载nGrinder-controler

Issue in calling Python code from Java (without using jython)

不想你离开。 提交于 2020-08-07 04:03:23
问题 I found this as one of the ways to run (using exec() method) python script from java. I have one simple print statement in python file. However, my program is doing nothing when I run it. It neither prints the statement written in python file nor throws an exception. The program just terminates doing nothing: Process p = Runtime.getRuntime().exec("C:\\Python\\Python36-32\\python.exe C:\\test2.py"); Even this is not creating the output file: Process p = Runtime.getRuntime().exec("C:\\Python\

Python探索之旅 | 第一部分第三课:初识Python的解释器

柔情痞子 提交于 2020-07-25 09:26:34
作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。 转载请注明出处。 原文: https://www.jianshu.com/p/a34eaffcc420 《Python探索之旅》 全系列 内容简介 前言 Python 的解释器 Python 解释器的种类 做一点数学运算 总结 第一部分第三课预告 1. 前言 上一课是 Python探索之旅 | 第一部分第二课:安装Python和Python的常用开发软件 。 经过第一课的理论概念和第二课的 Python 开发环境安装之后,我们是时候来了解一下 Python 的解释器了。 即使这一课的一些小测试看似没什么了不起的,但你却可以借此对 Python 的语法有一个初步概念。我强烈建议你循序渐进地跟着我们动手练习,尤其是如果 Python 是你的第一门编程语言的话。 和任何编程语言一样,Python 具有清晰的语法:你不能随便向 Python 发送任何信息。我们将看到 Python 可以接收什么,不可以接收什么。 2. Python 的解释器 上一课,我们在最后用 PyCharm 创建了一个 Python 的项目,并且创建了我们的第一个 Python 文件( hello_python.py ),然后用项目配置的 Python 解释器(就是我们安装的 Python 中自带的解释器。例如我们上一课在 Windows 中安装的

python GUI编程(tkinter)

大兔子大兔子 提交于 2020-05-05 19:58:44
python提供了多个图形开发界面的库,几个常用Python GUI库如下: tkinter: tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。 wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。 Jython:Jython程序可以和Java无缝集成。除了一些标准模块,Jython使用Java的模块。Jython几乎拥有标准的Python中不依赖于C语言的全部模块。比如,Jython的用户界面将使用Swing,AWT或者SWT。Jython可以被动态或静态地编译成Java字节码. tkinter 编程 tkinter 是Python的标准GUI库。Python使用tkinter可以快速的创建GUI应用程序。 由于tkinter是内置到python的安装包中、只要安装好Python之后就能import tkinter库、而且IDLE也是用tkinter编写而成、对于简单的图形界面tkinter还是能应付自如。 创建一个GUI程序 1

01 . Python简介

≯℡__Kan透↙ 提交于 2020-04-28 12:44:59
Python简介 计算机语言 人与计算机之间交互的语言 机器语言 一定位数组合二进制的0和1的序列,被称为机器指令,机器指令的集合就是机器语言 与自然语言差异太大、难学、难懂、难记、难差错. 汇编语言 用一些助记符号替代机器指令,称为汇编语言,ADDA,B指的是将寄存器A的数与寄存器B的数相加得到的数放到寄存器A中. 汇编语言写好的程序需要汇编程序转换成机器指令 汇编语言只是稍微好记了写,可以认为就是机器指令对应的助记符,只是符号本身接近自然语言. 程序 算法+数据结构=程序 数据一切程序的核心 数据结构是数据在计算机中的类型和组织方式. 算法是处理数据的方式,算法有优劣之分. 写程序难点 理不清数据 搞不清处理方法 无法把数据设计转换成数据结构,无法把处理方法转换成算法. 无法用设计范式来进行程序设计. 世间程序皆有bug,但不会debug。 Python解释器 官方CPython C语言开发,最广泛的解释器 IPython 一个交互式、功能增强的Cpython PyPy Python语言编写的Python解释器,JIT技术,动态编译Python代码 Jython Python的源代码编译成Java的字节码,跑在JVM上 IronPython 与Jython类似,运行在.Net平台上的解释器,Python代码编译成.Net的字节码. Python语言类型 Python是动态语言

Python图形界面开发编程:wxPython(浅尝篇)

泄露秘密 提交于 2020-04-27 11:35:25
Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。 wxPython: wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。 Jython: Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。 虽然之前尝试过 Tkinter ,但是看完上面的叙述,已经完全被 wxPython 所吸引,迫不及待的想实践一番,特此记录个人的学习进程(windows系统): 一、wxPython环境安装 最实在而又最实用的的安装方式 pip,且必须习惯使用的方式,会同步安装相关的依赖包: pip

java调用python程序以及向python程序传递参数

↘锁芯ラ 提交于 2020-04-26 22:39:59
在做项目的时候,经常会碰到这个问题,主要程序是用java写的,有些功能使用python写的,整个项目需要把java代码和python代码进行整合,在一个项目里面运行,这就涉及到java调用python的问题。 1 一个解决思路是在java项目中引入jython,然后使用python解释器运行jython代码,实例代码如下: PythonInterpreter interpreter = new PythonInterpreter(); interpreter.exec("XXX "); XXX代表要运行的jython代码,jython有python的库,但不是特别全,如果python程序引入的库比较多,这种方式可能不能解决问题。 2 另一种方式就是在java程序中直接调用python程序,这样无论python程序引入什么样的库(模块),只要程序可以直接通过python xxx.py运行,则在Java程序中也能运行。下面重点介绍在Java中直接调用python程序的方法。 2.1 Python程序代码 import sys def main(abc): print(abc) if __name__ == '__main__': for i in range(1, len(sys.argv)): strs = sys.argv[i] main(strs) 程序目录名称为D:

项目实践之java调用python

允我心安 提交于 2020-04-26 19:48:56
背景:在进行javaweb项目开发时,通过登录设备,调用不同的测试用例(对设备下发命令,获取回显信息),判断业务是否达到预期效果。利用python的telnet模块进行实现较为方便,具体实践时也遇到一系列问题,主要包括:(1)java调用python的参数传递与实时回显问题; (2)python日志模块的重复打印问题 1 java调用python 关于java调用python的方法,常见的有2种。第一种:使用java的Process类调用python脚本,然后读取回显信息,此方法的缺点是对于python的回显信息反应较慢,无法满足实时回显需求。 第二种方法,利用Jython执行python方法,优点:能获取python方法的返回值,作为java调用python其他方法的入参,较好地控制代码流程,能更好的满足项目需求,同时,它能及时的获取python方法的返回值,因此,强力推荐该方法。 第一种方法代码如下: 1 public static void main(String[] args) 2 { 3 // 1. 根据用户输入设备信息、选择用例修改脚本 4 String shellPath = "D:\\dDevelopemnt\\javaDemo\\project1\\clockDetect\\src" ; 5 6 Runtime run = Runtime.getRuntime()

jmeter笔记(一):通过jython调用python脚本

别来无恙 提交于 2020-04-24 09:53:02
(一)说明 说明在jmeter中如何调用python脚本。 jmeter版本:5.2.1 操作系统:WINDOWS 步骤: 1、这个地址 https://www.jython.org/download 下载jython-standaloneXXX.JAR 2、放到jmeter 的lib文件夹下。 3、重启jmeter 4、添加JSR223 Sampler (路径:Thread Group >Sampler>JSR223 Sampler) 5、编写python脚本 (二)调用python脚本 1 # 希尔排序 2 def shellSort(A): 3 k = len(A) 4 incremental = [] 5 # 算出增量序列 6 while (k > 1 ): 7 k = k // 2 8 incremental.append(k) 9 dk = 0 # 增量序列incremental的初始索引值 10 while (dk < len(incremental)): 11 # 根据增量序列对列表进行插入排序 12 for i in range(0,len(A),incremental[dk]) : 13 key = A[i] 14 j = i - incremental[dk] 15 while j >= 0 and key < A[j]: 16 A[j+incremental