解决一个或多个变量中的自动数值微分问题。

numdifftools的Python项目详细描述


numdifftools

" rel="nofollow"> 测试 >> tests2 >>>>>>>>>> maintabilitycoverage\u img >> >> >>/a>>>/a>>>>/a>><< pyPI-下载

numdifftools库是一套用python编写的工具 求解一个或多个变量的自动数值微分问题。 有限差分是以一种自适应的方式使用的,与richardson相结合 外推法,以提供最精确的结果。 用户可以配置许多选项,如更改方法的顺序或 外推,甚至允许用户指定是否复杂的步骤, 使用中央、向前或向后差异。

提供的方法是:

  • 导数 :计算任何标量函数上1到10阶的导数。
  • 方向差异 :计算n个变量函数的方向导数
  • 梯度 :计算一个或多个变量的标量函数的梯度向量。
  • 雅可比矩阵 :计算一个或多个变量的向量值函数的雅可比矩阵。
  • hessian :计算一个或多个变量的标量函数的所有二阶偏导数的hessian矩阵。
  • hessdiag :仅计算hessian矩阵的对角元素

所有这些方法都会对结果产生误差估计。

numdifftools还提供了一个易于使用的接口来计算派生 在 \u algopy 。algopy代表算法 python中的差异。 algopy的目的是评估 函数的算法微分模式 作为python程序实现的。

入门

可视化tanh函数的高阶导数

< Buff行情>
>>> import numpy as np
>>> import numdifftools as nd
>>> import matplotlib.pyplot as plt
>>> x = np.linspace(-2, 2, 100)
>>> for i in range(10):
...    df = nd.Derivative(np.tanh, n=i)
...    y = df(x)
...    h = plt.plot(x, y/np.abs(y).max())

plt.show()

https://raw.githubusercontent.com/pbrod/numdifftools/master/examples/fun.png

在x==1时,计算exp(x)的第一和第二导数:

>>> fd = nd.Derivative(np.exp)        # 1'st derivative
>>> fdd = nd.Derivative(np.exp, n=2)  # 2'nd derivative
>>> np.allclose(fd(1), 2.7182818284590424)
True
>>> np.allclose(fdd(1), 2.7182818284590424)
True

非线性最小二乘:

>>> xdata = np.reshape(np.arange(0,1,0.1),(-1,1))
>>> ydata = 1+2*np.exp(0.75*xdata)
>>> fun = lambda c: (c[0]+c[1]*np.exp(c[2]*xdata) - ydata)**2
>>> Jfun = nd.Jacobian(fun)
>>> np.allclose(np.abs(Jfun([1,2,0.75])), 0) # should be numerically zero
True

求和梯度(x**2):

>>> fun = lambda x: np.sum(x**2)
>>> dfun = nd.Gradient(fun)
>>> np.allclose(dfun([1,2,3]), [ 2.,  4.,  6.])
True

使用易于使用的algopy接口进行计算:

>>> import numdifftools.nd_algopy as nda
>>> import numpy as np
>>> fd = nda.Derivative(np.exp)        # 1'st derivative
>>> fdd = nda.Derivative(np.exp, n=2)  # 2'nd derivative
>>> np.allclose(fd(1), 2.7182818284590424)
True
>>> np.allclose(fdd(1), 2.7182818284590424)
True

非线性最小二乘:

>>> xdata = np.reshape(np.arange(0,1,0.1),(-1,1))
>>> ydata = 1+2*np.exp(0.75*xdata)
>>> fun = lambda c: (c[0]+c[1]*np.exp(c[2]*xdata) - ydata)**2
>>> Jfun = nda.Jacobian(fun, method='reverse')
>>> np.allclose(np.abs(Jfun([1,2,0.75])), 0) # should be numerically zero
True

求和梯度(x**2):

>>> fun = lambda x: np.sum(x**2)
>>> dfun = nda.Gradient(fun)
>>> np.allclose(dfun([1,2,3]), [ 2.,  4.,  6.])
True

另请参见

scipy.misc.导数

文档和代码

numdifftools在python 2.7+和python 3.0+上工作。

官方版本可在以下网址获得:http://pypi.python.org/pypi/numdifftools" rel="nofollow">http://pypi.python.org/pypi/numdifftools pkg\u img

官方文档可在以下网址获得: http://numdifftools.readthedocs.io/en/latest/ docs\u img

出血边缘:https://github.com/pbrod/numdifftools" rel="nofollow">https://github.com/pbrod/numdifftools

安装

如果安装了pip,只需键入:

< Buff行情> $pip安装numdifftools

以获得最新的稳定版本。使用pip还有一个优点 要求将自动安装。

单元测试

若要测试工具箱是否正在工作,请将以下内容粘贴到交互式 python会话:

import numdifftools as nd
nd.test('--doctest-modules', '--disable-warnings')

确认

numdifftools包 python 由per a.brodtkorb编写 基于 由john d'errico编著的Matlab

numdifftools从0.9版起已经扩展了一些功能 在josef perktell编写的statsmodels.tools.numdiff模块中找到 [perktold2014] [verheyleweghen2014] 的项目报告中

参考文献

< COL/> < COL/> <正文> < > <表>
[Derrico2006] d'errico,J.R.(2006年), 自适应鲁棒数值微分 http://www.mathworks.com/matlabcentral/fileexchange/13490自适应鲁棒数值微分
< COL/> < COL/> <正文> < > <表>
[Perktold2014] Perktell,J(2014),Numdiff套餐 http://statsmodels.sourceforge.net/0.6.0//u modules/statsmodels/tools/numdiff.html
< COL/> < COL/> <正文> < > <表>
[Lantoine2010] 格雷戈里·兰托因(2010年), 一种低推力弹道鲁棒优化方法 多体环境,乔治亚理工学院博士论文
< COL/> < COL/> <正文> < > <表>
[Lantoineetal2012] Gregory Lantoine、R.P.Russell和T.Dargent(2012年) 用多复变量自动计算高阶 衍生品,数学软件上的ACM交易, 第38卷,第3期,第16条,2012年4月,21页, http://doi.acm.org/10.1145/2168773.2168774
< COL/> < COL/> <正文> < > <表>
[Luna-Elizarrarasetal2012] M.E.Luna Elizarraras,M.Shapiro,D.C.Struppa1, A.Vajiac(2012年) 双复数及其初等函数, 一本数学杂志, 第14卷,第2期,(61-80)。2012年6月。
< COL/> < COL/> <正文> < > <表>

更改日志

版本0.9.39 2019年6月10日

< DL>
罗伯特·帕里尼(1):
> UL>
  • 修复问题43:numpy future警告
  • 版本0.9.38 2019年6月10日

    < DL>
    安德鲁·纳尔逊(1):
    > UL>
  • maint:special.factorial而不是misc.factorial
  • 道格拉萨瑟兰(1):
    > UL>
  • 在发行版中包含license.txt
  • 每个Brodtkorb(140):
    > UL>
  • 调整假设测试的运行时间以避免失败,并修复了PEP8失败。
  • 修正了setup.cfg中的一个错误
  • 在step\u generators.py中将valarray函数替换为numpy.full
  • 除了导入algopy之外,添加了try
  • 更新了readme.rst中使用的徽章
  • 将numpy.testing.tester替换为pytest。
  • 消除了对pyscaffold的依赖。
  • simplified setup.py和setup.cfg
  • 已更新.travis.yml配置。
  • 重新组织文档。
  • 正在进行的简化课程的工作。
  • 将unittest替换为pytest。
  • 添加了有限差分.py
  • 替换为。
  • 恢复为覆盖率=4.3.4
  • 新尝试
  • 修复了冲突导入
  • 缺少eps的导入
  • 添加了缺少的fd_规则={}
  • 移除固定覆盖,移除对pyscaffold的依赖性
  • 已更新.travis.yml和.appveyor.yml
  • 用Conda Forge替换Conda Channel Omnia
  • 删除了注释掉的代码。在appveyor.yml中设置pyqt=5
  • 更新的codeculate检查
  • 放弃了对Python3.3和3.4的支持。增加了对Python3.6、3.7的支持
  • 简化代码。
  • pinned ipython==5.0以便使测试服务器不会崩溃。
  • 向appveyor.yml添加了line_profiler
  • 已从Requirements.txt中删除Line_Profiler
  • 修复问题37:无法在Python2.7上安装
  • 将method="backward"添加到nd_statsmodels.py
  • 跳过测试配置文件埃辛和testdoprofile
  • 添加了缺少的警告导入
  • 为profile_numdifftools.py、find_default_scale.py和run_benchmark.py中的脚本添加了测试。
  • 向unittest.skipif添加了原因
  • 根据要求增加了测线剖面仪。
  • 错误导入警告已修复。
  • 将测试重命名为最后一个,因为我怀疑这个测试会弄乱覆盖率统计。
  • 重新排序测试。
  • 增加了更多测试。
  • 已清理"查找默认"scale.py
  • 已删除到Depsy的链接
  • 恢复:安装cython和pip安装设置工具
  • 由于python 3.5崩溃,禁用了sonar scanner-x。
  • 已还原[options.packages.find]以再次排除测试
  • 添加cython并还原为pip安装设置工具
  • 将Sphinx更新为1.6.7
  • 尝试用conda安装setuptools。
  • 在需求中添加假设和pytest.readthedocs.txt
  • 设置setuptools的版本==37.0
  • 在需求中添加了algopy、statsmodels和numpy。
  • 限制斯芬克斯,希望能生成文档。
  • 从测试覆盖范围中删除了排除测试/目录。
  • 在setup.cfg中添加了依赖项
  • 将6读作依赖项
  • 重构并删除注释掉的代码。
  • 修正了docstring示例中的一个错误:确保传递给零的形状是整数。
  • 修正了c_abs,因此它可以在python 3.6上与algopy一起工作。
  • 修正了片状测试,使其更加坚固。
  • 修复了.travis.yml中的错误
  • 将泰勒函数重构为泰勒类,以简化代码。
  • 修复了问题35并添加了测试
  • 试图简化复杂性
  • 使医生的测试更加可靠
  • 更新项目路径
  • 更改了algopy的安装
  • 修复了小错误
  • 更新了docstrings
  • 更改了文档字符串中的示例和引用,以符合numpydoc样式。
  • 将changes.rst重命名为changelog.rst
  • 重命名的源路径
  • 由于算法错误或行为改变而进行的黑客攻击。
  • 小修。
  • 尽量减少复杂性
  • 减少最小步数的认知复杂性
  • Jacobian中的简化代码
  • 合并分支'master' https://github.com/pbrod/numdifftools
  • 固定问题34许可证澄清。
  • 锁定覆盖率=4.3.4,因为覆盖率中的错误导致代码气候测试报告器失败。
  • 添加了用于查找默认比例的脚本
  • 从SonarCube更新到SonarCloud
  • 确保形状为整数。
  • 将make_step_generator重构为step属性
  • 将顺序设置为Hessian中的1或2以外的值时,向用户发出警告消息。
  • 在渐变中更新示例。
  • 恢复–由于运行时间太长,选择覆盖范围比较小。
  • 恢复–PEP8选项
  • 增加了PEP8+功能–运行timid in.travis.yml覆盖以增加错过的覆盖。
  • 重构泰勒以降低复杂性
  • 不支持Python3.3。添加了Python3.6
  • 修正了一个小错误并更新了测试。
  • 去除不必要的赘肉。降低了do_配置文件的复杂性
  • 使python3兼容
  • 删除assert false
  • 使单元测试更加宽容。
  • 在travis上的nd_scipy.py和profiletools.py install line_profiler中更新了doctest
  • 使python 3兼容
  • 更新测试
  • 在testing.py中添加了test_profiletools.py和capture_stdout_和_stderr
  • 针对速度优化的numdifftools.core.py:fd_规则现在只计算一次。
  • 只在发行版中保留HTML文档。
  • 添加了doctest并更新了.pylintrc和requirements.txt
  • 减少了测试时间,希望它能通过travisC.
  • 与实例方法相比,更喜欢静态方法
  • 更好的内存处理:这解决了问题27
  • 在requirements.txt中添加了statsmodels
  • 添加了nd_statsmodels.py
  • 简化输入
  • 合并分支'master' https://github.com/pbrod/numdifftools
  • 更新了文档链接。
  • 罗伯特·帕里尼(4):
    > UL>
  • 在"获取日志"中避免运行时警告
  • 允许fd_导数取复数函数
  • solarjoe(1):
    > UL>
  • doc:添加了nd.directionaldiff示例
  • 0.9.20版,2017年1月11日

    < DL>
    每个Brodtkorb(1):
    > UL>
  • 更新了作者的电子邮件地址,以便tween能够上载到pypi。
  • 版本0.9.192017年1月11日

    < DL>
    每个Brodtkorb(1):
    > UL>
  • 已更新setup.py,以尝试重新将上载到pypi。
  • 0.9.18版,2017年1月11日

    < DL>
    每个Brodtkorb(38):
    > UL>
  • 更新了设置
  • 在帮助标题示例中添加了导入语句。
  • 使用假设增加了更严格的测试。
  • 被迫使用wxagg后端
  • 已将matplotlib.pyplot的导入移到main,以避免travis上的导入错误。
  • 增加了fd_导数函数
  • 更新了参考资料。
  • 尝试自动化SonarCube分析
  • 为SonarQube和codeChimate增加了测试覆盖率
  • 简化代码
  • 增加了.pylintrc+pep8
  • api的主要变化:类成员变量self.f更改为self.fun
  • 修正了问题25(雅可比从0.9.15开始中断)
  • 版本0.9.17,2016年9月8日

    < DL> 安德鲁·福莉(1): > UL>
  • 如21中所述,修复"已读docs"链接
    根据Brodtkorb(79):
    > UL>
  • 增加了MinMaxStepGenerator的测试
  • 从core.py中删除了过时的文档
  • 更新appveyor.yml
  • 逆矩阵中的固定符号
  • 简化代码
  • 添加了Appveyor徽章+同步信息.py和readme.rst。
  • 已删除帮助标题中的绘图
  • 添加了编程语言::python::3.5
  • 简化代码
  • 将双复数重命名为双复数
  • 简化示例函数.py
  • < DL>
    将minstepGenerator、maxstepGenerator和minmaxstepGenerator移到step\u generators.py > UL>
  • 统一步进发生器
  • 将步进发电机测试移动到测试步进发电机.py
  • 步骤生成器的主要简化.py
  • 删除重复代码+PEP8
  • 将fornberg_weights移动到fornberg.py+添加泰勒和导数
  • 固定打印语句
  • 用range替换xrange
  • 添加了示例+使计算更加健壮。
  • 在nd_algopy.py中"backward"和"reverse"的别名
  • 扩展了tests+向testing.py添加了test\u docstrings
  • 将字符串插值替换为format()
  • 删除了过时的参数
  • Fornberg方法的较小起始半径
  • 简化的"n"和"order"属性
  • 简化默认_比例
  • 删除了不必要的括号和代码。PEP8
  • 修正了dea+小型重构中的一个错误。
  • 添加了epsalg测试
  • 避免可变的默认参数,与实例方法相比,更喜欢静态方法。
  • 重构以降低圈复杂度
  • 将一些实例方法更改为静态方法
  • 重命名的非pythonic变量名
  • 打开xvfb(x虚拟帧缓冲区)模拟显示。
  • 为Jacobian添加了额外测试
  • 用def替换lambda函数
  • 已删除未使用的导入
  • 添加了epsalg测试
  • 修正了从标量到矢量的测试
  • 已更新测试文档字符串
  • 版本0.9.15,2016年5月10日

    < DL> 科迪(2): > UL>
  • 迁移的字符串格式
  • 迁移的字符串格式
    每个Brodtkorb(28):
    > UL>
  • 更新了readme.rst+setup.cfg
  • 用静态方法+pep8替换实例方法
  • 合并分支'master' https://github.com/pbrod/numdifftools
  • 修复了一个错误:替换了缺少的三引号
  • 添加了Depsy徽章
  • 已添加。检查是否忽略量化代码
  • 添加了.codecclimate.yml
  • 修复了失败的测试
  • 将实例方法更改为静态方法
  • 使非类型化异常处理程序成为特定的
  • 用静态方法替换本地函数
  • 简化测试
  • 删除了重复的代码简化的派生函数。获取函数名
  • 从testclimate中排除测试
  • 将test_functions.py重命名为example_functions.py添加了test_example_functions.py
    根据A.Brodtkorb(2):
    > UL>
  • 从pbrod/autofix/wrapped2_到3_fix的合并拉动请求17
  • 从pbrod/autofix/wrapped2_到3_fix-0的合并拉动请求18
  • pbrod(17):
    > UL>
  • 已更新conf.py
  • 如果狮身人面像
  • 已更新setup.py
  • 增加了要求。readthedocs.txt
  • 更新了readme.rst,其中提供了有关如何在Anaconda软件包中使用Conda安装它的信息。
  • 已更新conda安装说明
  • 固定参数数,因此它与重写的"u default""u base""step"方法没有区别
  • 将codecov添加到.travis.yml中
  • 尝试删除测试文件的覆盖范围
  • 为了计算方向导数,增加了方向差分函数。修复问题16。还向文档中添加了支持测试和示例。
  • 修正了雅可比数列中多个观测值处理不当的问题
  • 将rosen函数移到numdifftools.testing.py中
  • 更新了从numdifftools.testing导入rosen函数
  • 简化代码+PEP8+添加测试剩余量
  • 更新了readme.rst并将字符串插值替换为format()
  • 清洁的DEA类别+PEP8
  • 更新了永利外推法的参考资料。
  • 版本0.9.14,2015年11月10日

    < DL>
    pbrod(53):
    > UL>
  • setup.py的更新文档
  • 更新了readme.rst
  • 更新版本
  • 添加了更多文档
  • 更新示例
  • 添加了.landscape.yml updated.coveragerc,.travis.yml
  • 已将工作服全部添加到自述文件中。
  • 更新的文档/索引.rst
  • 删除未使用的代码并添加tests/test_extrapolation.py
  • 更新测试
  • 添加了更多测试
  • 在2处读取C_abs C_
  • 消除了对轮子的依赖,numpydoc>;=0.5,sphinx_rtd_theme>;=0.1.7(仅用于建筑文档)
  • 在.travis.yml中更新了conda路径
  • 在.travis.yml中添加了Omnia频道
  • 添加了Conda_配方文件,过滤掉了limits.py中的警告
  • 版本0.9.13,2015年10月30日

    < DL>
    pbrod(21):
    > UL>
  • 更新了readme.rst和changes.rst。
  • 更新了限制。
  • 使区分复杂函数和允许零阶导数成为可能。
  • 错误:添加了缺少的导数顺序,n到梯度,海森,雅可比。
  • 使测试更加可靠。
  • 根据PyScaffold 2.4.2版更新了设置中的结构。
  • 更新了setup.cfg并删除了重复测试文件夹。
  • 删除了未使用的代码。
  • 添加appveyor.yml。
  • 添加了所需的AppVeyor安装脚本
  • 修正了appveyor.yml中的错误。
  • 在requirements.txt中添加了wheel。
  • 更新appveyor.yml.
  • 已删除导入matplotlib。
  • 贾斯汀·莱彻(1): > UL>
  • 修复numpy的最小版本。
  • 基科科雷索(1): > UL>
  • 在run_benchmark.py上修复一些打印,使其与py3一起工作
  • 版本0.9.12,2015年8月28日

    PBrod(12):

    < Buff行情>
    • 更新文档。
    • conf.py.中的更新版本
    • 更新的更改。重新开始。
    • 重新实现离群点检测,使其更加健壮。
    • 通过测试添加了limits.py。
    • 更新了主测试文件夹。
    • 将Richardson和Dea3移至外推.py.
    • 制作新版本以便上载到PYPI。

    版本0.9.11,2015年8月27日

    < DL>
    pbrod(2):
    > UL>
  • 修复了Sphinx构建和更新文档。
  • 修正了问题9后向微分法因附加参数而失败。
  • 版本0.9.10,2015年8月26日

    < DL>
    pbrod(7):
    > UL>
  • 修复了Sphinx构建和更新文档。
  • 向nd_algopy添加了更多测试。
  • 放弃了对Python2.6的支持。
  • 0.9.4版,2015年8月26日

    < DL>
    pbrod(7):
    > UL>
  • 修复了Sphinx构建和更新文档。
  • 版本0.9.3,2015年8月23日

    < DL>
    保罗·基恩泽(1):
    > UL>
  • 更有用的基准图。
  • pbrod(7):
    > UL>
  • 修正错误和更新文档。
  • 对易于使用的algopy接口进行了重大重写。
  • 增加了计算n阶导数的可能性,而不仅仅是n=1在nd算法中。
  • 在易于使用的algopy界面中添加了测试。
  • 版本0.9.2,2015年8月20日

    < DL>
    pbrod(3):
    > UL>
  • 更新的文档
  • 在对打印函数的调用中添加了括号
  • 为了通过Travis对Python2.6和3.2的测试,降低了测试的严格性。
  • 版本0.9.1,2015年8月20日

    < DL>
    christoph deil(1):
    > UL>
  • 修复狮身人面像构建
  • pbrod(47):
    > UL> < DL>
    使用稍有不同的调用语法对numdifftools进行重新制作。
    > UL>
  • 可根据所用函数和方法计算10-14阶导数。
  • 相应地更新了文档和测试。
  • 修正了DEA3中的一个错误。
  • 添加了步进发电机作为自适应选项的替代。
  • 增加了用于测试复阶二阶导数的双复数类。
  • 添加fornberg_weights_all以稳定的方式计算最佳有限差分规则。
  • 增加了高阶复阶导数方法。
  • 0.7.7版,2014年12月18日

    < DL>
    pbrod(35):
    > UL>
  • 使travis ci工作,以便自动运行测试。
  • 修复了DEA类中的错误。
  • 修正了hessian的更好的误差估计。
  • 修复了Python2.6的测试。
  • 将测试作为子包添加。
  • 重构numdifftools的文件夹。
  • 0.7.3版,2014年12月17日

    < DL>
    pbrod(5):
    > UL>
  • 小整容。
  • PEP8+一些重构。
  • 通过重构简化代码。
  • 版本0.6.0,2014年2月8日

    < DL>
    pbrod(20):
    > UL>
  • 更新readme.md并将其重命名为readme.rst。
  • 简化了对导数的调用:删除了步进修正。
  • 已删除未使用的代码。
  • 简化和重构。现在可以选择步骤1。
  • 将默认步长从max(abs(x0),0.2)更改为max(log2(abs(x0)),0.2)。
  • 验证代码并确保所有测试都通过。
  • 0.5.0版,2014年1月10日

    < DL>
    pbrod(9):
    > UL>
  • 更新了gradient类和info.py中的示例。
  • 增加了vec2mat和docstrings+外观修复的测试。
  • 将代码重构为私有方法。
  • 修正问题7:衍生工具(fun)(numpy.one((10,5))*2)失败。
  • 使打印语句与Python3兼容。
  • 版本0.4.0,2012年5月5日

    < DL>
    pbrod(1)
    > UL>
  • 修正了inf和nan值的错误。
  • 版本0.3.5,2011年5月19日

    < DL>
    pbrod(1)
    > UL>
  • 修正了inf和nan值的错误。
  • 版本0.3.4,2011年2月24日

    < DL>
    pbrod(11)
    > UL>
  • 自动选择步长,更加稳健。
  • 为algopy和scientificpython模块添加了易于使用的界面。
  • 0.3.1版,2009年5月20日

    < DL>
    pbrod(4)
    > UL>
  • 在google.code上发布的numdifftools的第一个版本
  • 版权所有(c)2009-2018,根据A.Brodtkorb,John D'Errico 保留所有权利。

    以源和二进制形式重新分配和使用,有无 如果满足以下条件,则允许修改:

    • 重新发布源代码必须保留上述版权声明 条件列表和以下免责声明。
    • 二进制形式的再分配必须复制上述版权声明, 文件中的条件列表和以下免责声明 和/或分发时提供的其他材料。
    • 无论是著作权人的名字还是它的名字 贡献者可用于支持或推广来自 此软件未经事先书面许可。

    本软件由版权所有者和贡献者"按原样"提供。 以及任何明示或默示保证,包括但不限于 对适销性和特定用途适用性的默示保证是 否认的在任何情况下,版权持有人或贡献者均不承担责任 对于任何直接的、间接的、偶然的、特殊的、惩戒性的或间接的 损害赔偿(包括但不限于购买替代货物或 但是 根据任何责任理论,无论是在合同中,严格责任, 或因使用而引起的侵权行为(包括疏忽或其他) 即使已被告知可能会发生此类损坏,也不例外。

    [verheyleweghen2014] 阿德里安·verheyleweghen(2014) 用多复步法计算高阶导数, 项目报告,NTNU

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


    热门话题
    JBossJava进程内存持续增长   Java postincrement(++)在作为参数传递时表现不符合预期   TableView列的java编辑值   java根据springboot@Scheduled注释使用的条件动态修改调度程序计时   java无法将jsp表单值设置为类变量   java ParseQuery from字段未保存   java为什么日历返回月份。是否获取(Calendar.MONTH)上个月而不是当前月?   java无法获取api密钥的md5指纹   java通用DAO和嵌套属性支持   javapomi的版本已经改变了。从OJDBC6到OJDBC8的xml。使用新版本OJDBC8执行某些查询时出现锁定问题   java IntelliJ颜色方案定制   java从第三方读取Linux存储库   amazon s3在AWS s3 Java SDK中设置对象元数据   java一对多映射比